OCCT3D OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    AIS_Shape Class Reference

    A framework to manage presentation and selection of shapes. AIS_Shape is the interactive object which is used the most by applications. There are standard functions available which allow you to prepare selection operations on the constituent elements of shapes - vertices, edges, faces etc - in an open local context. The selection modes specific to "Shape" type objects are referred to as Standard Activation Mode. These modes are only taken into account in open local context and only act on Interactive Objects which have redefined the virtual method AcceptShapeDecomposition so that it returns true. Several advanced functions are also available. These include functions to manage deviation angle and deviation coefficient - both HLR and non-HLR - of an inheriting shape class. These services allow you to select one type of shape interactive object for higher precision drawing. When you do this, the Prs3d_Drawer::IsOwn... functions corresponding to the above deviation angle and coefficient functions return true indicating that there is a local setting available for the specific object. More...

    #include <AIS_Shape.hxx>

    Inheritance diagram for AIS_Shape:

    Public Member Functions

     AIS_Shape (const TopoDS_Shape &shap)
     Initializes construction of the shape shap from wires, edges and vertices.
    int Signature () const override
     Returns index 0. This value refers to SHAPE from TopAbs_ShapeEnum.
    AIS_KindOfInteractive Type () const override
     Returns Object as the type of Interactive Object.
    bool AcceptShapeDecomposition () const override
     Returns true if the Interactive Object accepts shape decomposition.
    bool AcceptDisplayMode (const int theMode) const override
     Return true if specified display mode is supported.
    const TopoDS_ShapeShape () const
     Returns this shape object.
    void SetShape (const TopoDS_Shape &theShape)
     Constructs an instance of the shape object theShape.
    void Set (const TopoDS_Shape &theShape)
     Alias for ::SetShape().
    bool SetOwnDeviationCoefficient ()
     Sets a local value for deviation coefficient for this specific shape.
    bool SetOwnDeviationAngle ()
     Sets a local value for deviation angle for this specific shape.
    void SetOwnDeviationCoefficient (const double aCoefficient)
     Sets a local value for deviation coefficient for this specific shape.
    void SetAngleAndDeviation (const double anAngle)
     this compute a new angle and Deviation from the value anAngle and set the values stored in myDrawer with these that become local to the shape
    double UserAngle () const
     gives back the angle initial value put by the User.
    void SetOwnDeviationAngle (const double anAngle)
     sets myOwnDeviationAngle field in Prs3d_Drawer & recomputes presentation
    bool OwnDeviationCoefficient (double &aCoefficient, double &aPreviousCoefficient) const
     Returns true and the values of the deviation coefficient aCoefficient and the previous deviation coefficient aPreviousCoefficient. If these values are not already set, false is returned.
    bool OwnDeviationAngle (double &anAngle, double &aPreviousAngle) const
     Returns true and the values of the deviation angle anAngle and the previous deviation angle aPreviousAngle. If these values are not already set, false is returned.
    void SetTypeOfHLR (const Prs3d_TypeOfHLR theTypeOfHLR)
     Sets the type of HLR algorithm used by the shape.
    Prs3d_TypeOfHLR TypeOfHLR () const
     Gets the type of HLR algorithm.
    void SetColor (const Quantity_Color &theColor) override
     Sets the color aColor in the reconstructed compound shape. Acts via the Drawer methods below on the appearance of:
    void UnsetColor () override
     Removes settings for color in the reconstructed compound shape.
    void SetWidth (const double aValue) override
     Sets the value aValue for line width in the reconstructed compound shape. Changes line aspects for lines presentation.
    void UnsetWidth () override
     Removes the setting for line width in the reconstructed compound shape.
    void SetMaterial (const Graphic3d_MaterialAspect &aName) override
     Allows you to provide settings for the material aName in the reconstructed compound shape.
    void UnsetMaterial () override
     Removes settings for material in the reconstructed compound shape.
    void SetTransparency (const double aValue=0.6) override
     Sets the value aValue for transparency in the reconstructed compound shape.
    void UnsetTransparency () override
     Removes the setting for transparency in the reconstructed compound shape.
    virtual const Bnd_BoxBoundingBox ()
     Constructs a bounding box with which to reconstruct compound topological shapes for presentation.
    void Color (Quantity_Color &aColor) const override
     Returns the Color attributes of the shape accordingly to the current facing model;.
    Graphic3d_NameOfMaterial Material () const override
     Returns the NameOfMaterial attributes of the shape accordingly to the current facing model;.
    double Transparency () const override
     Returns the transparency attributes of the shape accordingly to the current facing model;.
    Public Member Functions inherited from AIS_InteractiveObject
    void Redisplay (const bool AllModes=false)
     Updates the active presentation; if <AllModes> = true all the presentations inside are recomputed. IMPORTANT: It is preferable to call Redisplay method of corresponding AIS_InteractiveContext instance for cases when it is accessible. This method just redirects call to myCTXPtr, so this class field must be up to date for proper result.
    bool HasInteractiveContext () const
     Indicates whether the Interactive Object has a pointer to an interactive context.
    AIS_InteractiveContextInteractiveContext () const
     Returns the context pointer to the interactive context.
    virtual void SetContext (const occ::handle< AIS_InteractiveContext > &aCtx)
     Sets the interactive context aCtx and provides a link to the default drawing tool or "Drawer" if there is none.
    bool HasOwner () const
     Returns true if the object has an owner attributed to it. The owner can be a shape for a set of sub-shapes or a sub-shape for sub-shapes which it is composed of, and takes the form of a transient.
    const occ::handle< Standard_Transient > & GetOwner () const
     Returns the owner of the Interactive Object. The owner can be a shape for a set of sub-shapes or a sub-shape for sub-shapes which it is composed of, and takes the form of a transient. There are two types of owners:
    void SetOwner (const occ::handle< Standard_Transient > &theApplicativeEntity)
     Allows you to attribute the owner theApplicativeEntity to an Interactive Object. This can be a shape for a set of sub-shapes or a sub-shape for sub-shapes which it is composed of. The owner takes the form of a transient.
    void ClearOwner ()
     Each Interactive Object has methods which allow us to attribute an Owner to it in the form of a Transient. This method removes the owner from the graphic entity.
    virtual bool ProcessDragging (const occ::handle< AIS_InteractiveContext > &theCtx, const occ::handle< V3d_View > &theView, const occ::handle< SelectMgr_EntityOwner > &theOwner, const NCollection_Vec2< int > &theDragFrom, const NCollection_Vec2< int > &theDragTo, const AIS_DragAction theAction)
     Drag object in the viewer.
    occ::handle< AIS_InteractiveContextGetContext () const
     Returns the context pointer to the interactive context.
    bool HasPresentation () const
     Returns TRUE when this object has a presentation in the current DisplayMode().
    occ::handle< Prs3d_PresentationPresentation () const
     Returns the current presentation of this object according to the current DisplayMode().
    void SetAspect (const occ::handle< Prs3d_BasicAspect > &anAspect)
     Sets the graphic basic aspect to the current presentation.
    Public Member Functions inherited from SelectMgr_SelectableObject
     ~SelectMgr_SelectableObject () override
     Clears all selections of the object.
    void RecomputePrimitives ()
     Re-computes the sensitive primitives for all modes. IMPORTANT: Do not use this method to update selection primitives except implementing custom selection manager! This method does not take into account necessary BVH updates, but may invalidate the pointers it refers to. TO UPDATE SELECTION properly from outside classes, use method UpdateSelection.
    void RecomputePrimitives (const int theMode)
     Re-computes the sensitive primitives which correspond to the <theMode>th selection mode. IMPORTANT: Do not use this method to update selection primitives except implementing custom selection manager! selection manager! This method does not take into account necessary BVH updates, but may invalidate the pointers it refers to. TO UPDATE SELECTION properly from outside classes, use method UpdateSelection.
    void AddSelection (const occ::handle< SelectMgr_Selection > &aSelection, const int aMode)
     Adds the selection aSelection with the selection mode index aMode to this framework.
    void ClearSelections (const bool update=false)
     Empties all the selections in the SelectableObject <update> parameter defines whether all object's selections should be flagged for further update or not. This improved method can be used to recompute an object's selection (without redisplaying the object completely) when some selection mode is activated not for the first time.
    const occ::handle< SelectMgr_Selection > & Selection (const int theMode) const
     Returns the selection having specified selection mode or NULL.
    bool HasSelection (const int theMode) const
     Returns true if a selection corresponding to the selection mode theMode was computed for this object.
    const NCollection_Sequence< occ::handle< SelectMgr_Selection > > & Selections () const
     Return the sequence of selections.
    void ResetTransformation () override
     resets local transformation to identity.
    void UpdateTransformation () override
     Recomputes the location of the selection aSelection.
    virtual void UpdateTransformations (const occ::handle< SelectMgr_Selection > &aSelection)
     Updates locations in all sensitive entities from <aSelection> and in corresponding entity owners.
    virtual void HilightSelected (const occ::handle< PrsMgr_PresentationManager > &thePrsMgr, const NCollection_Sequence< occ::handle< SelectMgr_EntityOwner > > &theSeq)
     Method which draws selected owners ( for fast presentation draw ).
    virtual void ClearSelected ()
     Method which clear all selected owners belonging to this selectable object ( for fast presentation draw ).
    virtual void ClearDynamicHighlight (const occ::handle< PrsMgr_PresentationManager > &theMgr)
     Method that needs to be implemented when the object manages selection and dynamic highlighting on its own. Clears or invalidates dynamic highlight presentation. By default it clears immediate draw of given presentation manager.
    virtual void HilightOwnerWithColor (const occ::handle< PrsMgr_PresentationManager > &thePM, const occ::handle< Prs3d_Drawer > &theStyle, const occ::handle< SelectMgr_EntityOwner > &theOwner)
     Method which hilight an owner belonging to this selectable object (for fast presentation draw).
    virtual bool IsAutoHilight () const
     If returns True, the old mechanism for highlighting selected objects is used (HilightSelected Method may be empty). If returns False, the HilightSelected method will be fully responsible for highlighting selected entity owners belonging to this selectable object.
    virtual void SetAutoHilight (const bool theAutoHilight)
     Set AutoHilight property to true or false.
    occ::handle< Prs3d_PresentationGetHilightPresentation (const occ::handle< PrsMgr_PresentationManager > &thePrsMgr)
     Creates or returns existing presentation for highlighting detected object.
    occ::handle< Prs3d_PresentationGetSelectPresentation (const occ::handle< PrsMgr_PresentationManager > &thePrsMgr)
     Creates or returns existing presentation for highlighting selected object.
    virtual void ErasePresentations (bool theToRemove)
     Removes presentations returned by GetHilightPresentation() and GetSelectPresentation().
    void SetZLayer (const Graphic3d_ZLayerId theLayerId) override
     Set Z layer ID and update all presentations of the selectable object. The layers mechanism allows drawing objects in higher layers in overlay of objects in lower layers.
    void UpdateSelection (const int theMode=-1)
     Sets update status FULL to selections of the object. Must be used as the only method of UpdateSelection from outer classes to prevent BVH structures from being outdated.
    void SetAssemblyOwner (const occ::handle< SelectMgr_EntityOwner > &theOwner, const int theMode=-1)
     Sets common entity owner for assembly sensitive object entities.
    Bnd_Box BndBoxOfSelected (const occ::handle< NCollection_Shared< NCollection_IndexedMap< occ::handle< SelectMgr_EntityOwner > > > > &theOwners)
     Returns a bounding box of sensitive entities with the owners given if they are a part of activated selection.
    int GlobalSelectionMode () const
     Returns the mode for selection of object as a whole; 0 by default.
    virtual occ::handle< SelectMgr_EntityOwnerGlobalSelOwner () const
     Returns the owner of mode for selection of object as a whole.
    virtual const occ::handle< SelectMgr_EntityOwner > & GetAssemblyOwner () const
     Returns common entity owner if the object is an assembly.
    void DumpJson (Standard_OStream &theOStream, int theDepth=-1) const override
     Dumps the content of me into the stream.
    Public Member Functions inherited from PrsMgr_PresentableObject
    NCollection_Sequence< occ::handle< PrsMgr_Presentation > > & Presentations ()
     Return presentations.
    Graphic3d_ZLayerId ZLayer () const
     Get ID of Z layer for main presentation.
    bool IsMutable () const
     Returns true if object has mutable nature (content or location are be changed regularly). Mutable object will be managed in different way than static onces (another optimizations).
    virtual void SetMutable (const bool theIsMutable)
     Sets if the object has mutable nature (content or location will be changed regularly). This method should be called before object displaying to take effect.
    const occ::handle< Graphic3d_ViewAffinity > & ViewAffinity () const
     Return view affinity mask.
    bool HasDisplayMode () const
     Returns true if the Interactive Object has display mode setting overriding global setting (within Interactive Context).
    int DisplayMode () const
     Returns the display mode setting of the Interactive Object. The range of supported display mode indexes should be specified within object definition and filtered by AccepDisplayMode().
    void SetDisplayMode (const int theMode)
     Sets the display mode for the interactive object. An object can have its own temporary display mode, which is different from that proposed by the interactive context.
    void UnsetDisplayMode ()
     Removes display mode settings from the interactive object.
    bool HasHilightMode () const
     Returns true if the Interactive Object is in highlight mode.
    int HilightMode () const
     Returns highlight display mode. This is obsolete method for backward compatibility - use ::HilightAttributes() and ::DynamicHilightAttributes() instead.
    void SetHilightMode (const int theMode)
     Sets highlight display mode. This is obsolete method for backward compatibility - use ::HilightAttributes() and ::DynamicHilightAttributes() instead.
    void UnsetHilightMode ()
     Unsets highlight display mode.
    virtual int DefaultDisplayMode () const
     Returns the default display mode.
    bool ToBeUpdated (bool theToIncludeHidden=false) const
     Returns TRUE if any active presentation has invalidation flag.
    void SetToUpdate (int theMode)
     Flags presentation to be updated; UpdatePresentations() will recompute these presentations.
    void SetToUpdate ()
     flags all the Presentations to be Updated.
    bool IsInfinite () const
     Returns true if the interactive object is infinite; FALSE by default. This flag affects various operations operating on bounding box of graphic presentations of this object. For instance, infinite objects are not taken in account for View FitAll. This does not necessarily means that object is actually infinite, auxiliary objects might be also marked with this flag to achieve desired behavior.
    void SetInfiniteState (const bool theFlag=true)
     Sets if object should be considered as infinite.
    PrsMgr_TypeOfPresentation3d TypeOfPresentation3d () const
     Returns information on whether the object accepts display in HLR mode or not.
    void SetTypeOfPresentation (const PrsMgr_TypeOfPresentation3d theType)
     Set type of presentation.
    PrsMgr_DisplayStatus DisplayStatus () const
     Return presentation display status; PrsMgr_DisplayStatus_None by default.
    const occ::handle< Prs3d_Drawer > & Attributes () const
     Initializes the drawing tool theDrawer.
    virtual void SetAttributes (const occ::handle< Prs3d_Drawer > &theDrawer)
     Initializes the drawing tool theDrawer.
    const occ::handle< Prs3d_Drawer > & HilightAttributes () const
     Returns the hilight attributes settings. When not NULL, overrides both Prs3d_TypeOfHighlight_LocalSelected and Prs3d_TypeOfHighlight_Selected defined within AIS_InteractiveContext::HighlightStyle().
    virtual void SetHilightAttributes (const occ::handle< Prs3d_Drawer > &theDrawer)
     Initializes the hilight drawing tool theDrawer.
    const occ::handle< Prs3d_Drawer > & DynamicHilightAttributes () const
     Returns the hilight attributes settings. When not NULL, overrides both Prs3d_TypeOfHighlight_LocalDynamic and Prs3d_TypeOfHighlight_Dynamic defined within AIS_InteractiveContext::HighlightStyle().
    virtual void SetDynamicHilightAttributes (const occ::handle< Prs3d_Drawer > &theDrawer)
     Initializes the dynamic hilight drawing tool.
    virtual void UnsetHilightAttributes ()
     Clears settings provided by the hilight drawing tool theDrawer.
    void SynchronizeAspects ()
     Synchronize presentation aspects after their modification.
    const occ::handle< Graphic3d_TransformPers > & TransformPersistence () const
     Sets up Transform Persistence defining a special Local Coordinate system where this object should be located. Note that management of Transform Persistence object is more expensive than of the normal one, because it requires its position being recomputed basing on camera position within each draw call / traverse.
    virtual void SetTransformPersistence (const occ::handle< Graphic3d_TransformPers > &theTrsfPers)
     Sets up Transform Persistence defining a special Local Coordinate system where this object should be located. Note that management of Transform Persistence object is more expensive than of the normal one, because it requires its position being recomputed basing on camera position within each draw call / traverse.
    const occ::handle< TopLoc_Datum3D > & LocalTransformationGeom () const
     Return the local transformation. Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence.
    void SetLocalTransformation (const gp_Trsf &theTrsf)
     Sets local transformation to theTransformation. Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence.
    void SetLocalTransformation (const occ::handle< TopLoc_Datum3D > &theTrsf)
     Sets local transformation to theTransformation. Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence.
    bool HasTransformation () const
     Returns true if object has a transformation that is different from the identity.
    const occ::handle< TopLoc_Datum3D > & TransformationGeom () const
     Return the transformation taking into account transformation of parent object(s). Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence.
    const gp_TrsfLocalTransformation () const
     Return the local transformation. Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence.
    const gp_TrsfTransformation () const
     Return the transformation taking into account transformation of parent object(s). Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence.
    const gp_GTrsfInversedTransformation () const
     Return inversed transformation.
    const occ::handle< TopLoc_Datum3D > & CombinedParentTransformation () const
     Return combined parent transformation.
    virtual void RecomputeTransformation (const occ::handle< Graphic3d_Camera > &theProjector)
     Calculates object presentation for specific camera position. Each of the views in the viewer and every modification such as rotation, for example, entails recalculation.
    const occ::handle< Graphic3d_SequenceOfHClipPlane > & ClipPlanes () const
     Set clip planes for graphical clipping for all display mode presentations. The composition of clip planes truncates the rendering space to convex volume. Please be aware that number of supported clip plane is limited. The planes which exceed the limit are ignored. Besides of this, some planes can be already set in view where the object is shown: the number of these planes should be subtracted from limit to predict the maximum possible number of object clipping planes.
    virtual void SetClipPlanes (const occ::handle< Graphic3d_SequenceOfHClipPlane > &thePlanes)
     Set clip planes for graphical clipping for all display mode presentations. The composition of clip planes truncates the rendering space to convex volume. Please be aware that number of supported clip plane is limited. The planes which exceed the limit are ignored. Besides of this, some planes can be already set in view where the object is shown: the number of these planes should be subtracted from limit to predict the maximum possible number of object clipping planes.
    virtual void AddClipPlane (const occ::handle< Graphic3d_ClipPlane > &thePlane)
     Adds clip plane for graphical clipping for all display mode presentations. The composition of clip planes truncates the rendering space to convex volume. Please be aware that number of supported clip plane is limited. The planes which exceed the limit are ignored. Besides of this, some planes can be already set in view where the object is shown: the number of these planes should be subtracted from limit to predict the maximum possible number of object clipping planes.
    virtual void RemoveClipPlane (const occ::handle< Graphic3d_ClipPlane > &thePlane)
     Removes previously added clip plane.
    PrsMgr_PresentableObjectParent () const
     Returns children of the current object.
    const NCollection_List< occ::handle< PrsMgr_PresentableObject > > & Children () const
     Returns children of the current object.
    virtual void AddChild (const occ::handle< PrsMgr_PresentableObject > &theObject)
     Makes theObject child of current object in scene hierarchy.
    void AddChildWithCurrentTransformation (const occ::handle< PrsMgr_PresentableObject > &theObject)
     Makes theObject child of current object in scene hierarchy with keeping the current global transformation So the object keeps the same position/orientation in the global CS.
    virtual void RemoveChild (const occ::handle< PrsMgr_PresentableObject > &theObject)
     Removes theObject from children of current object in scene hierarchy.
    void RemoveChildWithRestoreTransformation (const occ::handle< PrsMgr_PresentableObject > &theObject)
     Removes theObject from children of current object in scene hierarchy with keeping the current global transformation. So the object keeps the same position/orientation in the global CS.
    bool HasOwnPresentations () const
     Returns true if object should have own presentations.
    virtual void BoundingBox (Bnd_Box &theBndBox)
     Returns bounding box of object correspondingly to its current display mode. This method requires presentation to be already computed, since it relies on bounding box of presentation structures, which are supposed to be same/close amongst different display modes of this object.
    void SetIsoOnTriangulation (const bool theIsEnabled)
     Returns the current facing model which is in effect.
    Aspect_TypeOfFacingModel CurrentFacingModel () const
     Returns the current facing model which is in effect.
    void SetCurrentFacingModel (const Aspect_TypeOfFacingModel theModel=Aspect_TOFM_BOTH_SIDE)
     change the current facing model apply on polygons for SetColor(), SetTransparency(), SetMaterial() methods default facing model is Aspect_TOFM_TWO_SIDE. This mean that attributes is applying both on the front and back face.
    bool HasColor () const
     Returns true if the Interactive Object has color.
    bool HasWidth () const
     Returns true if the Interactive Object has width.
    double Width () const
     Returns the width setting of the Interactive Object.
    bool HasMaterial () const
     Returns true if the Interactive Object has a setting for material.
    bool IsTransparent () const
     Returns true if there is a transparency setting.
    virtual bool HasPolygonOffsets () const
     Returns true if <myDrawer> has non-null shading aspect.
    virtual void PolygonOffsets (int &aMode, float &aFactor, float &aUnits) const
     Retrieves current polygon offsets settings from <myDrawer>.
    virtual void SetPolygonOffsets (const int aMode, const float aFactor=1.0, const float aUnits=0.0)
     Sets up polygon offsets for this object.
    virtual void UnsetAttributes ()
     Clears settings provided by the drawing tool aDrawer.
    void ToBeUpdated (NCollection_List< int > &ListOfMode) const
     pointer to the parent object
    bool ToPropagateVisualState () const
     Get value of the flag "propagate visual state" It means that the display/erase/color visual state is propagated automatically to all children; by default, the flag is true.
    void SetPropagateVisualState (const bool theFlag)
     Change the value of the flag "propagate visual state".
    Public Member Functions inherited from Standard_Transient
     Standard_Transient ()
     Empty constructor.
     Standard_Transient (const Standard_Transient &)
     Copy constructor – does nothing.
    Standard_Transientoperator= (const Standard_Transient &)
     Assignment operator, needed to avoid copying reference counter.
    virtual ~Standard_Transient ()=default
     Destructor must be virtual.
    virtual const opencascade::handle< Standard_Type > & DynamicType () const
     Returns a type descriptor about this object.
    bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
     Returns a true value if this is an instance of Type.
    bool IsInstance (const char *const theTypeName) const
     Returns a true value if this is an instance of TypeName.
    bool IsKind (const opencascade::handle< Standard_Type > &theType) const
     Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
    bool IsKind (const char *const theTypeName) const
     Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
    Standard_TransientThis () const
     Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
    int GetRefCount () const noexcept
     Get the reference counter of this object.
    void IncrementRefCounter () noexcept
     Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
    int DecrementRefCounter () noexcept
     Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
    virtual void Delete () const
     Memory deallocator for transient classes.

    Static Public Member Functions

    static TopAbs_ShapeEnum SelectionType (const int theSelMode)
     Return shape type for specified selection mode.
    static int SelectionMode (const TopAbs_ShapeEnum theShapeType)
     Return selection mode for specified shape type.
    static constexpr const char * get_type_name ()
     Returns a type descriptor about this object.
    static const opencascade::handle< Standard_Type > & get_type_descriptor ()
     Returns type descriptor of Standard_Transient class.

    methods to alter texture mapping properties

    Return texture repeat UV values; (1, 1) by default.

    TopoDS_Shape myshape
     shape to display
    Bnd_Box myBB
     cached bounding box of the shape
    gp_Pnt2d myUVOrigin
     UV origin vector for generating texture coordinates.
    gp_Pnt2d myUVRepeat
     UV repeat vector for generating texture coordinates.
    gp_Pnt2d myUVScale
     UV scale vector for generating texture coordinates.
    double myInitAng
     shape to display
    bool myCompBB
     if TRUE, then bounding box should be recomputed
    const gp_Pnt2dTextureRepeatUV () const
     shape to display
    void SetTextureRepeatUV (const gp_Pnt2d &theRepeatUV)
     Sets the number of occurrences of the texture on each face. The texture itself is parameterized in (0,1) by (0,1). Each face of the shape to be textured is parameterized in UV space (Umin,Umax) by (Vmin,Vmax).
    const gp_Pnt2dTextureOriginUV () const
     Return texture origin UV position; (0, 0) by default.
    void SetTextureOriginUV (const gp_Pnt2d &theOriginUV)
     Use this method to change the origin of the texture. The texel (0,0) will be mapped to the surface (myUVOrigin.X(), myUVOrigin.Y()).
    const gp_Pnt2dTextureScaleUV () const
     Return scale factor for UV coordinates; (1, 1) by default.
    void SetTextureScaleUV (const gp_Pnt2d &theScaleUV)
     Use this method to scale the texture (percent of the face). You can specify a scale factor for both U and V. Example: if you set ScaleU and ScaleV to 0.5 and you enable texture repeat, the texture will appear twice on the face in each direction.
    void DumpJson (Standard_OStream &theOStream, int theDepth=-1) const override
     Dumps the content of me into the stream.
    static void computeHlrPresentation (const occ::handle< Graphic3d_Camera > &theProjector, const occ::handle< Prs3d_Presentation > &thePrs, const TopoDS_Shape &theShape, const occ::handle< Prs3d_Drawer > &theDrawer)
     Compute HLR presentation for specified shape.
    void Compute (const occ::handle< PrsMgr_PresentationManager > &thePrsMgr, const occ::handle< Prs3d_Presentation > &thePrs, const int theMode) override
     Compute normal presentation.
    void computeHLR (const occ::handle< Graphic3d_Camera > &theProjector, const occ::handle< TopLoc_Datum3D > &theTrsf, const occ::handle< Prs3d_Presentation > &thePrs) override
     Compute projected presentation.
    void ComputeSelection (const occ::handle< SelectMgr_Selection > &theSelection, const int theMode) override
     Compute selection.
    bool setColor (const occ::handle< Prs3d_Drawer > &theDrawer, const Quantity_Color &theColor) const
     Create own aspects (if they do not exist) and set color to them.
    bool setWidth (const occ::handle< Prs3d_Drawer > &theDrawer, const double theWidth) const
     Create own aspects (if they do not exist) and set width to them.
    void setTransparency (const occ::handle< Prs3d_Drawer > &theDrawer, const double theValue) const
     shape to display
    void setMaterial (const occ::handle< Prs3d_Drawer > &theDrawer, const Graphic3d_MaterialAspect &theMaterial, const bool theToKeepColor, const bool theToKeepTransp) const
     shape to display
    void replaceWithNewOwnAspects ()
     Replace aspects of already computed groups from drawer link by the new own value.

    Additional Inherited Members

    typedef void base_type
     Returns a type descriptor about this object.
    Protected Member Functions inherited from AIS_InteractiveObject
     AIS_InteractiveObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
     The TypeOfPresention3d means that the interactive object may have a presentation dependent on the view of Display.
    void SetDisplayStatus (PrsMgr_DisplayStatus theStatus)
     Set presentation display status.
    Protected Member Functions inherited from SelectMgr_SelectableObject
     SelectMgr_SelectableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
     Protected empty constructor.
    void setGlobalSelMode (const int theMode)
     Override global selection mode.
    void UpdateClipping () override
     Update clipping planes state.
    virtual void updateSelection (const int theMode)
     Sets update status FULL to selections of the object. Must be used as the only method of UpdateSelection from outer classes to prevent BVH structures from being outdated.
    called instead void Update (bool theToIncludeHidden=false)
     Recomputes all presentations of the object.
    This method is deprecated SetToUpdate ()+UpdatePresentations() should be called instead") 1 void Update(int theMode
     Recomputes the presentation in the given mode.
     PrsMgr_PresentableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
     Destructor.
     ~PrsMgr_PresentableObject () override
     Destructor.
    virtual void Fill (const occ::handle< PrsMgr_PresentationManager > &thePrsMgr, const occ::handle< PrsMgr_Presentation > &thePrs, const int theMode)
     Fills the given 3D view presentation for specified display mode using Compute() method. In addition, configures other properties of presentation (transformation, clipping planes).
    bool UpdatePresentations (bool theToIncludeHidden=false)
     Recomputes invalidated presentations of the object.
    virtual void SetCombinedParentTransform (const occ::handle< TopLoc_Datum3D > &theTrsf)
     Sets myCombinedParentTransform to theTransformation. Thus object receives transformation from parent node and able to derive its own.
    virtual void setLocalTransformation (const occ::handle< TopLoc_Datum3D > &theTransformation)
     Sets local transformation to theTransformation.
    void recomputeComputed () const
     Recompute computed (HLR) presentations (when view is in computed mode).
    void replaceAspects (const NCollection_DataMap< occ::handle< Graphic3d_Aspects >, occ::handle< Graphic3d_Aspects > > &theMap)
     Replace aspects of existing (computed) presentation groups, so that the new aspects can be applied without recomputing presentation. It is NOT recommended approach, because user has to fill such map and then search for each occurrence in computed groups. The recommended approach is computing presentation with necessary customized aspects, and then modify them directly followed by SynchronizeAspects() call.
    static const gp_TrsfgetIdentityTrsf ()
     Return the identity transformation.
    Protected Attributes inherited from AIS_InteractiveObject
    AIS_InteractiveContextmyCTXPtr
     pointer to Interactive Context, where object is currently displayed;
    occ::handle< Standard_TransientmyOwner
     application-specific owner object
    Protected Attributes inherited from SelectMgr_SelectableObject
    NCollection_Sequence< occ::handle< SelectMgr_Selection > > myselections
     list of selections
    occ::handle< Prs3d_PresentationmySelectionPrs
     optional presentation for highlighting selected object
    occ::handle< Prs3d_PresentationmyHilightPrs
     optional presentation for highlighting detected object
    int myGlobalSelMode
     global selection mode
    bool myAutoHilight
     auto-highlighting flag defining
    This method is deprecated bool theToClearOther
     pointer to the parent object
    PrsMgr_PresentableObjectmyParent
     pointer to the parent object
    NCollection_Sequence< occ::handle< PrsMgr_Presentation > > myPresentations
     list of presentations
    occ::handle< Graphic3d_ViewAffinitymyViewAffinity
     view affinity mask
    occ::handle< Graphic3d_SequenceOfHClipPlanemyClipPlanes
     sequence of object-specific clipping planes
    occ::handle< Prs3d_DrawermyDrawer
     main presentation attributes
    occ::handle< Prs3d_DrawermyHilightDrawer
     (optional) custom presentation attributes for highlighting selected object
    occ::handle< Prs3d_DrawermyDynHilightDrawer
     (optional) custom presentation attributes for highlighting detected object
    occ::handle< Graphic3d_TransformPersmyTransformPersistence
     transformation persistence
    occ::handle< TopLoc_Datum3DmyLocalTransformation
     local transformation relative to parent object
    occ::handle< TopLoc_Datum3DmyTransformation
     absolute transformation of this object (combined parents + local transformations)
    occ::handle< TopLoc_Datum3DmyCombinedParentTransform
     transformation of parent object (combined for all parents)
    NCollection_List< occ::handle< PrsMgr_PresentableObject > > myChildren
     list of children
    gp_GTrsf myInvTransformation
     inversion of absolute transformation (combined parents + local transformations)
    PrsMgr_TypeOfPresentation3d myTypeOfPresentation3d
     presentation type
    PrsMgr_DisplayStatus myDisplayStatus
     presentation display status
    Aspect_TypeOfFacingModel myCurrentFacingModel
     current facing model
    float myOwnWidth
     custom width value
    bool hasOwnColor
     own color flag
    bool hasOwnMaterial
     own material flag
    bool myInfiniteState
     infinite flag
    bool myIsMutable
     mutable flag
    bool myHasOwnPresentations
     flag indicating if object should have own presentations
    bool myToPropagateVisualState
     flag indicating if visual state (display/erase/color) should be propagated to all children

    Detailed Description

    A framework to manage presentation and selection of shapes. AIS_Shape is the interactive object which is used the most by applications. There are standard functions available which allow you to prepare selection operations on the constituent elements of shapes - vertices, edges, faces etc - in an open local context. The selection modes specific to "Shape" type objects are referred to as Standard Activation Mode. These modes are only taken into account in open local context and only act on Interactive Objects which have redefined the virtual method AcceptShapeDecomposition so that it returns true. Several advanced functions are also available. These include functions to manage deviation angle and deviation coefficient - both HLR and non-HLR - of an inheriting shape class. These services allow you to select one type of shape interactive object for higher precision drawing. When you do this, the Prs3d_Drawer::IsOwn... functions corresponding to the above deviation angle and coefficient functions return true indicating that there is a local setting available for the specific object.

    This class allows to map textures on shapes using native UV parametric space of underlying surface of each Face (this means that texture will be visually duplicated on all Faces). To generate texture coordinates, appropriate shading attribute should be set before computing presentation in AIS_Shaded display mode:

    aPrs->Attributes()->SetupOwnShadingAspect();
    aPrs->Attributes()->ShadingAspect()->Aspect()->SetTextureMapOn();
    aPrs->Attributes()->ShadingAspect()->Aspect()->SetTextureMap (new Graphic3d_Texture2D
    @ Graphic3d_NOT_2D_ALUMINUM
    Definition Graphic3d_NameOfTexture2D.hxx:37
    AIS_Shape(const TopoDS_Shape &shap)
    Initializes construction of the shape shap from wires, edges and vertices.
    This abstract class for managing 2D textures.
    Definition Graphic3d_Texture2D.hxx:25
    opencascade::handle< T > handle
    Intrusive smart pointer template for Standard_Transient descendants. This is an alias to opencascade:...
    Definition Standard_Handle.hxx:421

    The texture itself is parametrized in (0,1)x(0,1).

    Constructor & Destructor Documentation

    ◆ AIS_Shape()

    AIS_Shape::AIS_Shape ( const TopoDS_Shape & shap)

    Initializes construction of the shape shap from wires, edges and vertices.

    Member Function Documentation

    ◆ AcceptDisplayMode()

    bool AIS_Shape::AcceptDisplayMode ( const int theMode) const
    inlineoverridevirtual

    Return true if specified display mode is supported.

    Reimplemented from PrsMgr_PresentableObject.

    Reimplemented in AIS_TexturedShape.

    ◆ AcceptShapeDecomposition()

    bool AIS_Shape::AcceptShapeDecomposition ( ) const
    inlineoverridevirtual

    Returns true if the Interactive Object accepts shape decomposition.

    Reimplemented from SelectMgr_SelectableObject.

    ◆ BoundingBox()

    virtual const Bnd_Box & AIS_Shape::BoundingBox ( )
    virtual

    Constructs a bounding box with which to reconstruct compound topological shapes for presentation.

    ◆ Color()

    void AIS_Shape::Color ( Quantity_Color & aColor) const
    overridevirtual

    Returns the Color attributes of the shape accordingly to the current facing model;.

    Reimplemented from PrsMgr_PresentableObject.

    ◆ Compute()

    void AIS_Shape::Compute ( const occ::handle< PrsMgr_PresentationManager > & thePrsMgr,
    const occ::handle< Prs3d_Presentation > & thePrs,
    const int theMode )
    overrideprotectedvirtual

    Compute normal presentation.

    Implements PrsMgr_PresentableObject.

    Reimplemented in AIS_TexturedShape, and XCAFPrs_AISObject.

    ◆ computeHLR()

    void AIS_Shape::computeHLR ( const occ::handle< Graphic3d_Camera > & theProjector,
    const occ::handle< TopLoc_Datum3D > & theTrsf,
    const occ::handle< Prs3d_Presentation > & thePrs )
    inlineoverrideprotectedvirtual

    Compute projected presentation.

    Reimplemented from PrsMgr_PresentableObject.

    ◆ computeHlrPresentation()

    void AIS_Shape::computeHlrPresentation ( const occ::handle< Graphic3d_Camera > & theProjector,
    const occ::handle< Prs3d_Presentation > & thePrs,
    const TopoDS_Shape & theShape,
    const occ::handle< Prs3d_Drawer > & theDrawer )
    static

    Compute HLR presentation for specified shape.

    ◆ ComputeSelection()

    void AIS_Shape::ComputeSelection ( const occ::handle< SelectMgr_Selection > & theSelection,
    const int theMode )
    overrideprotectedvirtual

    Compute selection.

    Implements SelectMgr_SelectableObject.

    ◆ DumpJson()

    void AIS_Shape::DumpJson ( Standard_OStream & theOStream,
    int theDepth = -1 ) const
    overridevirtual

    Dumps the content of me into the stream.

    Reimplemented from AIS_InteractiveObject.

    ◆ Material()

    Graphic3d_NameOfMaterial AIS_Shape::Material ( ) const
    overridevirtual

    Returns the NameOfMaterial attributes of the shape accordingly to the current facing model;.

    Reimplemented from PrsMgr_PresentableObject.

    ◆ OwnDeviationAngle()

    bool AIS_Shape::OwnDeviationAngle ( double & anAngle,
    double & aPreviousAngle ) const

    Returns true and the values of the deviation angle anAngle and the previous deviation angle aPreviousAngle. If these values are not already set, false is returned.

    ◆ OwnDeviationCoefficient()

    bool AIS_Shape::OwnDeviationCoefficient ( double & aCoefficient,
    double & aPreviousCoefficient ) const

    Returns true and the values of the deviation coefficient aCoefficient and the previous deviation coefficient aPreviousCoefficient. If these values are not already set, false is returned.

    ◆ replaceWithNewOwnAspects()

    void AIS_Shape::replaceWithNewOwnAspects ( )
    protected

    Replace aspects of already computed groups from drawer link by the new own value.

    ◆ SelectionMode()

    int AIS_Shape::SelectionMode ( const TopAbs_ShapeEnum theShapeType)
    inlinestatic

    Return selection mode for specified shape type.

    ◆ SelectionType()

    TopAbs_ShapeEnum AIS_Shape::SelectionType ( const int theSelMode)
    inlinestatic

    Return shape type for specified selection mode.

    ◆ Set()

    void AIS_Shape::Set ( const TopoDS_Shape & theShape)
    inline

    Alias for ::SetShape().

    ◆ SetAngleAndDeviation()

    void AIS_Shape::SetAngleAndDeviation ( const double anAngle)

    this compute a new angle and Deviation from the value anAngle and set the values stored in myDrawer with these that become local to the shape

    ◆ SetColor()

    void AIS_Shape::SetColor ( const Quantity_Color & theColor)
    overridevirtual

    Sets the color aColor in the reconstructed compound shape. Acts via the Drawer methods below on the appearance of:

    • free boundaries: Prs3d_Drawer_FreeBoundaryAspect,
    • isos: Prs3d_Drawer_UIsoAspect, Prs3dDrawer_VIsoAspect,
    • shared boundaries: Prs3d_Drawer_UnFreeBoundaryAspect,
    • shading: Prs3d_Drawer_ShadingAspect,
    • visible line color in hidden line mode: Prs3d_Drawer_SeenLineAspect
    • hidden line color in hidden line mode: Prs3d_Drawer_HiddenLineAspect.

    Reimplemented from PrsMgr_PresentableObject.

    Reimplemented in AIS_TexturedShape.

    ◆ setColor()

    bool AIS_Shape::setColor ( const occ::handle< Prs3d_Drawer > & theDrawer,
    const Quantity_Color & theColor ) const
    protected

    Create own aspects (if they do not exist) and set color to them.

    Returns
    TRUE if new aspects have been created

    ◆ SetMaterial()

    void AIS_Shape::SetMaterial ( const Graphic3d_MaterialAspect & aName)
    overridevirtual

    Allows you to provide settings for the material aName in the reconstructed compound shape.

    Reimplemented from PrsMgr_PresentableObject.

    Reimplemented in AIS_TexturedShape, and XCAFPrs_AISObject.

    ◆ setMaterial()

    void AIS_Shape::setMaterial ( const occ::handle< Prs3d_Drawer > & theDrawer,
    const Graphic3d_MaterialAspect & theMaterial,
    const bool theToKeepColor,
    const bool theToKeepTransp ) const
    protected

    shape to display

    ◆ SetOwnDeviationAngle() [1/2]

    bool AIS_Shape::SetOwnDeviationAngle ( )

    Sets a local value for deviation angle for this specific shape.

    ◆ SetOwnDeviationAngle() [2/2]

    void AIS_Shape::SetOwnDeviationAngle ( const double anAngle)

    sets myOwnDeviationAngle field in Prs3d_Drawer & recomputes presentation

    ◆ SetOwnDeviationCoefficient() [1/2]

    bool AIS_Shape::SetOwnDeviationCoefficient ( )

    Sets a local value for deviation coefficient for this specific shape.

    ◆ SetOwnDeviationCoefficient() [2/2]

    void AIS_Shape::SetOwnDeviationCoefficient ( const double aCoefficient)

    Sets a local value for deviation coefficient for this specific shape.

    ◆ SetShape()

    void AIS_Shape::SetShape ( const TopoDS_Shape & theShape)
    inline

    Constructs an instance of the shape object theShape.

    ◆ SetTextureOriginUV()

    void AIS_Shape::SetTextureOriginUV ( const gp_Pnt2d & theOriginUV)
    inline

    Use this method to change the origin of the texture. The texel (0,0) will be mapped to the surface (myUVOrigin.X(), myUVOrigin.Y()).

    ◆ SetTextureRepeatUV()

    void AIS_Shape::SetTextureRepeatUV ( const gp_Pnt2d & theRepeatUV)
    inline

    Sets the number of occurrences of the texture on each face. The texture itself is parameterized in (0,1) by (0,1). Each face of the shape to be textured is parameterized in UV space (Umin,Umax) by (Vmin,Vmax).

    ◆ SetTextureScaleUV()

    void AIS_Shape::SetTextureScaleUV ( const gp_Pnt2d & theScaleUV)
    inline

    Use this method to scale the texture (percent of the face). You can specify a scale factor for both U and V. Example: if you set ScaleU and ScaleV to 0.5 and you enable texture repeat, the texture will appear twice on the face in each direction.

    ◆ SetTransparency()

    void AIS_Shape::SetTransparency ( const double aValue = 0.6)
    overridevirtual

    Sets the value aValue for transparency in the reconstructed compound shape.

    Reimplemented from PrsMgr_PresentableObject.

    ◆ setTransparency()

    void AIS_Shape::setTransparency ( const occ::handle< Prs3d_Drawer > & theDrawer,
    const double theValue ) const
    protected

    shape to display

    ◆ SetTypeOfHLR()

    void AIS_Shape::SetTypeOfHLR ( const Prs3d_TypeOfHLR theTypeOfHLR)
    inline

    Sets the type of HLR algorithm used by the shape.

    ◆ SetWidth()

    void AIS_Shape::SetWidth ( const double aValue)
    overridevirtual

    Sets the value aValue for line width in the reconstructed compound shape. Changes line aspects for lines presentation.

    Reimplemented from PrsMgr_PresentableObject.

    ◆ setWidth()

    bool AIS_Shape::setWidth ( const occ::handle< Prs3d_Drawer > & theDrawer,
    const double theWidth ) const
    protected

    Create own aspects (if they do not exist) and set width to them.

    Returns
    TRUE if new aspects have been created

    ◆ Shape()

    const TopoDS_Shape & AIS_Shape::Shape ( ) const
    inline

    Returns this shape object.

    ◆ Signature()

    int AIS_Shape::Signature ( ) const
    inlineoverridevirtual

    Returns index 0. This value refers to SHAPE from TopAbs_ShapeEnum.

    Reimplemented from AIS_InteractiveObject.

    ◆ TextureOriginUV()

    const gp_Pnt2d & AIS_Shape::TextureOriginUV ( ) const
    inline

    Return texture origin UV position; (0, 0) by default.

    ◆ TextureRepeatUV()

    const gp_Pnt2d & AIS_Shape::TextureRepeatUV ( ) const
    inline

    shape to display

    ◆ TextureScaleUV()

    const gp_Pnt2d & AIS_Shape::TextureScaleUV ( ) const
    inline

    Return scale factor for UV coordinates; (1, 1) by default.

    ◆ Transparency()

    double AIS_Shape::Transparency ( ) const
    overridevirtual

    Returns the transparency attributes of the shape accordingly to the current facing model;.

    Reimplemented from PrsMgr_PresentableObject.

    ◆ Type()

    AIS_KindOfInteractive AIS_Shape::Type ( ) const
    inlineoverridevirtual

    Returns Object as the type of Interactive Object.

    Reimplemented from AIS_InteractiveObject.

    ◆ TypeOfHLR()

    Prs3d_TypeOfHLR AIS_Shape::TypeOfHLR ( ) const
    inline

    Gets the type of HLR algorithm.

    ◆ UnsetColor()

    void AIS_Shape::UnsetColor ( )
    overridevirtual

    Removes settings for color in the reconstructed compound shape.

    Reimplemented from PrsMgr_PresentableObject.

    Reimplemented in AIS_TexturedShape.

    ◆ UnsetMaterial()

    void AIS_Shape::UnsetMaterial ( )
    overridevirtual

    Removes settings for material in the reconstructed compound shape.

    Reimplemented from PrsMgr_PresentableObject.

    Reimplemented in AIS_TexturedShape.

    ◆ UnsetTransparency()

    void AIS_Shape::UnsetTransparency ( )
    overridevirtual

    Removes the setting for transparency in the reconstructed compound shape.

    Reimplemented from PrsMgr_PresentableObject.

    ◆ UnsetWidth()

    void AIS_Shape::UnsetWidth ( )
    overridevirtual

    Removes the setting for line width in the reconstructed compound shape.

    Reimplemented from PrsMgr_PresentableObject.

    ◆ UserAngle()

    double AIS_Shape::UserAngle ( ) const

    gives back the angle initial value put by the User.

    Field Documentation

    ◆ myBB

    Bnd_Box AIS_Shape::myBB
    protected

    cached bounding box of the shape

    ◆ myCompBB

    bool AIS_Shape::myCompBB
    protected

    if TRUE, then bounding box should be recomputed

    ◆ myInitAng

    double AIS_Shape::myInitAng
    protected

    shape to display

    ◆ myshape

    TopoDS_Shape AIS_Shape::myshape
    protected

    shape to display

    ◆ myUVOrigin

    gp_Pnt2d AIS_Shape::myUVOrigin
    protected

    UV origin vector for generating texture coordinates.

    ◆ myUVRepeat

    gp_Pnt2d AIS_Shape::myUVRepeat
    protected

    UV repeat vector for generating texture coordinates.

    ◆ myUVScale

    gp_Pnt2d AIS_Shape::myUVScale
    protected

    UV scale vector for generating texture coordinates.


    The documentation for this class was generated from the following file: