Open CASCADE Technology  6.9.0
Public Member Functions | Protected Member Functions | Protected Attributes

AIS_InteractiveObject Class Reference

Defines a class of objects with display and selection services. Entities which are visualized and selected are Interactive Objects. You can make use of classes of standard Interactive Objects for which all necessary methods have already been programmed, or you can implement your own classes of Interactive Objects. Specific attributes of entities such as arrow aspect for dimensions must be loaded in a Drawer. This Drawer is then applied to the Interactive Object in view. There are four types of Interactive Object in AIS: the construction element or Datum, the Relation, which includes both dimensions and constraints, the Object, and finally, when the object is of an unknown type, the None type. Inside these categories, a signature, or index, provides the possibility of additional characterization. By default, the Interactive Object has a None type and a signature of 0. If you want to give a particular type and signature to your interactive object, you must redefine the methods, Signature and Type. Warning In the case of attribute methods, methods for standard attributes are virtual. They must be redefined by the inheriting classes. Setcolor for a point and Setcolor for a plane, for example, do not affect the same attributes in the Drawer. More...

#include <AIS_InteractiveObject.hxx>

Inheritance diagram for AIS_InteractiveObject:
Inheritance graph
[legend]

Public Member Functions

virtual AIS_KindOfInteractive Type () const
 Returns the kind of Interactive Object: More...
 
virtual Standard_Integer Signature () const
 Specifies additional characteristics of Interactive Objects. A signature is, in fact, an index with integer values assigned different properties. This method is frequently used in conjuction with Type to give a particular type and signature to an Interactive Object. By default, the Interactive Object has a None type and a signature of 0. Among the datums, this signature is attributed to the shape The remaining datums have the following default signatures: More...
 
virtual Standard_Boolean AcceptShapeDecomposition () const
 Informs the graphic context that the interactive Object may be decomposed into sub-shapes for dynamic selection. The most used Interactive Object is AIS_Shape. Activation methods for standard selection modes are proposed in the Interactive Context. These include selection by vertex or by edges. For datums with the same behavior as AIS_Shape, such as vetices and edges, we must redefine the virtual method so that AcceptShapeDecomposition returns false. Rule for selection : Mode 0 : Selection of the interactive Object itself Mode 1 : Selection of vertices Mode 2 : Selection Of Edges Mode 3 : Selection Of Wires Mode 4 : Selection Of Faces ... More...
 
void SetCurrentFacingModel (const Aspect_TypeOfFacingModel aModel=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. More...
 
Aspect_TypeOfFacingModel CurrentFacingModel () const
 Returns the current facing model which is in effect. More...
 
virtual void SetColor (const Quantity_Color &aColor)
 
virtual void SetColor (const Quantity_NameOfColor aColor)
 only the interactive obj knowns which Drawer attribute is affected by the color (ex: for a wire, it's the wireaspect field of the drawer, but for a vertex, only the point aspect field is affected by the color) WARNING : Do not forget to set the corresponding fields here (hasOwnColor and myOwnColor) More...
 
virtual void UnsetColor ()
 Removes color settings. Only the Interactive Object knows which Drawer attribute is affected by the color setting. For a wire, for example, wire aspect is the attribute affected. For a vertex, however, only point aspect is affected by the color setting. More...
 
virtual void SetWidth (const Standard_Real aValue)
 Allows you to provide the setting aValue for width. Only the Interactive Object knows which Drawer attribute is affected by the width setting. More...
 
virtual void UnsetWidth ()
 
virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer aMode) const
 Returns true if the class of objects accepts the display mode aMode. The interactive context can have a default mode of representation for the set of Interactive Objects. This mode may not be accepted by a given class of objects. Consequently, this virtual method allowing us to get information about the class in question must be implemented. More...
 
virtual Standard_Integer DefaultDisplayMode () const
 Returns the default display mode. This method is to be implemented when the main mode is not mode 0. More...
 
void Redisplay (const Standard_Boolean AllModes=Standard_False)
 Updates the active presentation; if <AllModes> = Standard_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. More...
 
void SetInfiniteState (const Standard_Boolean aFlag=Standard_True)
 Sets the infinite state flag aFlage. if <aFlag> = True , the interactiveObject is considered as infinite, i.e. its graphic presentations are not taken in account for View FitAll... More...
 
Standard_Boolean IsInfinite () const
 Returns true if the interactive object is infinite. In this case, its graphic presentations are not taken into account in the fit-all view. More...
 
Standard_Boolean HasInteractiveContext () const
 Indicates whether the Interactive Object has a pointer to an interactive context. More...
 
Handle< AIS_InteractiveContextGetContext () const
 Returns the context pointer to the interactive context. More...
 
virtual void SetContext (const Handle< AIS_InteractiveContext > &aCtx)
 Sets the interactive context aCtx and provides a link to the default drawing tool or "Drawer" if there is none. More...
 
Standard_Boolean 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. More...
 
const 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: More...
 
void SetOwner (const Handle< Standard_Transient > &ApplicativeEntity)
 Allows you to attribute the owner ApplicativeEntity 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. More...
 
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. More...
 
Standard_Boolean HasUsers () const
 
const TColStd_ListOfTransientUsers () const
 
void AddUser (const Handle< Standard_Transient > &aUser)
 
void ClearUsers ()
 
Standard_Boolean HasDisplayMode () const
 Returns true if the Interactive Object has a display mode setting. Otherwise, it is displayed in Neutral Point. More...
 
void SetDisplayMode (const Standard_Integer aMode)
 Sets the display mode aMode for the interactive object. An object can have its own temporary display mode, which is different from that proposed by the interactive context. The range of possibilities currently proposed is the following: More...
 
void UnsetDisplayMode ()
 Removes display mode settings from the interactive object. More...
 
Standard_Integer DisplayMode () const
 Returns the display mode setting of the Interactive Object. The range of possibilities is the following: More...
 
Standard_Boolean HasSelectionMode () const
 Allows you to change the selection mode of an Interactive Object. The default selection mode setting is 0. For shapes, for example, the selection modes are as follows: More...
 
Standard_Integer SelectionMode () const
 Returns the selection mode of the interactive object. More...
 
void SetSelectionMode (const Standard_Integer aMode)
 You can change the default selection mode index aMode of an Interactive Object. This is only of interest if you decide that mode 0 adopted by convention will not do. More...
 
void UnsetSelectionMode ()
 You can change the default selection mode index of an Interactive Object. This is only of interest if you decide that the 0 mode adopted by convention will not do. More...
 
Standard_Integer SelectionPriority () const
 Returns the selection priority setting. -1 indicates that there is none. You can modify the selection priority of an owner to make one entity more selectionable than another one. The default selection priority for an owner is 5, for example. To increase selection priority, choose a setting between 5 and 10. An entity with priority 7 will take priority over one with a setting of 6 if both objects are selected at the same time. You could give vertices priority 8, edges priority 7, faces priority 6, and shapes priority 5. If a vertex, an edge and a face are simultaneously detected during selection, only the vertex will then be highlighted. For trihedra, for example, the default priorities are the following four: More...
 
void SetSelectionPriority (const Standard_Integer aPriority)
 Allows you to provide a setting aPriority for selection priority. You can modify selection priority of an owner to make one entity more selectionable than another one. The default selection priority for an owner is 5, for example. To increase selection priority, choose a setting between 5 and 10. An entity with priority 7 will take priority over one with a setting of 6. More...
 
void UnsetSelectionPriority ()
 Removes the setting for selection priority. SelectionPriority then returns -1. More...
 
Standard_Boolean HasSelectionPriority () const
 Returns true if there is a setting for selection priority. You can modify selection priority of an owner to make one entity more selectionable than another one. The default selection priority for an owner is 5, for example. To increase selection priority, choose a setting between 5 and 10. An entity with priority 7 will take priority over one with a setting of 6. More...
 
Standard_Boolean HasHilightMode () const
 Returns true if the Interactive Object is in highlight mode. More...
 
Standard_Integer HilightMode () const
 Returns the setting for highlight mode. At dynamic detection, the presentation echoed by the Interactive Context, is by default the presentation already on the screen. You can specify a Highlight presentation mode which is valid no matter what the active representation of the object. It makes no difference whether this choice is temporary or definitive. To do this, we use the following functions: More...
 
void SetHilightMode (const Standard_Integer anIndex)
 Sets the highlight mode anIndex for the interactive object. If, for example, you want to systematically highlight the wireframe presentation of a shape - whether visualized in wireframe presentation or with shading - you set the highlight mode to 0. More...
 
void UnsetHilightMode ()
 Allows the user to take a given Prs for hilight ex : for a shape which would be displayed in shading mode the hilight Prs is the wireframe mode. if No specific hilight mode is defined, the displayed Prs will be the hilighted one. More...
 
Standard_Boolean HasColor () const
 Returns true if the Interactive Object has color. More...
 
virtual Quantity_NameOfColor Color () const
 Returns the color setting of the Interactive Object. More...
 
virtual void Color (Quantity_Color &aColor) const
 
Standard_Boolean HasWidth () const
 Returns true if the Interactive Object has width. More...
 
Standard_Real Width () const
 Returns the width setting of the Interactive Object. More...
 
Standard_Boolean HasMaterial () const
 Returns true if the Interactive Object has a setting for material. More...
 
virtual Graphic3d_NameOfMaterial Material () const
 Returns the current material setting. This will be on of the following materials: More...
 
virtual void SetMaterial (const Graphic3d_NameOfMaterial aName)
 Sets the name aName for material defining this display attribute for the interactive object. Material aspect determines shading aspect, color and transparency of visible entities. More...
 
virtual void SetMaterial (const Graphic3d_MaterialAspect &aName)
 Sets the material aMat defining this display attribute for the interactive object. Material aspect determines shading aspect, color and transparency of visible entities. More...
 
virtual void UnsetMaterial ()
 Removes the setting for material. More...
 
virtual void SetTransparency (const Standard_Real aValue=0.6)
 Attributes a setting aValue for transparency. The transparency value should be between 0.0 and 1.0. At 0.0 an object will be totally opaque, and at 1.0, fully transparent. Warning At a value of 1.0, there may be nothing visible. More...
 
Standard_Boolean IsTransparent () const
 Returns true if there is a transparency setting. More...
 
virtual Standard_Real Transparency () const
 Returns the transparency setting. This will be between 0.0 and 1.0. At 0.0 an object will be totally opaque, and at 1.0, fully transparent. More...
 
virtual void UnsetTransparency ()
 Removes the transparency setting. The object is opaque by default. More...
 
virtual void UnsetAttributes ()
 Clears settings provided by the drawing tool aDrawer. More...
 
void State (const Standard_Integer theState)
 
Standard_Integer State () const
 
Standard_Boolean HasPresentation () const
 Returns TRUE when this object has a presentation in the current DisplayMode() More...
 
Handle< Prs3d_PresentationPresentation () const
 Returns the current presentation of this object according to the current DisplayMode() More...
 
void SetAspect (const Handle< Prs3d_BasicAspect > &anAspect, const Standard_Boolean globalChange=Standard_True)
 Sets the graphic basic aspect to the current presentation. When <globalChange> is TRUE , the full object presentation is changed. When <globalChange> is FALSE , only the current group of the object presentation is changed. More...
 
virtual void SetPolygonOffsets (const Standard_Integer aMode, const Standard_ShortReal aFactor=1.0, const Standard_ShortReal aUnits=0.0)
 Sets up polygon offsets for this object. It modifies all existing presentations of <anObj> (if any), so it is reasonable to call this method after <anObj> has been displayed. Otherwise, Compute() method should pass Graphic3d_AspectFillArea3d aspect from <myDrawer> to Graphic3d_Group to make polygon offsets work. More...
 
virtual Standard_Boolean HasPolygonOffsets () const
 Returns Standard_True if <myDrawer> has non-null shading aspect. More...
 
virtual void PolygonOffsets (Standard_Integer &aMode, Standard_ShortReal &aFactor, Standard_ShortReal &aUnits) const
 Retrieves current polygon offsets settings from <myDrawer>. More...
 
virtual void BoundingBox (Bnd_Box &theBndBox)
 Returns bounding box of object correspondingly to its current display mode. More...
 
- Public Member Functions inherited from SelectMgr_SelectableObject
virtual void ComputeSelection (const Handle< SelectMgr_Selection > &aSelection, const Standard_Integer aMode)=0
 Recovers and calculates any sensitive primitive, aSelection, available in Shape mode, specified by aMode. As a rule, these are sensitive faces. This method is defined as virtual. This enables you to implement it in the creation of a new class of AIS Interactive Object. You need to do this and in so doing, redefine this method, if you create a class which enriches the list of signatures and types. More...
 
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. More...
 
void RecomputePrimitives (const Standard_Integer 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. More...
 
void AddSelection (const Handle< SelectMgr_Selection > &aSelection, const Standard_Integer aMode)
 Adds the selection aSelection with the selection mode index aMode to this framework. More...
 
void ClearSelections (const Standard_Boolean update=Standard_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. More...
 
const Handle
< SelectMgr_Selection > & 
Selection (const Standard_Integer aMode) const
 Returns the selection Selection having the selection mode aMode. More...
 
Standard_Boolean HasSelection (const Standard_Integer aMode) const
 Returns true if a selection corresponding to the selection mode aMode is present in this framework. More...
 
void Init ()
 Begins the iteration scanning for sensitive primitives. More...
 
Standard_Boolean More () const
 Continues the iteration scanning for sensitive primitives. More...
 
void Next ()
 Continues the iteration scanning for sensitive primitives. More...
 
const Handle
< SelectMgr_Selection > & 
CurrentSelection () const
 Returns the current selection in this framework. More...
 
void ResetTransformation ()
 resets local transformation to identity. More...
 
virtual void UpdateTransformation ()
 Recomputes the location of the selection aSelection. More...
 
virtual void UpdateTransformations (const Handle< SelectMgr_Selection > &aSelection)
 Updates locations in all sensitive entities from <aSelection> and in corresponding entity owners. More...
 
virtual void HilightSelected (const Handle< PrsMgr_PresentationManager3d > &PM, const SelectMgr_SequenceOfOwner &Seq)
 Method which draws selected owners ( for fast presentation draw ) More...
 
virtual void ClearSelected ()
 Method which clear all selected owners belonging to this selectable object ( for fast presentation draw ) More...
 
virtual void HilightOwnerWithColor (const Handle< PrsMgr_PresentationManager3d > &thePM, const Quantity_NameOfColor theColor, const Handle< SelectMgr_EntityOwner > &theOwner)
 Method which hilight an owner belonging to this selectable object ( for fast presentation draw ) More...
 
virtual Standard_Boolean 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. More...
 
virtual void SetAutoHilight (const Standard_Boolean newAutoHilight)
 Set AutoHilight property to true or false Sets up Transform Persistence Mode for this object. More...
 
Handle< Prs3d_PresentationGetHilightPresentation (const Handle< PrsMgr_PresentationManager3d > &TheMgr)
 
Handle< Prs3d_PresentationGetSelectPresentation (const Handle< PrsMgr_PresentationManager3d > &TheMgr)
 
virtual void SetZLayer (const Graphic3d_ZLayerId theLayerId)
 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. More...
 
void UpdateSelection (const Standard_Integer 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. More...
 
virtual void SetAttributes (const Handle< Prs3d_Drawer > &theDrawer)
 Initializes the drawing tool theDrawer. More...
 
const Handle< Prs3d_Drawer > & Attributes () const
 Returns the attributes settings. More...
 
virtual void SetHilightAttributes (const Handle< Prs3d_Drawer > &theDrawer)
 Initializes the hilight drawing tool theDrawer. More...
 
const Handle< Prs3d_Drawer > & HilightAttributes () const
 Returns the hilight attributes settings. More...
 
virtual void UnsetHilightAttributes ()
 Clears settings provided by the hilight drawing tool theDrawer. More...
 
void SetAssemblyOwner (const Handle< SelectMgr_EntityOwner > &theOwner, const Standard_Integer theMode=-1)
 Sets common entity owner for assembly sensitive object entities. More...
 
const Handle
< SelectMgr_EntityOwner > & 
GetAssemblyOwner () const
 Returns common entity owner if the object is an assembly. More...
 
- Public Member Functions inherited from PrsMgr_PresentableObject
PrsMgr_PresentationsPresentations ()
 
PrsMgr_TypeOfPresentation3d TypeOfPresentation3d () const
 Returns information on whether the object accepts display in HLR mode or not. More...
 
virtual void SetTransformPersistence (const Graphic3d_TransModeFlags &aFlag, const gp_Pnt &APoint)
 Sets up Transform Persistence Mode for this object. This function used to lock in object position, rotation and / or zooming relative to camera position. Object will be drawn in the origin setted by APoint parameter (except Graphic3d_TMF_TriedronPers flag. More...
 
void SetTransformPersistence (const Graphic3d_TransModeFlags &aFlag)
 Calls previous method with point (0,0,0) More...
 
Graphic3d_TransModeFlags GetTransformPersistenceMode () const
 Gets Transform Persistence Mode for this object. More...
 
gp_Pnt GetTransformPersistencePoint () const
 Gets point of transform persistence for this object. More...
 
void SetTypeOfPresentation (const PrsMgr_TypeOfPresentation3d aType)
 
void SetToUpdate (const Standard_Integer aMode)
 flags the Prs of mode <AMode> to be Updated. the Update will be done when needed. More...
 
void SetToUpdate ()
 flags all the Presentations to be Updated. More...
 
void ToBeUpdated (TColStd_ListOfInteger &ListOfMode) const
 gives the list of modes which are flagged "to be updated". More...
 
virtual void SetLocalTransformation (const gp_Trsf &theTransformation)
 Sets local transformation to theTransformation. More...
 
Standard_Boolean HasTransformation () const
 Returns true if object has a transformation that is different from the identity. More...
 
const gp_TrsfLocalTransformation () const
 
const gp_TrsfTransformation () const
 
const gp_TrsfInversedTransformation () const
 
virtual void UpdateTransformation (const Handle< Prs3d_Presentation > &P)
 
Graphic3d_ZLayerId ZLayer () const
 Get ID of Z layer. More...
 
virtual void AddClipPlane (const 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 substracted from limit to predict the maximum possible number of object clipping planes. More...
 
virtual void RemoveClipPlane (const Handle< Graphic3d_ClipPlane > &thePlane)
 Removes previously added clip plane. More...
 
virtual void SetClipPlanes (const 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 substracted from limit to predict the maximum possible number of object clipping planes. More...
 
const
Graphic3d_SequenceOfHClipPlane
GetClipPlanes () const
 Get clip planes. More...
 
virtual void SetMutable (const Standard_Boolean 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. More...
 
const Standard_Boolean 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). More...
 
virtual void AddChild (const Handle< PrsMgr_PresentableObject > &theObject)
 Makes theObject child of current object in scene hierarchy. More...
 
virtual void RemoveChild (const Handle< PrsMgr_PresentableObject > &theObject)
 Removes theObject from children of current object in scene hierarchy. More...
 
const
PrsMgr_ListOfPresentableObjects
Children () const
 Returns children of the current object. More...
 
const Standard_Boolean HasOwnPresentations () const
 Returns true if object should have own presentations. More...
 
const
PrsMgr_PresentableObjectPointer 
Parent () const
 Returns parent of current object in scene hierarchy. More...
 
- Public Member Functions inherited from MMgt_TShared
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual const
Handle_Standard_Type & 
DynamicType () const
 Returns a type information object about this object. More...
 
Standard_Boolean IsInstance (const Handle_Standard_Type &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
Standard_Boolean IsKind (const 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. More...
 
Standard_Boolean IsKind (const Standard_CString 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. More...
 
virtual Handle_Standard_Transient This () const
 Returns a Handle which references this object. Must never be called to objects created in stack. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 

Protected Member Functions

 AIS_InteractiveObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 The TypeOfPresention3d means that the interactive object may have a presentation dependant of the view of Display. More...
 
- Protected Member Functions inherited from SelectMgr_SelectableObject
 SelectMgr_SelectableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 
- Protected Member Functions inherited from PrsMgr_PresentableObject
 PrsMgr_PresentableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 
virtual ~PrsMgr_PresentableObject ()
 
virtual void Compute (const Handle< PrsMgr_PresentationManager3d > &aPresentationManager, const Handle< Prs3d_Presentation > &aPresentation, const Standard_Integer aMode=0)
 Calculates the 3D view aPresentation and its updates. The latter are managed by aPresentationManager. aPresentableObject has the display mode aMode; this has the default value of 0, that is, the wireframe display mode. More...
 
virtual void Compute (const Handle< Prs3d_Projector > &aProjector, const Handle< Prs3d_Presentation > &aPresentation)
 Calculates the 3D view aPresentation and its updates. The latter are managed by aPresentationManager. Each of the views in the viewer and every modification such as rotation, for example, entails recalculation. It must be redefined to implement hidden line removal for the object. The user never calls this method himself. This is done via the InteractiveContext object and is dependent on the point of view from which the object is displayed. More...
 
virtual void Compute (const Handle< Prs3d_Projector > &aProjector, const Handle< Geom_Transformation > &aTrsf, const Handle< Prs3d_Presentation > &aPresentation)
 Calculates the 3D view aPresentation and its updates. The latter are managed by aPresentationManager. A point of view is provided by the projector aProjector, and the geometric transformation which has transformed associated presentable objects is specified by aTrsf. This function is to be used in case where a hidden line removal display cannot be calculated automatically. This occurs when associated presentable objects have been transformed geometrically, but not translated. Warning The transformation aTrsf must be applied to the object before computation. More...
 
void Update (const Standard_Boolean AllModes=Standard_False)
 recomputes all presentations of the object. More...
 
void Update (const Standard_Integer aMode, const Standard_Boolean ClearOther)
 Recomputes the presentation in the given mode. If ClearOther is true, other presentation will be cleared. More...
 
virtual void Fill (const Handle< PrsMgr_PresentationManager > &aPresentationManager, const Handle< PrsMgr_Presentation > &aPresentation, const Standard_Integer aMode=0)
 High-level interface for controlling polygon offsets. More...
 
virtual void SetCombinedParentTransform (const gp_Trsf &theTransformation)
 Sets myCombinedParentTransform to theTransformation. Thus object receives transformation from parent node and able to derive its own. More...
 
virtual void UpdateClipping ()
 General virtual method for internal update of presentation state when some modifications on list of clip planes occurs. Base implementation propagate clip planes to every presentation. More...
 

Protected Attributes

Standard_Real myTransparency
 
Quantity_Color myOwnColor
 
Graphic3d_NameOfMaterial myOwnMaterial
 
Standard_Integer myHilightMode
 
Standard_Real myOwnWidth
 
Standard_Boolean myInfiniteState
 
Standard_Boolean hasOwnColor
 
Standard_Boolean hasOwnMaterial
 
Aspect_TypeOfFacingModel myCurrentFacingModel
 
Standard_Boolean myRecomputeEveryPrs
 
TColStd_ListOfInteger myToRecomputeModes
 
- Protected Attributes inherited from SelectMgr_SelectableObject
SelectMgr_SequenceOfSelection myselections
 
Handle< Prs3d_DrawermyDrawer
 
Handle< Prs3d_DrawermyHilightDrawer
 
Handle< SelectMgr_EntityOwnermyAssemblyOwner
 
- Protected Attributes inherited from PrsMgr_PresentableObject
PrsMgr_Presentations myPresentations
 
PrsMgr_TypeOfPresentation3d myTypeOfPresentation3d
 
Graphic3d_SequenceOfHClipPlane myClipPlanes
 
Standard_Boolean myIsMutable
 
Graphic3d_ZLayerId myZLayer
 
Standard_Boolean myHasOwnPresentations
 

Additional Inherited Members

- Static Public Member Functions inherited from SelectMgr_SelectableObject
static void InitDefaultHilightAttributes (const Handle< Prs3d_Drawer > &theDrawer)
 Initializes theDrawer by default hilight settings. More...
 

Detailed Description

Defines a class of objects with display and selection services. Entities which are visualized and selected are Interactive Objects. You can make use of classes of standard Interactive Objects for which all necessary methods have already been programmed, or you can implement your own classes of Interactive Objects. Specific attributes of entities such as arrow aspect for dimensions must be loaded in a Drawer. This Drawer is then applied to the Interactive Object in view. There are four types of Interactive Object in AIS: the construction element or Datum, the Relation, which includes both dimensions and constraints, the Object, and finally, when the object is of an unknown type, the None type. Inside these categories, a signature, or index, provides the possibility of additional characterization. By default, the Interactive Object has a None type and a signature of 0. If you want to give a particular type and signature to your interactive object, you must redefine the methods, Signature and Type. Warning In the case of attribute methods, methods for standard attributes are virtual. They must be redefined by the inheriting classes. Setcolor for a point and Setcolor for a plane, for example, do not affect the same attributes in the Drawer.

Constructor & Destructor Documentation

AIS_InteractiveObject::AIS_InteractiveObject ( const PrsMgr_TypeOfPresentation3d  aTypeOfPresentation3d = PrsMgr_TOP_AllView)
protected

The TypeOfPresention3d means that the interactive object may have a presentation dependant of the view of Display.

Member Function Documentation

virtual Standard_Boolean AIS_InteractiveObject::AcceptDisplayMode ( const Standard_Integer  aMode) const
virtual

Returns true if the class of objects accepts the display mode aMode. The interactive context can have a default mode of representation for the set of Interactive Objects. This mode may not be accepted by a given class of objects. Consequently, this virtual method allowing us to get information about the class in question must be implemented.

Reimplemented in AIS_Dimension, AIS_Relation, AIS_Plane, AIS_Trihedron, AIS_Axis, AIS_PlaneTrihedron, and AIS_Point.

virtual Standard_Boolean AIS_InteractiveObject::AcceptShapeDecomposition ( ) const
virtual

Informs the graphic context that the interactive Object may be decomposed into sub-shapes for dynamic selection. The most used Interactive Object is AIS_Shape. Activation methods for standard selection modes are proposed in the Interactive Context. These include selection by vertex or by edges. For datums with the same behavior as AIS_Shape, such as vetices and edges, we must redefine the virtual method so that AcceptShapeDecomposition returns false. Rule for selection : Mode 0 : Selection of the interactive Object itself Mode 1 : Selection of vertices Mode 2 : Selection Of Edges Mode 3 : Selection Of Wires Mode 4 : Selection Of Faces ...

Reimplemented in AIS_ConnectedInteractive, AIS_MultipleConnectedInteractive, and AIS_Shape.

void AIS_InteractiveObject::AddUser ( const Handle< Standard_Transient > &  aUser)
virtual void AIS_InteractiveObject::BoundingBox ( Bnd_Box theBndBox)
virtual

Returns bounding box of object correspondingly to its current display mode.

Implements SelectMgr_SelectableObject.

void AIS_InteractiveObject::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.

void AIS_InteractiveObject::ClearUsers ( )
virtual Quantity_NameOfColor AIS_InteractiveObject::Color ( ) const
virtual

Returns the color setting of the Interactive Object.

Reimplemented in AIS_Shape.

virtual void AIS_InteractiveObject::Color ( Quantity_Color aColor) const
virtual

Reimplemented in AIS_Shape.

Aspect_TypeOfFacingModel AIS_InteractiveObject::CurrentFacingModel ( ) const

Returns the current facing model which is in effect.

virtual Standard_Integer AIS_InteractiveObject::DefaultDisplayMode ( ) const
virtual

Returns the default display mode. This method is to be implemented when the main mode is not mode 0.

Standard_Integer AIS_InteractiveObject::DisplayMode ( ) const

Returns the display mode setting of the Interactive Object. The range of possibilities is the following:

  • AIS_WireFrame
  • AIS_Shaded This range can, however, be extended through the creation of new display modes.
Handle< AIS_InteractiveContext > AIS_InteractiveObject::GetContext ( ) const

Returns the context pointer to the interactive context.

const Handle< Standard_Transient >& AIS_InteractiveObject::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:

  • Direct owners, decomposition shapes such as edges, wires, and faces.
  • Users, presentable objects connecting to sensitive primitives, or a shape which has been decomposed.
Standard_Boolean AIS_InteractiveObject::HasColor ( ) const

Returns true if the Interactive Object has color.

Standard_Boolean AIS_InteractiveObject::HasDisplayMode ( ) const

Returns true if the Interactive Object has a display mode setting. Otherwise, it is displayed in Neutral Point.

Standard_Boolean AIS_InteractiveObject::HasHilightMode ( ) const

Returns true if the Interactive Object is in highlight mode.

Standard_Boolean AIS_InteractiveObject::HasInteractiveContext ( ) const

Indicates whether the Interactive Object has a pointer to an interactive context.

Standard_Boolean AIS_InteractiveObject::HasMaterial ( ) const

Returns true if the Interactive Object has a setting for material.

Standard_Boolean AIS_InteractiveObject::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.

virtual Standard_Boolean AIS_InteractiveObject::HasPolygonOffsets ( ) const
virtual

Returns Standard_True if <myDrawer> has non-null shading aspect.

Standard_Boolean AIS_InteractiveObject::HasPresentation ( ) const

Returns TRUE when this object has a presentation in the current DisplayMode()

Standard_Boolean AIS_InteractiveObject::HasSelectionMode ( ) const

Allows you to change the selection mode of an Interactive Object. The default selection mode setting is 0. For shapes, for example, the selection modes are as follows:

  • mode 0 - selection of the shape itself
  • mode 1 - selection of vertices
  • mode 2 - selection of edges
  • mode 3 - selection of wires
  • mode 4 - selection of faces
  • mode 5 - selection of shells
  • mode 6 - selection of solids
  • mode 7 - selection of compounds For trihedra, on the other hand, the selection modes are the following four:
  • mode 0 - selection of a trihedron
  • mode 1 - selection of its origin
  • mode 2 - selection of its axes
  • mode 3 - selection of its planes
Standard_Boolean AIS_InteractiveObject::HasSelectionPriority ( ) const

Returns true if there is a setting for selection priority. You can modify selection priority of an owner to make one entity more selectionable than another one. The default selection priority for an owner is 5, for example. To increase selection priority, choose a setting between 5 and 10. An entity with priority 7 will take priority over one with a setting of 6.

Standard_Boolean AIS_InteractiveObject::HasUsers ( ) const
Standard_Boolean AIS_InteractiveObject::HasWidth ( ) const

Returns true if the Interactive Object has width.

Standard_Integer AIS_InteractiveObject::HilightMode ( ) const

Returns the setting for highlight mode. At dynamic detection, the presentation echoed by the Interactive Context, is by default the presentation already on the screen. You can specify a Highlight presentation mode which is valid no matter what the active representation of the object. It makes no difference whether this choice is temporary or definitive. To do this, we use the following functions:

  • SetHilightMode
  • UnSetHilightMode In the case of a shape, whether it is visualized in wireframe presentation or with shading, we want to systematically highlight the wireframe presentation. Consequently, we set the highlight mode to 0.
Standard_Boolean AIS_InteractiveObject::IsInfinite ( ) const

Returns true if the interactive object is infinite. In this case, its graphic presentations are not taken into account in the fit-all view.

Standard_Boolean AIS_InteractiveObject::IsTransparent ( ) const

Returns true if there is a transparency setting.

virtual Graphic3d_NameOfMaterial AIS_InteractiveObject::Material ( ) const
virtual

Returns the current material setting. This will be on of the following materials:

  • Brass
  • Bronze
  • Gold
  • Pewter
  • Silver
  • Stone.

Reimplemented in AIS_Shape.

virtual void AIS_InteractiveObject::PolygonOffsets ( Standard_Integer aMode,
Standard_ShortReal aFactor,
Standard_ShortReal aUnits 
) const
virtual

Retrieves current polygon offsets settings from <myDrawer>.

Handle< Prs3d_Presentation > AIS_InteractiveObject::Presentation ( ) const

Returns the current presentation of this object according to the current DisplayMode()

void AIS_InteractiveObject::Redisplay ( const Standard_Boolean  AllModes = Standard_False)

Updates the active presentation; if <AllModes> = Standard_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.

Standard_Integer AIS_InteractiveObject::SelectionMode ( ) const

Returns the selection mode of the interactive object.

Standard_Integer AIS_InteractiveObject::SelectionPriority ( ) const

Returns the selection priority setting. -1 indicates that there is none. You can modify the selection priority of an owner to make one entity more selectionable than another one. The default selection priority for an owner is 5, for example. To increase selection priority, choose a setting between 5 and 10. An entity with priority 7 will take priority over one with a setting of 6 if both objects are selected at the same time. You could give vertices priority 8, edges priority 7, faces priority 6, and shapes priority 5. If a vertex, an edge and a face are simultaneously detected during selection, only the vertex will then be highlighted. For trihedra, for example, the default priorities are the following four:

  • priority 1 - a trihedron
  • priority 5 - its origin
  • priority 3 - its axes
  • priority 2 - its planes
void AIS_InteractiveObject::SetAspect ( const Handle< Prs3d_BasicAspect > &  anAspect,
const Standard_Boolean  globalChange = Standard_True 
)

Sets the graphic basic aspect to the current presentation. When <globalChange> is TRUE , the full object presentation is changed. When <globalChange> is FALSE , only the current group of the object presentation is changed.

virtual void AIS_InteractiveObject::SetColor ( const Quantity_Color aColor)
virtual
virtual void AIS_InteractiveObject::SetColor ( const Quantity_NameOfColor  aColor)
virtual

only the interactive obj knowns which Drawer attribute is affected by the color (ex: for a wire, it's the wireaspect field of the drawer, but for a vertex, only the point aspect field is affected by the color) WARNING : Do not forget to set the corresponding fields here (hasOwnColor and myOwnColor)

Reimplemented in AIS_Shape, AIS_Plane, AIS_Trihedron, AIS_Axis, AIS_PlaneTrihedron, AIS_PointCloud, AIS_Circle, AIS_Line, AIS_Point, AIS_Relation, and AIS_TextLabel.

virtual void AIS_InteractiveObject::SetContext ( const Handle< AIS_InteractiveContext > &  aCtx)
virtual

Sets the interactive context aCtx and provides a link to the default drawing tool or "Drawer" if there is none.

Reimplemented in AIS_Plane, and AIS_Trihedron.

void AIS_InteractiveObject::SetCurrentFacingModel ( const Aspect_TypeOfFacingModel  aModel = 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.

void AIS_InteractiveObject::SetDisplayMode ( const Standard_Integer  aMode)

Sets the display mode aMode for the interactive object. An object can have its own temporary display mode, which is different from that proposed by the interactive context. The range of possibilities currently proposed is the following:

  • AIS_WireFrame
  • AIS_Shaded This range can, however, be extended through the creation of new display modes.
void AIS_InteractiveObject::SetHilightMode ( const Standard_Integer  anIndex)

Sets the highlight mode anIndex for the interactive object. If, for example, you want to systematically highlight the wireframe presentation of a shape - whether visualized in wireframe presentation or with shading - you set the highlight mode to 0.

void AIS_InteractiveObject::SetInfiniteState ( const Standard_Boolean  aFlag = Standard_True)

Sets the infinite state flag aFlage. if <aFlag> = True , the interactiveObject is considered as infinite, i.e. its graphic presentations are not taken in account for View FitAll...

virtual void AIS_InteractiveObject::SetMaterial ( const Graphic3d_NameOfMaterial  aName)
virtual

Sets the name aName for material defining this display attribute for the interactive object. Material aspect determines shading aspect, color and transparency of visible entities.

Reimplemented in AIS_Shape, and AIS_PointCloud.

virtual void AIS_InteractiveObject::SetMaterial ( const Graphic3d_MaterialAspect aName)
virtual

Sets the material aMat defining this display attribute for the interactive object. Material aspect determines shading aspect, color and transparency of visible entities.

Reimplemented in AIS_Shape, AIS_ColoredShape, AIS_TexturedShape, and AIS_PointCloud.

void AIS_InteractiveObject::SetOwner ( const Handle< Standard_Transient > &  ApplicativeEntity)

Allows you to attribute the owner ApplicativeEntity 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.

virtual void AIS_InteractiveObject::SetPolygonOffsets ( const Standard_Integer  aMode,
const Standard_ShortReal  aFactor = 1.0,
const Standard_ShortReal  aUnits = 0.0 
)
virtual

Sets up polygon offsets for this object. It modifies all existing presentations of <anObj> (if any), so it is reasonable to call this method after <anObj> has been displayed. Otherwise, Compute() method should pass Graphic3d_AspectFillArea3d aspect from <myDrawer> to Graphic3d_Group to make polygon offsets work.

<aMode> parameter can contain various combinations of Aspect_PolygonOffsetMode enumeration elements (Aspect_POM_None means that polygon offsets are not changed). If <aMode> is different from Aspect_POM_Off and Aspect_POM_None, then <aFactor> and <aUnits> arguments are used by graphic renderer to calculate a depth offset value:

offset = <aFactor> * m + <aUnits> * r, where m - maximum depth slope for the polygon currently being displayed, r - minimum window coordinates depth resolution (implementation-specific).

Deafult settings for OCC 3D viewer: mode = Aspect_POM_Fill, factor = 1., units = 0.

Negative offset values move polygons closer to the viewport, while positive values shift polygons away. Consult OpenGL reference for details (glPolygonOffset function description).

NOTE: This method has a side effect - it creates own shading aspect if not yet created, so it is better to set up object material, color, etc. first.

void AIS_InteractiveObject::SetSelectionMode ( const Standard_Integer  aMode)

You can change the default selection mode index aMode of an Interactive Object. This is only of interest if you decide that mode 0 adopted by convention will not do.

void AIS_InteractiveObject::SetSelectionPriority ( const Standard_Integer  aPriority)

Allows you to provide a setting aPriority for selection priority. You can modify selection priority of an owner to make one entity more selectionable than another one. The default selection priority for an owner is 5, for example. To increase selection priority, choose a setting between 5 and 10. An entity with priority 7 will take priority over one with a setting of 6.

virtual void AIS_InteractiveObject::SetTransparency ( const Standard_Real  aValue = 0.6)
virtual

Attributes a setting aValue for transparency. The transparency value should be between 0.0 and 1.0. At 0.0 an object will be totally opaque, and at 1.0, fully transparent. Warning At a value of 1.0, there may be nothing visible.

Reimplemented in AIS_Shape, AIS_ColoredShape, and Voxel_Prs.

virtual void AIS_InteractiveObject::SetWidth ( const Standard_Real  aValue)
virtual

Allows you to provide the setting aValue for width. Only the Interactive Object knows which Drawer attribute is affected by the width setting.

Reimplemented in AIS_Shape, AIS_Axis, AIS_ColoredShape, AIS_Circle, and AIS_Line.

virtual Standard_Integer AIS_InteractiveObject::Signature ( ) const
virtual

Specifies additional characteristics of Interactive Objects. A signature is, in fact, an index with integer values assigned different properties. This method is frequently used in conjuction with Type to give a particular type and signature to an Interactive Object. By default, the Interactive Object has a None type and a signature of 0. Among the datums, this signature is attributed to the shape The remaining datums have the following default signatures:

  • Point signature 1
  • Axis signature 2
  • Trihedron signature 3
  • PlaneTrihedron signature 4
  • Line signature 5
  • Circle signature 6
  • Plane signature 7.

Reimplemented in AIS_Trihedron, AIS_Axis, AIS_PlaneTrihedron, AIS_Plane, AIS_Shape, AIS_MultipleConnectedInteractive, AIS_ConnectedInteractive, AIS_Circle, AIS_Line, and AIS_Point.

void AIS_InteractiveObject::State ( const Standard_Integer  theState)
Standard_Integer AIS_InteractiveObject::State ( ) const
virtual Standard_Real AIS_InteractiveObject::Transparency ( ) const
virtual

Returns the transparency setting. This will be between 0.0 and 1.0. At 0.0 an object will be totally opaque, and at 1.0, fully transparent.

Reimplemented in AIS_Shape.

virtual AIS_KindOfInteractive AIS_InteractiveObject::Type ( ) const
virtual

Returns the kind of Interactive Object:

  • None
  • Datum
  • Relation
  • Object By default, the interactive object has a None type. Because specific shapes entail different behavior according to their sub-shapes, you may need to create a Local Context. This will allow you to specify the additional characteristics which you need to handle these shapes.

Reimplemented in AIS_Dimension, AIS_Trihedron, AIS_Axis, AIS_PlaneTrihedron, AIS_Plane, AIS_Shape, AIS_Relation, AIS_Circle, AIS_Line, AIS_MultipleConnectedInteractive, AIS_ConnectedInteractive, and AIS_Point.

virtual void AIS_InteractiveObject::UnsetAttributes ( )
virtual

Clears settings provided by the drawing tool aDrawer.

Reimplemented from SelectMgr_SelectableObject.

virtual void AIS_InteractiveObject::UnsetColor ( )
virtual

Removes color settings. Only the Interactive Object knows which Drawer attribute is affected by the color setting. For a wire, for example, wire aspect is the attribute affected. For a vertex, however, only point aspect is affected by the color setting.

Reimplemented in AIS_Shape, AIS_Plane, AIS_Trihedron, AIS_Axis, AIS_TexturedShape, AIS_PointCloud, AIS_Circle, AIS_Line, AIS_Point, and AIS_Relation.

void AIS_InteractiveObject::UnsetDisplayMode ( )

Removes display mode settings from the interactive object.

void AIS_InteractiveObject::UnsetHilightMode ( )

Allows the user to take a given Prs for hilight ex : for a shape which would be displayed in shading mode the hilight Prs is the wireframe mode. if No specific hilight mode is defined, the displayed Prs will be the hilighted one.

virtual void AIS_InteractiveObject::UnsetMaterial ( )
virtual

Removes the setting for material.

Reimplemented in AIS_Shape, AIS_TexturedShape, and AIS_PointCloud.

void AIS_InteractiveObject::UnsetSelectionMode ( )

You can change the default selection mode index of an Interactive Object. This is only of interest if you decide that the 0 mode adopted by convention will not do.

void AIS_InteractiveObject::UnsetSelectionPriority ( )

Removes the setting for selection priority. SelectionPriority then returns -1.

virtual void AIS_InteractiveObject::UnsetTransparency ( )
virtual

Removes the transparency setting. The object is opaque by default.

Reimplemented in AIS_Shape.

virtual void AIS_InteractiveObject::UnsetWidth ( )
virtual

Reimplemented in AIS_Shape, AIS_Trihedron, AIS_Axis, AIS_Circle, and AIS_Line.

const TColStd_ListOfTransient& AIS_InteractiveObject::Users ( ) const
Standard_Real AIS_InteractiveObject::Width ( ) const

Returns the width setting of the Interactive Object.

Field Documentation

Standard_Boolean AIS_InteractiveObject::hasOwnColor
protected
Standard_Boolean AIS_InteractiveObject::hasOwnMaterial
protected
Aspect_TypeOfFacingModel AIS_InteractiveObject::myCurrentFacingModel
protected
Standard_Integer AIS_InteractiveObject::myHilightMode
protected
Standard_Boolean AIS_InteractiveObject::myInfiniteState
protected
Quantity_Color AIS_InteractiveObject::myOwnColor
protected
Graphic3d_NameOfMaterial AIS_InteractiveObject::myOwnMaterial
protected
Standard_Real AIS_InteractiveObject::myOwnWidth
protected
Standard_Boolean AIS_InteractiveObject::myRecomputeEveryPrs
protected
TColStd_ListOfInteger AIS_InteractiveObject::myToRecomputeModes
protected
Standard_Real AIS_InteractiveObject::myTransparency
protected

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