Open CASCADE Technology  7.1.0.beta
Data Structures | Public Member Functions

AIS_Manipulator Class Reference

Interactive object class to manipulate local transformation of another interactive object or a group of objects via mouse. It manages three types of manipulations in 3D space: More...

#include <AIS_Manipulator.hxx>

Inheritance diagram for AIS_Manipulator:
Inheritance graph
[legend]

Data Structures

class  Axis
 The class describes on axis sub-object. It includes sub-objects itself: -rotator -translator -scaler. More...
 
struct  BehaviorOnTransform
 Behavior settings to be applied when performing transformation: More...
 
class  Cube
 
class  Disk
 
struct  OptionsForAttach
 Behavior settings to be applied when performing transformation: More...
 
class  Quadric
 
class  Sphere
 

Public Member Functions

 AIS_Manipulator ()
 Constructs a manipulator object with default placement and all parts to be displayed. More...
 
 AIS_Manipulator (const gp_Ax2 &thePosition)
 Constructs a manipulator object with input location and positions of axes and all parts to be displayed. More...
 
virtual ~AIS_Manipulator ()
 Destructor. More...
 
void SetPart (const Standard_Integer theAxisIndex, const AIS_ManipulatorMode theMode, const Standard_Boolean theIsEnabled)
 Disable or enable visual parts for translation, rotation or scaling for some axis. By default all parts are enabled (will be displayed). More...
 
void Attach (const Handle< AIS_InteractiveObject > &theObject, const OptionsForAttach &theOptions=OptionsForAttach())
 Attaches himself to the input interactive object and become displayed in the same context. It is placed in the center of object bounding box, and its size is adjusted to the object bounding box. More...
 
void Attach (const Handle< AIS_ManipulatorObjectSequence > &theObject, const OptionsForAttach &theOptions=OptionsForAttach())
 Attaches himself to the input interactive object group and become displayed in the same context. It become attached to the first object, baut manage manipulation of the whole group. It is placed in the center of object bounding box, and its size is adjusted to the object bounding box. More...
 
void EnableMode (const AIS_ManipulatorMode theMode)
 Enable manipualtion mode. More...
 
void SetModeActivationOnDetection (const Standard_Boolean theToEnable)
 Enables mode activation on detection (highlighting). By default, mode is activated on selection of manipulator part. More...
 
Standard_Boolean IsModeActivationOnDetection () const
 
void StartTransform (const Standard_Integer theX, const Standard_Integer theY, const Handle< V3d_View > &theView)
 Init start (reference) transformation. More...
 
void Transform (const gp_Trsf &aTrsf)
 Apply to the owning objects the input transformation. More...
 
void StopTransform (const Standard_Boolean theToApply=Standard_True)
 Reset start (reference) transformation. More...
 
gp_Trsf Transform (const Standard_Integer theX, const Standard_Integer theY, const Handle< V3d_View > &theView)
 Apply transformation made from mouse moving from start position (save on the first Tranform() call and reset on DeactivateCurrentMode() call.) to the in/out mouse position (theX, theY) More...
 
Standard_Boolean ObjectTransformation (const Standard_Integer theX, const Standard_Integer theY, const Handle< V3d_View > &theView, gp_Trsf &theTrsf)
 Computes transformation of parent object according to the active mode and input motion vector. You can use this method to get object transformation according to current mode or use own algorithm to implement any other tranformation for modes. More...
 
void DeactivateCurrentMode ()
 Make inactive the current selected manipulator part and reset current axis index and current mode. After its call HasActiveMode() returns false. More...
 
void Detach ()
 Detaches himself from the owner object, and removes itself from context. More...
 
Handle< AIS_ManipulatorObjectSequence > Objects () const
 
Handle< AIS_InteractiveObjectObject () const
 
Handle< AIS_InteractiveObjectObject (const Standard_Integer theIndex) const
 
Standard_Boolean IsAttached () const
 
Standard_Boolean HasActiveMode () const
 
Standard_Boolean HasActiveTransformation ()
 
gp_Trsf StartTransformation () const
 
gp_Trsf StartTransformation (const Standard_Integer theIndex) const
 
Configuration of graphical transformations
void SetZoomPersistence (const Standard_Boolean theToEnable)
 Enable or disable zoom persistence mode for the manipulator. With this mode turned on the presentation will keep fixed screen size. More...
 
Standard_Boolean ZoomPersistence () const
 Returns state of zoom persistence mode, whether it turned on or off. More...
 
virtual void SetTransformPersistence (const Handle< Graphic3d_TransformPers > &theTrsfPers) override
 Redefines transform persistence management to setup transformation for sub-presentation of axes. More...
 
Setters for parameters
AIS_ManipulatorMode ActiveMode () const
 
const gp_Ax2Position () const
 
void SetPosition (const gp_Ax2 &thePosition)
 Sets position of the manipulator object. More...
 
Standard_ShortReal Size () const
 
void SetSize (const Standard_ShortReal theSideLength)
 Sets size (length of side of the manipulator cubic bounding box. More...
 
void SetGap (const Standard_ShortReal theValue)
 Sets gaps between translator, scaler and rotator sub-presentations. More...
 
void SetTransformBehavior (const BehaviorOnTransform &theSettings)
 Sets behavior settings for transformation action carried on the manipulator, whether it translates, rotates together with the transformed object or not. More...
 
BehaviorOnTransformChangeTransformBehavior ()
 
const BehaviorOnTransformTransformBehavior () const
 
- Public Member Functions inherited from AIS_InteractiveObject
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 > &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. 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 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_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 thePriority)
 Allows you to provide a setting thePriority 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 theMode)
 Sets the highlight mode theMode 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 &theColor) 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 () override
 Clears settings provided by the drawing tool aDrawer. More...
 
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)
 Sets the graphic basic aspect to the current presentation. 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) override
 Returns bounding box of object correspondingly to its current display mode. More...
 
void SetIsoOnTriangulation (const Standard_Boolean theIsEnabled)
 Enables or disables on-triangulation build of isolines according to the flag given. More...
 
void SynchronizeAspects ()
 Synchronize presentation aspects after their modification. More...
 
- Public Member Functions inherited from SelectMgr_SelectableObject
virtual ~SelectMgr_SelectableObject ()
 Clears all selections of the object. 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...
 
virtual Standard_Boolean HasSelection (const Standard_Integer theMode) const
 Returns true if a selection corresponding to the selection mode theMode was computed for this object. 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 () override
 resets local transformation to identity. More...
 
virtual void UpdateTransformation () override
 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 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) 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. 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...
 
Bnd_Box BndBoxOfSelected (const Handle< SelectMgr_IndexedMapOfOwner > &theOwners)
 Returns a bounding box of sensitive entities with the owners given if they are a part of activated selection. More...
 
Standard_Integer GlobalSelectionMode () const
 Returns the mode for selection of object as a whole. More...
 
virtual Handle< SelectMgr_EntityOwnerGlobalSelOwner () const
 Returns the owner of mode for selection of object as a whole. 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...
 
const Handle< Graphic3d_TransformPers > & TransformPersistence () const
 
 Standard_DEPRECATED ("This method is deprecated - SetTransformPersistence() taking Graphic3d_TransformPers should be called instead") void SetTransformPersistence(const Graphic3d_TransModeFlags theMode
 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 thePoint parameter (except Graphic3d_TMF_TriedronPers flag. 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...
 
const Handle< Geom_Transformation > & LocalTransformationGeom () const
 Return the local transformation. More...
 
void SetLocalTransformation (const gp_Trsf &theTrsf)
 Sets local transformation to theTransformation. More...
 
void SetLocalTransformation (const Handle< Geom_Transformation > &theTrsf)
 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 Handle< Geom_Transformation > & TransformationGeom () const
 Return the transformation taking into account transformation of parent object(s). More...
 
const gp_TrsfLocalTransformation () const
 Return the local transformation. More...
 
const gp_TrsfTransformation () const
 Return the transformation taking into account transformation of parent object(s). More...
 
const gp_GTrsfInversedTransformation () 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 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. More...
 
 Standard_DEPRECATED ("This method is deprecated - overload taking Handle should be used instead") void SetClipPlanes(const Graphic3d_SequenceOfHClipPlane &thePlanes)
 
const Handle< Graphic3d_SequenceOfHClipPlane > & ClipPlanes () 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...
 
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_ListOfPresentableObjectsChildren () const
 Returns children of the current object. More...
 
Standard_Boolean HasOwnPresentations () const
 Returns true if object should have own presentations. More...
 
PrsMgr_PresentableObjectPointer Parent () const
 Returns parent of current object in scene hierarchy. More...
 
- Public Member Functions inherited from MMgt_TShared
virtual void Delete () const override
 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 opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object. More...
 
Standard_Boolean IsInstance (const opencascade::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 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. 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...
 
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. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 
void IncrementRefCounter () const
 Increments the reference counter of this object. More...
 
Standard_Integer DecrementRefCounter () const
 Decrements the reference counter of this object; returns the decremented value. More...
 

Protected Attributes

Auxilliary classes to fill presentation with proper primitives
Axis myAxes [3]
 Tree axes of the manipulator. More...
 
Sphere myCenter
 Visual part displaying the center sphere of the manipulator. More...
 
gp_Ax2 myPosition
 Position of the manipualtor object. it displayes its location and position of its axes. More...
 
Standard_Integer myCurrentIndex
 Index of active axis. More...
 
AIS_ManipulatorMode myCurrentMode
 Name of active manipualtion mode. More...
 
Standard_Boolean myIsActivationOnDetection
 Manual activation of modes (not on parts selection). More...
 
Standard_Boolean myIsZoomPersistentMode
 Zoom persistence mode activation. More...
 
BehaviorOnTransform myBehaviorOnTransform
 Behavior settings applied on manipulator when transforming an object. More...
 
Fields for interactive trnasformation. Fields only for internal needs. They do not have public interface.
NCollection_Sequence< gp_TrsfmyStartTrsfs
 Owning object transformation for start. It is used internally. More...
 
Standard_Boolean myHasStartedTransformation
 Shows if transformation is processed (sequential calls of Transform()). More...
 
gp_Ax2 myStartPosition
 Owning object transformation for start. It is used internally. More...
 
gp_Pnt myStartPick
 Start position of manipulator. More...
 
Standard_Real myPrevState
 3d point corresponding to start mouse pick. More...
 
Handle< Prs3d_ShadingAspectmyHighlightAspect
 Previous value of angle during rotation. More...
 
- Protected Attributes inherited from AIS_InteractiveObject
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
 
Standard_Boolean myAutoHilight
 
- Protected Attributes inherited from PrsMgr_PresentableObject
PrsMgr_Presentations myPresentations
 
PrsMgr_TypeOfPresentation3d myTypeOfPresentation3d
 
Handle< Graphic3d_SequenceOfHClipPlanemyClipPlanes
 
Standard_Boolean myIsMutable
 
Graphic3d_ZLayerId myZLayer
 
Standard_Boolean myHasOwnPresentations
 

Presentation computation

virtual void Compute (const Handle< PrsMgr_PresentationManager3d > &thePrsMgr, const Handle< Prs3d_Presentation > &thePrs, const Standard_Integer theMode=0) override
 Fills presentation. More...
 
virtual void ComputeSelection (const Handle< SelectMgr_Selection > &theSelection, const Standard_Integer theMode) override
 Computes selection sensitive zones (triangulation) for manipulator. More...
 
virtual Standard_Boolean IsAutoHilight () const override
 Disables auto highlighting to use HilightSelected() and HilightOwnerWithColor() overriden methods. More...
 
virtual void ClearSelected () override
 Method which clear all selected owners belonging to this selectable object ( for fast presentation draw ). More...
 
virtual void HilightSelected (const Handle< PrsMgr_PresentationManager3d > &thePM, const SelectMgr_SequenceOfOwner &theSeq) override
 Method which draws selected owners ( for fast presentation draw ). More...
 
virtual void HilightOwnerWithColor (const Handle< PrsMgr_PresentationManager3d > &thePM, const Handle< Graphic3d_HighlightStyle > &theStyle, const Handle< SelectMgr_EntityOwner > &theOwner) override
 Method which hilight an owner belonging to this selectable object ( for fast presentation draw ). More...
 
void init ()
 Fills presentation. More...
 
void updateTransformation ()
 Fills presentation. More...
 
Handle< Prs3d_PresentationgetHighlightPresentation (const Handle< SelectMgr_EntityOwner > &theOwner) const
 Fills presentation. More...
 
Handle< Graphic3d_GroupgetGroup (const Standard_Integer theIndex, const AIS_ManipulatorMode theMode) const
 Fills presentation. More...
 
void attachToBox (const Bnd_Box &theBox)
 Fills presentation. More...
 
void adjustSize (const Bnd_Box &theBox)
 Fills presentation. More...
 
void setTransformPersistence (const Handle< Graphic3d_TransformPers > &theTrsfPers)
 Fills presentation. More...
 
virtual void setLocalTransformation (const Handle< Geom_Transformation > &theTrsf) override
 Redefines local transformation management method to inform user of inproper use. More...
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object. More...
 
- Static Public Member Functions inherited from SelectMgr_SelectableObject
static void InitDefaultHilightAttributes (const Handle< Prs3d_Drawer > &theDrawer)
 Initializes theDrawer by default hilight settings. More...
 
- Static Public Member Functions inherited from Standard_Transient
static const char * get_type_name ()
 Returns a type descriptor about this object. More...
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class. More...
 
- Data Fields inherited from PrsMgr_PresentableObject
const gp_PntthePoint
 
- 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 dependant of the view of Display. More...
 
- Protected Member Functions inherited from SelectMgr_SelectableObject
 SelectMgr_SelectableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 
void setGlobalSelMode (const Standard_Integer theMode)
 
virtual void updateSelection (const Standard_Integer theMode)
 
- Protected Member Functions inherited from PrsMgr_PresentableObject
 PrsMgr_PresentableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 
virtual ~PrsMgr_PresentableObject ()
 
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)
 High-level interface for controlling polygon offsets. More...
 
virtual void SetCombinedParentTransform (const Handle< Geom_Transformation > &theTrsf)
 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...
 

Detailed Description

Interactive object class to manipulate local transformation of another interactive object or a group of objects via mouse. It manages three types of manipulations in 3D space:

Constructor & Destructor Documentation

AIS_Manipulator::AIS_Manipulator ( )

Constructs a manipulator object with default placement and all parts to be displayed.

AIS_Manipulator::AIS_Manipulator ( const gp_Ax2 thePosition)

Constructs a manipulator object with input location and positions of axes and all parts to be displayed.

virtual AIS_Manipulator::~AIS_Manipulator ( )
inlinevirtual

Destructor.

Member Function Documentation

AIS_ManipulatorMode AIS_Manipulator::ActiveMode ( ) const
inline
Returns
poition of manipulator interactive object.
void AIS_Manipulator::adjustSize ( const Bnd_Box theBox)
protected

Fills presentation.

Note
Manipulator presentation does not use display mode and for all modes has the same presenatation.
void AIS_Manipulator::Attach ( const Handle< AIS_InteractiveObject > &  theObject,
const OptionsForAttach theOptions = OptionsForAttach() 
)

Attaches himself to the input interactive object and become displayed in the same context. It is placed in the center of object bounding box, and its size is adjusted to the object bounding box.

void AIS_Manipulator::Attach ( const Handle< AIS_ManipulatorObjectSequence > &  theObject,
const OptionsForAttach theOptions = OptionsForAttach() 
)

Attaches himself to the input interactive object group and become displayed in the same context. It become attached to the first object, baut manage manipulation of the whole group. It is placed in the center of object bounding box, and its size is adjusted to the object bounding box.

void AIS_Manipulator::attachToBox ( const Bnd_Box theBox)
protected

Fills presentation.

Note
Manipulator presentation does not use display mode and for all modes has the same presenatation.
BehaviorOnTransform& AIS_Manipulator::ChangeTransformBehavior ( )
inline
Returns
behavior settings for transformation action of the manipulator.
virtual void AIS_Manipulator::ClearSelected ( )
overridevirtual

Method which clear all selected owners belonging to this selectable object ( for fast presentation draw ).

Reimplemented from SelectMgr_SelectableObject.

virtual void AIS_Manipulator::Compute ( const Handle< PrsMgr_PresentationManager3d > &  thePrsMgr,
const Handle< Prs3d_Presentation > &  thePrs,
const Standard_Integer  theMode = 0 
)
overridevirtual

Fills presentation.

Note
Manipulator presentation does not use display mode and for all modes has the same presenatation.

Reimplemented from PrsMgr_PresentableObject.

virtual void AIS_Manipulator::ComputeSelection ( const Handle< SelectMgr_Selection > &  theSelection,
const Standard_Integer  theMode 
)
overridevirtual

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
theNode[in] Seldction mode that is treated as transformation mode.

Implements SelectMgr_SelectableObject.

void AIS_Manipulator::DeactivateCurrentMode ( )

Make inactive the current selected manipulator part and reset current axis index and current mode. After its call HasActiveMode() returns false.

See also
HasActiveMode()
void AIS_Manipulator::Detach ( )

Detaches himself from the owner object, and removes itself from context.

void AIS_Manipulator::EnableMode ( const AIS_ManipulatorMode  theMode)

Enable manipualtion mode.

Warning
It activates selection mode in the current context. If manipulator is not displayed, no mode will be activated.
Handle< Graphic3d_Group > AIS_Manipulator::getGroup ( const Standard_Integer  theIndex,
const AIS_ManipulatorMode  theMode 
) const
protected

Fills presentation.

Note
Manipulator presentation does not use display mode and for all modes has the same presenatation.
Handle< Prs3d_Presentation > AIS_Manipulator::getHighlightPresentation ( const Handle< SelectMgr_EntityOwner > &  theOwner) const
protected

Fills presentation.

Note
Manipulator presentation does not use display mode and for all modes has the same presenatation.
Standard_Boolean AIS_Manipulator::HasActiveMode ( ) const
inline
Returns
true if some part of manipulator is selected (tranformation mode is active, and owning object can be rtansformated).
Standard_Boolean AIS_Manipulator::HasActiveTransformation ( )
inline
virtual void AIS_Manipulator::HilightOwnerWithColor ( const Handle< PrsMgr_PresentationManager3d > &  thePM,
const Handle< Graphic3d_HighlightStyle > &  theStyle,
const Handle< SelectMgr_EntityOwner > &  theOwner 
)
overridevirtual

Method which hilight an owner belonging to this selectable object ( for fast presentation draw ).

Reimplemented from SelectMgr_SelectableObject.

virtual void AIS_Manipulator::HilightSelected ( const Handle< PrsMgr_PresentationManager3d > &  thePM,
const SelectMgr_SequenceOfOwner theSeq 
)
overridevirtual

Method which draws selected owners ( for fast presentation draw ).

Reimplemented from SelectMgr_SelectableObject.

void AIS_Manipulator::init ( )
protected

Fills presentation.

Note
Manipulator presentation does not use display mode and for all modes has the same presenatation.
Standard_Boolean AIS_Manipulator::IsAttached ( ) const
inline
Returns
true if manipulator is attached to some interactive object (has owning object).
virtual Standard_Boolean AIS_Manipulator::IsAutoHilight ( ) const
inlineoverridevirtual

Disables auto highlighting to use HilightSelected() and HilightOwnerWithColor() overriden methods.

Reimplemented from SelectMgr_SelectableObject.

Standard_Boolean AIS_Manipulator::IsModeActivationOnDetection ( ) const
inline
Returns
true if manual mode activation is enabled.
Handle< AIS_InteractiveObject > AIS_Manipulator::Object ( ) const
Returns
the first (leading) object of the owning objects.
Handle< AIS_InteractiveObject > AIS_Manipulator::Object ( const Standard_Integer  theIndex) const
Returns
one of the owning objects.
Warning
raises program error if theIndex is more than owning objects count or less than 1.
Handle< AIS_ManipulatorObjectSequence > AIS_Manipulator::Objects ( ) const
Returns
all owning objects.
Standard_Boolean AIS_Manipulator::ObjectTransformation ( const Standard_Integer  theX,
const Standard_Integer  theY,
const Handle< V3d_View > &  theView,
gp_Trsf theTrsf 
)

Computes transformation of parent object according to the active mode and input motion vector. You can use this method to get object transformation according to current mode or use own algorithm to implement any other tranformation for modes.

Returns
transformation of parent object.
const gp_Ax2& AIS_Manipulator::Position ( ) const
inline
Returns
poition of manipulator interactive object.
void AIS_Manipulator::SetGap ( const Standard_ShortReal  theValue)

Sets gaps between translator, scaler and rotator sub-presentations.

virtual void AIS_Manipulator::setLocalTransformation ( const Handle< Geom_Transformation > &  theTrsf)
overrideprotectedvirtual

Redefines local transformation management method to inform user of inproper use.

Warning
this interactive object does not support setting custom local transformation, this class solely uses this property to implement visual positioning of the manipulator without need for recomputing presentation.
Invokes debug assertion in debug to catch incompatible usage of the method, silently does nothing in release mode.

Reimplemented from PrsMgr_PresentableObject.

void AIS_Manipulator::SetModeActivationOnDetection ( const Standard_Boolean  theToEnable)
inline

Enables mode activation on detection (highlighting). By default, mode is activated on selection of manipulator part.

Warning
If this mode is enabled, selection of parts does nothing.
void AIS_Manipulator::SetPart ( const Standard_Integer  theAxisIndex,
const AIS_ManipulatorMode  theMode,
const Standard_Boolean  theIsEnabled 
)

Disable or enable visual parts for translation, rotation or scaling for some axis. By default all parts are enabled (will be displayed).

Warning
Enabling or disabling of visual parts of manipulator does not manage the manipulation (selection) mode.
Raises program error if axis index is < 0 or > 2.
void AIS_Manipulator::SetPosition ( const gp_Ax2 thePosition)

Sets position of the manipulator object.

void AIS_Manipulator::SetSize ( const Standard_ShortReal  theSideLength)

Sets size (length of side of the manipulator cubic bounding box.

void AIS_Manipulator::SetTransformBehavior ( const BehaviorOnTransform theSettings)
inline

Sets behavior settings for transformation action carried on the manipulator, whether it translates, rotates together with the transformed object or not.

virtual void AIS_Manipulator::SetTransformPersistence ( const Handle< Graphic3d_TransformPers > &  theTrsfPers)
overridevirtual

Redefines transform persistence management to setup transformation for sub-presentation of axes.

Warning
this interactive object does not support custom transformation persistence when using
See also
ZoomPersistence mode. In this mode the transformation persistence flags for presentations are overriden by this class.
Warning
Invokes debug assertion to catch incompatible usage of the method with
See also
ZoomPersistence mode, silently does nothing in release mode.
Warning
revise use of AdjustSize argument of of
See also
AttachToObjects method when enabling zoom persistence.

Reimplemented from PrsMgr_PresentableObject.

void AIS_Manipulator::setTransformPersistence ( const Handle< Graphic3d_TransformPers > &  theTrsfPers)
protected

Fills presentation.

Note
Manipulator presentation does not use display mode and for all modes has the same presenatation.
void AIS_Manipulator::SetZoomPersistence ( const Standard_Boolean  theToEnable)

Enable or disable zoom persistence mode for the manipulator. With this mode turned on the presentation will keep fixed screen size.

Warning
when turned on this option overrides transform persistence properties and local transformation to achieve necessary visual effect.
revise use of AdjustSize argument of of
See also
AttachToObjects method when enabling zoom persistence.
Standard_ShortReal AIS_Manipulator::Size ( void  ) const
inline
Returns
poition of manipulator interactive object.
void AIS_Manipulator::StartTransform ( const Standard_Integer  theX,
const Standard_Integer  theY,
const Handle< V3d_View > &  theView 
)

Init start (reference) transformation.

Warning
It is used in chain with StartTransform-Transform(gp_Trsf)-StopTransform and is used only for custom transform set. If Transform(const Standard_Integer, const Standard_Integer) is used, initial data is set automatically, and it is reset on DeactivateCurrentMode call if it is not reset yet.
gp_Trsf AIS_Manipulator::StartTransformation ( ) const
inline
gp_Trsf AIS_Manipulator::StartTransformation ( const Standard_Integer  theIndex) const
inline
void AIS_Manipulator::StopTransform ( const Standard_Boolean  theToApply = Standard_True)

Reset start (reference) transformation.

Parameters
theToApply[in] option to apply or to cancel the started transformation.
Warning
It is used in chain with StartTransform-Transform(gp_Trsf)-StopTransform and is used only for custom transform set.
void AIS_Manipulator::Transform ( const gp_Trsf aTrsf)

Apply to the owning objects the input transformation.

Remarks
The transformation is set using SetLocalTransformation for owning objects. The location of the manipulator is stored also in Local Transformation, so that there's no need to redisplay objects.
Warning
It is used in chain with StartTransform-Transform(gp_Trsf)-StopTransform and is used only for custom transform set.
It will does nothing if transformation is not initiated (with StartTransform() call).
gp_Trsf AIS_Manipulator::Transform ( const Standard_Integer  theX,
const Standard_Integer  theY,
const Handle< V3d_View > &  theView 
)

Apply transformation made from mouse moving from start position (save on the first Tranform() call and reset on DeactivateCurrentMode() call.) to the in/out mouse position (theX, theY)

const BehaviorOnTransform& AIS_Manipulator::TransformBehavior ( ) const
inline
Returns
behavior settings for transformation action of the manipulator.
void AIS_Manipulator::updateTransformation ( )
protected

Fills presentation.

Note
Manipulator presentation does not use display mode and for all modes has the same presenatation.
Standard_Boolean AIS_Manipulator::ZoomPersistence ( ) const
inline

Returns state of zoom persistence mode, whether it turned on or off.

Field Documentation

Axis AIS_Manipulator::myAxes[3]
protected

Tree axes of the manipulator.

BehaviorOnTransform AIS_Manipulator::myBehaviorOnTransform
protected

Behavior settings applied on manipulator when transforming an object.

Sphere AIS_Manipulator::myCenter
protected

Visual part displaying the center sphere of the manipulator.

Standard_Integer AIS_Manipulator::myCurrentIndex
protected

Index of active axis.

AIS_ManipulatorMode AIS_Manipulator::myCurrentMode
protected

Name of active manipualtion mode.

Standard_Boolean AIS_Manipulator::myHasStartedTransformation
protected

Shows if transformation is processed (sequential calls of Transform()).

Handle< Prs3d_ShadingAspect > AIS_Manipulator::myHighlightAspect
protected

Previous value of angle during rotation.

Aspect used to colour current detected part and current selected part.

Standard_Boolean AIS_Manipulator::myIsActivationOnDetection
protected

Manual activation of modes (not on parts selection).

Standard_Boolean AIS_Manipulator::myIsZoomPersistentMode
protected

Zoom persistence mode activation.

gp_Ax2 AIS_Manipulator::myPosition
protected

Position of the manipualtor object. it displayes its location and position of its axes.

Standard_Real AIS_Manipulator::myPrevState
protected

3d point corresponding to start mouse pick.

gp_Pnt AIS_Manipulator::myStartPick
protected

Start position of manipulator.

gp_Ax2 AIS_Manipulator::myStartPosition
protected

Owning object transformation for start. It is used internally.

NCollection_Sequence<gp_Trsf> AIS_Manipulator::myStartTrsfs
protected

Owning object transformation for start. It is used internally.


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