mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
222 lines
8.2 KiB
C++
222 lines
8.2 KiB
C++
// Created on: 1998-09-30
|
|
// Created by: Denis PASCAL
|
|
// Copyright (c) 1998-1999 Matra Datavision
|
|
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
|
//
|
|
// This file is part of Open CASCADE Technology software library.
|
|
//
|
|
// This library is free software; you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License version 2.1 as published
|
|
// by the Free Software Foundation, with special exception defined in the file
|
|
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
// distribution for complete text of the license and disclaimer of any warranty.
|
|
//
|
|
// Alternatively, this file may be used under the terms of Open CASCADE
|
|
// commercial license or contractual agreement.
|
|
|
|
#ifndef _TPrsStd_AISPresentation_HeaderFile
|
|
#define _TPrsStd_AISPresentation_HeaderFile
|
|
|
|
#include <Standard.hxx>
|
|
#include <Standard_Type.hxx>
|
|
|
|
#include <Standard_GUID.hxx>
|
|
#include <Standard_Real.hxx>
|
|
#include <Quantity_NameOfColor.hxx>
|
|
#include <Graphic3d_NameOfMaterial.hxx>
|
|
#include <Standard_Integer.hxx>
|
|
#include <Standard_Boolean.hxx>
|
|
#include <TDF_Attribute.hxx>
|
|
#include <TDataXtd_Presentation.hxx>
|
|
#include <AIS_InteractiveContext.hxx>
|
|
|
|
class AIS_InteractiveObject;
|
|
class Standard_GUID;
|
|
class TDF_Label;
|
|
class TDF_Attribute;
|
|
class TDF_RelocationTable;
|
|
class TDF_AttributeDelta;
|
|
|
|
class TPrsStd_AISPresentation;
|
|
DEFINE_STANDARD_HANDLE(TPrsStd_AISPresentation, TDF_Attribute)
|
|
|
|
//! An attribute to associate an
|
|
//! AIS_InteractiveObject to a label in an AIS viewer.
|
|
//! This attribute works in collaboration with TPrsStd_AISViewer.
|
|
//! Note that all the Set... and Unset... attribute
|
|
//! methods as well as the query methods for
|
|
//! visualization attributes and the HasOwn... test
|
|
//! methods are shortcuts to the respective
|
|
//! AIS_InteractiveObject settings.
|
|
class TPrsStd_AISPresentation : public TDF_Attribute
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
//! Returns the GUID for TPrsStd_AISPresentation attributes.
|
|
Standard_EXPORT static const Standard_GUID& GetID();
|
|
|
|
//! Creates or retrieves the presentation attribute on
|
|
//! the label L, and sets the GUID driver.
|
|
Standard_EXPORT static Handle(TPrsStd_AISPresentation) Set (const TDF_Label& L, const Standard_GUID& driver);
|
|
|
|
//! Delete (if exist) the presentation attribute associated to the label <L>.
|
|
Standard_EXPORT static void Unset (const TDF_Label& L);
|
|
|
|
//! Creates or retrieves the AISPresentation
|
|
//! attribute attached to master.
|
|
//! The GUID of the driver will be the GUID of master.
|
|
//! master is the attribute you want to display.
|
|
Standard_EXPORT static Handle(TPrsStd_AISPresentation) Set (const Handle(TDF_Attribute)& master);
|
|
|
|
Standard_EXPORT TPrsStd_AISPresentation();
|
|
|
|
Standard_EXPORT void SetDisplayed (const Standard_Boolean B);
|
|
|
|
//! Display presentation of object in AIS viewer.
|
|
//! If <update> = True then AISObject is recomputed and all
|
|
//! the visualization settings are applied
|
|
Standard_EXPORT void Display (const Standard_Boolean update = Standard_False);
|
|
|
|
//! Removes the presentation of this AIS
|
|
//! presentation attribute from the TPrsStd_AISViewer.
|
|
//! If remove is true, this AIS presentation attribute
|
|
//! is removed from the interactive context.
|
|
Standard_EXPORT void Erase (const Standard_Boolean remove = Standard_False);
|
|
|
|
//! Recompute presentation of object and apply the visualization settings
|
|
Standard_EXPORT void Update();
|
|
|
|
Standard_EXPORT Standard_GUID GetDriverGUID() const;
|
|
|
|
Standard_EXPORT void SetDriverGUID (const Standard_GUID& guid);
|
|
|
|
|
|
//! Returns true if this AIS presentation attribute is displayed.
|
|
Standard_EXPORT Standard_Boolean IsDisplayed() const;
|
|
|
|
//! Returns AIS_InteractiveObject stored in the presentation attribute
|
|
Standard_EXPORT Handle(AIS_InteractiveObject) GetAIS() const;
|
|
|
|
|
|
//! Returns the material setting for this presentation attribute.
|
|
Standard_EXPORT Graphic3d_NameOfMaterial Material() const;
|
|
|
|
//! Sets the material aName for this presentation attribute.
|
|
Standard_EXPORT void SetMaterial (const Graphic3d_NameOfMaterial aName);
|
|
|
|
//! Returns true if this presentation attribute already has a material setting.
|
|
Standard_EXPORT Standard_Boolean HasOwnMaterial() const;
|
|
|
|
//! Removes the material setting from this presentation attribute.
|
|
Standard_EXPORT void UnsetMaterial();
|
|
|
|
|
|
//! Sets the transparency value aValue for this
|
|
//! presentation attribute.
|
|
//! This value is 0.6 by default.
|
|
Standard_EXPORT void SetTransparency (const Standard_Real aValue = 0.6);
|
|
|
|
Standard_EXPORT Standard_Real Transparency() const;
|
|
|
|
//! Returns true if this presentation attribute already has a transparency setting.
|
|
Standard_EXPORT Standard_Boolean HasOwnTransparency() const;
|
|
|
|
//! Removes the transparency setting from this presentation attribute.
|
|
Standard_EXPORT void UnsetTransparency();
|
|
|
|
Standard_EXPORT Quantity_NameOfColor Color() const;
|
|
|
|
//! Sets the color aColor for this presentation attribute.
|
|
Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor);
|
|
|
|
//! Returns true if this presentation attribute already has a color setting.
|
|
Standard_EXPORT Standard_Boolean HasOwnColor() const;
|
|
|
|
//! Removes the color setting from this presentation attribute.
|
|
Standard_EXPORT void UnsetColor();
|
|
|
|
Standard_EXPORT Standard_Real Width() const;
|
|
|
|
//! Sets the width aWidth for this presentation attribute.
|
|
Standard_EXPORT void SetWidth (const Standard_Real aWidth);
|
|
|
|
//! Returns true if this presentation attribute already has a width setting.
|
|
Standard_EXPORT Standard_Boolean HasOwnWidth() const;
|
|
|
|
//! Removes the width setting from this presentation attribute.
|
|
Standard_EXPORT void UnsetWidth();
|
|
|
|
Standard_EXPORT Standard_Integer Mode() const;
|
|
|
|
Standard_EXPORT void SetMode (const Standard_Integer theMode);
|
|
|
|
Standard_EXPORT Standard_Boolean HasOwnMode() const;
|
|
|
|
Standard_EXPORT void UnsetMode();
|
|
|
|
Standard_EXPORT Standard_Integer SelectionMode() const;
|
|
|
|
Standard_EXPORT void SetSelectionMode (const Standard_Integer theSelectionMode);
|
|
|
|
Standard_EXPORT Standard_Boolean HasOwnSelectionMode() const;
|
|
|
|
Standard_EXPORT void UnsetSelectionMode();
|
|
|
|
Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
|
|
|
|
Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
|
|
|
|
Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
|
|
|
|
Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
|
|
|
|
Standard_EXPORT virtual Handle(TDF_Attribute) BackupCopy() const Standard_OVERRIDE;
|
|
|
|
Standard_EXPORT virtual void AfterAddition() Standard_OVERRIDE;
|
|
|
|
Standard_EXPORT virtual void BeforeRemoval() Standard_OVERRIDE;
|
|
|
|
Standard_EXPORT virtual void BeforeForget() Standard_OVERRIDE;
|
|
|
|
Standard_EXPORT virtual void AfterResume() Standard_OVERRIDE;
|
|
|
|
Standard_EXPORT virtual Standard_Boolean BeforeUndo (const Handle(TDF_AttributeDelta)& anAttDelta, const Standard_Boolean forceIt = Standard_False) Standard_OVERRIDE;
|
|
|
|
//! update AIS viewer according to delta
|
|
Standard_EXPORT virtual Standard_Boolean AfterUndo (const Handle(TDF_AttributeDelta)& anAttDelta, const Standard_Boolean forceIt = Standard_False) Standard_OVERRIDE;
|
|
|
|
DEFINE_STANDARD_RTTIEXT(TPrsStd_AISPresentation,TDF_Attribute)
|
|
|
|
protected:
|
|
|
|
//! Returns attribute storing presentation data
|
|
Standard_EXPORT virtual Handle(TDataXtd_Presentation) getData () const;
|
|
|
|
private:
|
|
|
|
Handle(AIS_InteractiveContext) getAISContext() const;
|
|
|
|
//! Activates selection mode of the interactive object.
|
|
//! It is called internally on change of selection mode and AISUpdate().
|
|
void ActivateSelectionMode();
|
|
|
|
//! Updates AIS_InteractiveObject stored in the attribute
|
|
//! and applies the visualization settings
|
|
Standard_EXPORT void AISUpdate();
|
|
|
|
//! Displays AIS_InteractiveObject stored in the attribute
|
|
Standard_EXPORT void AISDisplay();
|
|
|
|
//! Erases AIS_InteractiveObject stored in the attribute in
|
|
//! the viewer; If <remove> = True then AISObject is removed
|
|
//! from AIS_InteractiveContext instead of simple erasing in the viewer
|
|
Standard_EXPORT void AISErase (const Standard_Boolean remove = Standard_False);
|
|
|
|
private:
|
|
Handle(AIS_InteractiveObject) myAIS;
|
|
};
|
|
|
|
#endif // _TPrsStd_AISPresentation_HeaderFile
|