// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _MeshVS_Mesh_HeaderFile #define _MeshVS_Mesh_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_MeshVS_Mesh_HeaderFile #include #endif #ifndef _MeshVS_SequenceOfPrsBuilder_HeaderFile #include #endif #ifndef _Handle_MeshVS_PrsBuilder_HeaderFile #include #endif #ifndef _Handle_TColStd_HPackedMapOfInteger_HeaderFile #include #endif #ifndef _MeshVS_DataMapOfIntegerOwner_HeaderFile #include #endif #ifndef _Handle_MeshVS_DataSource_HeaderFile #include #endif #ifndef _Handle_MeshVS_Drawer_HeaderFile #include #endif #ifndef _Handle_SelectMgr_EntityOwner_HeaderFile #include #endif #ifndef _MeshVS_MeshSelectionMethod_HeaderFile #include #endif #ifndef _AIS_InteractiveObject_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Handle_PrsMgr_PresentationManager3d_HeaderFile #include #endif #ifndef _Handle_Prs3d_Presentation_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Handle_SelectMgr_Selection_HeaderFile #include #endif #ifndef _Quantity_NameOfColor_HeaderFile #include #endif #ifndef _Standard_CString_HeaderFile #include #endif class MeshVS_PrsBuilder; class TColStd_HPackedMapOfInteger; class MeshVS_DataSource; class MeshVS_Drawer; class SelectMgr_EntityOwner; class PrsMgr_PresentationManager3d; class Prs3d_Presentation; class SelectMgr_Selection; class SelectMgr_SequenceOfOwner; class MeshVS_DataMapOfIntegerOwner; //! the main class provides interface to create mesh presentation as a whole
class MeshVS_Mesh : public AIS_InteractiveObject { public: //! Constructor.
//! theIsAllowOverlapped is Standard_True, if it is allowed to draw edges overlapped with beams
//! Its value is stored in drawer
Standard_EXPORT MeshVS_Mesh(const Standard_Boolean theIsAllowOverlapped = Standard_False); Standard_EXPORT virtual void Destroy() ; ~MeshVS_Mesh() { Destroy(); } //! Computes presentation using builders added to sequence. Each builder computes
//! own part of mesh presentation according to its type.
Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& PM,const Handle(Prs3d_Presentation)& Prs,const Standard_Integer DisplayMode) ; //! Computes selection according to SelectMode
Standard_EXPORT virtual void ComputeSelection(const Handle(SelectMgr_Selection)& Sel,const Standard_Integer SelectMode) ; //! Draw selected owners presentation
Standard_EXPORT virtual void HilightSelected(const Handle(PrsMgr_PresentationManager3d)& PM,const SelectMgr_SequenceOfOwner& Owners) ; //! Draw hilighted owner presentation
Standard_EXPORT virtual void HilightOwnerWithColor(const Handle(PrsMgr_PresentationManager3d)& PM,const Quantity_NameOfColor Color,const Handle(SelectMgr_EntityOwner)& Owner) ; //! Clears internal selection presentation
Standard_EXPORT virtual void ClearSelected() ; //! How many builders there are in sequence
Standard_EXPORT Standard_Integer GetBuildersCount() const; //! Returns builder by its index in sequence
Standard_EXPORT Handle_MeshVS_PrsBuilder GetBuilder(const Standard_Integer Index) const; //! Returns builder by its ID
Standard_EXPORT Handle_MeshVS_PrsBuilder GetBuilderById(const Standard_Integer Id) const; //! Returns the smallest positive ID, not occupied by any builder.
//! This method using when builder is created with ID = -1
Standard_EXPORT Standard_Integer GetFreeId() const; //! Adds builder to tale of sequence.
//! PrsBuilder is builder to be added
//! If TreatAsHilighter is true, MeshVS_Mesh will use this builder to create
//! presentation of hilighted and selected owners.
//! Only one builder can be hilighter, so that if you call this method with
//! TreatAsHilighter = Standard_True some times, only last builder will be hilighter
//! WARNING: As minimum one builder must be added as hilighter, otherwise selection cannot be computed
Standard_EXPORT void AddBuilder(const Handle(MeshVS_PrsBuilder)& Builder,const Standard_Boolean TreatAsHilighter = Standard_False) ; //! Changes hilighter ( see above )
Standard_EXPORT void SetHilighter(const Handle(MeshVS_PrsBuilder)& Builder) ; //! Sets builder with sequence index "Index" as hilighter
Standard_EXPORT Standard_Boolean SetHilighter(const Standard_Integer Index) ; //! Sets builder with identificator "Id" as hilighter
Standard_EXPORT Standard_Boolean SetHilighterById(const Standard_Integer Id) ; //! Returns hilighter
Standard_EXPORT Handle_MeshVS_PrsBuilder GetHilighter() const; //! Removes builder from sequence. If it is hilighter, hilighter will be NULL
//! ( Don't remember to set it to other after!!! )
Standard_EXPORT void RemoveBuilder(const Standard_Integer Index) ; //! Removes builder with identificator Id
Standard_EXPORT void RemoveBuilderById(const Standard_Integer Id) ; //! Finds builder by its type the string represents
Standard_EXPORT Handle_MeshVS_PrsBuilder FindBuilder(const Standard_CString TypeString) const; //! Returns map of owners.
Standard_EXPORT const MeshVS_DataMapOfIntegerOwner& GetOwnerMaps(const Standard_Boolean IsElement) ; //! Returns default builders' data source
Standard_EXPORT Handle_MeshVS_DataSource GetDataSource() const; //! Sets default builders' data source
Standard_EXPORT void SetDataSource(const Handle(MeshVS_DataSource)& aDataSource) ; //! Returns default builders' drawer
Standard_EXPORT Handle_MeshVS_Drawer GetDrawer() const; //! Sets default builders' drawer
Standard_EXPORT void SetDrawer(const Handle(MeshVS_Drawer)& aDrawer) ; //! Returns True if specified element is hidden
//! By default no elements are hidden
Standard_EXPORT Standard_Boolean IsHiddenElem(const Standard_Integer ID) const; //! Returns True if specified node is hidden.
//! By default all nodes are hidden
Standard_EXPORT Standard_Boolean IsHiddenNode(const Standard_Integer ID) const; //! Returns True if specified element is not hidden
Standard_EXPORT Standard_Boolean IsSelectableElem(const Standard_Integer ID) const; //! Returns True if specified node is specified as selectable.
Standard_EXPORT Standard_Boolean IsSelectableNode(const Standard_Integer ID) const; //! Returns map of hidden nodes (may be null handle)
Standard_EXPORT const Handle_TColStd_HPackedMapOfInteger& GetHiddenNodes() const; //! Sets map of hidden nodes, which shall not be displayed individually.
//! If nodes shared by some elements shall not be drawn,
//! they should be included into that map
Standard_EXPORT void SetHiddenNodes(const Handle(TColStd_HPackedMapOfInteger)& Ids) ; //! Returns map of hidden elements (may be null handle)
Standard_EXPORT const Handle_TColStd_HPackedMapOfInteger& GetHiddenElems() const; //! Sets map of hidden elements
Standard_EXPORT void SetHiddenElems(const Handle(TColStd_HPackedMapOfInteger)& Ids) ; //! Returns map of selectable elements (may be null handle)
Standard_EXPORT const Handle_TColStd_HPackedMapOfInteger& GetSelectableNodes() const; //! Sets map of selectable nodes.
Standard_EXPORT void SetSelectableNodes(const Handle(TColStd_HPackedMapOfInteger)& Ids) ; //! Automatically computes selectable nodes; the node is considered
//! as being selectable if it is either not hidden, or is hidden
//! but referred by at least one non-hidden element.
//! Thus all nodes that are visible (either individually, or as ends or
//! corners of elements) are selectable by default.
Standard_EXPORT void UpdateSelectableNodes() ; //! Returns set mesh selection method (see MeshVS.cdl)
Standard_EXPORT MeshVS_MeshSelectionMethod GetMeshSelMethod() const; //! Sets mesh selection method (see MeshVS.cdl)
Standard_EXPORT void SetMeshSelMethod(const MeshVS_MeshSelectionMethod M) ; //! Returns True if the given owner represents a whole mesh.
Standard_EXPORT virtual Standard_Boolean IsWholeMeshOwner(const Handle(SelectMgr_EntityOwner)& theOwner) const; friend class MeshVS_PrsBuilder; DEFINE_STANDARD_RTTI(MeshVS_Mesh) protected: MeshVS_DataMapOfIntegerOwner myNodeOwners; MeshVS_DataMapOfIntegerOwner myElementOwners; MeshVS_DataMapOfIntegerOwner my0DOwners; MeshVS_DataMapOfIntegerOwner myLinkOwners; MeshVS_DataMapOfIntegerOwner myFaceOwners; MeshVS_DataMapOfIntegerOwner myVolumeOwners; MeshVS_DataMapOfIntegerOwner myGroupOwners; MeshVS_DataMapOfIntegerOwner myMeshOwners; Handle_MeshVS_Drawer myCurrentDrawer; Handle_MeshVS_Drawer mySelectionDrawer; Handle_MeshVS_Drawer myHilightDrawer; Handle_SelectMgr_EntityOwner myWholeMeshOwner; private: MeshVS_SequenceOfPrsBuilder myBuilders; Handle_MeshVS_PrsBuilder myHilighter; Handle_TColStd_HPackedMapOfInteger myHiddenElements; Handle_TColStd_HPackedMapOfInteger myHiddenNodes; Handle_TColStd_HPackedMapOfInteger mySelectableNodes; Handle_MeshVS_DataSource myDataSource; MeshVS_MeshSelectionMethod mySelectionMethod; }; // other Inline functions and methods (like "C++: function call" methods) #endif