Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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  Sector
 
class  Sphere
 

Public Member Functions

 AIS_Manipulator ()
 Constructs a manipulator object with default placement and all parts to be displayed.
 
 AIS_Manipulator (const gp_Ax2 &thePosition)
 Constructs a manipulator object with input location and positions of axes and all parts to be displayed.
 
void SetPart (const int theAxisIndex, const AIS_ManipulatorMode theMode, const bool theIsEnabled)
 Disable or enable visual parts for translation, rotation or scaling for some axis. By default all parts are enabled (will be displayed).
 
void SetPart (const AIS_ManipulatorMode theMode, const bool theIsEnabled)
 Disable or enable visual parts for translation, rotation or scaling for ALL axes. By default all parts are enabled (will be displayed).
 
void Attach (const occ::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 Attach (const occ::handle< NCollection_HSequence< occ::handle< AIS_InteractiveObject > > > &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 EnableMode (const AIS_ManipulatorMode theMode)
 Enable manipualtion mode.
 
void SetModeActivationOnDetection (const bool theToEnable)
 Enables mode activation on detection (highlighting). By default, mode is activated on selection of manipulator part.
 
bool IsModeActivationOnDetection () const
 
bool ProcessDragging (const occ::handle< AIS_InteractiveContext > &theCtx, const occ::handle< V3d_View > &theView, const occ::handle< SelectMgr_EntityOwner > &theOwner, const NCollection_Vec2< int > &theDragFrom, const NCollection_Vec2< int > &theDragTo, const AIS_DragAction theAction) override
 Drag object in the viewer.
 
void StartTransform (const int theX, const int theY, const occ::handle< V3d_View > &theView)
 Init start (reference) transformation.
 
void Transform (const gp_Trsf &aTrsf)
 Apply to the owning objects the input transformation.
 
void RecomputeTransformation (const occ::handle< Graphic3d_Camera > &theCamera) override
 Apply camera transformation to flat skin manipulator.
 
void RecomputeSelection (const AIS_ManipulatorMode theMode)
 Recomputes sensitive primitives for the given selection mode.
 
void StopTransform (const bool theToApply=true)
 Reset start (reference) transformation.
 
gp_Trsf Transform (const int theX, const int theY, const occ::handle< V3d_View > &theView)
 Apply transformation made from mouse moving from start position (save on the first Transform() call and reset on DeactivateCurrentMode() call.) to the in/out mouse position (theX, theY)
 
bool ObjectTransformation (const int theX, const int theY, const occ::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 transformation for modes.
 
void DeactivateCurrentMode ()
 Make inactive the current selected manipulator part and reset current axis index and current mode. After its call HasActiveMode() returns false.
 
void Detach ()
 Detaches himself from the owner object, and removes itself from context.
 
occ::handle< NCollection_HSequence< occ::handle< AIS_InteractiveObject > > > Objects () const
 
occ::handle< AIS_InteractiveObjectObject () const
 
occ::handle< AIS_InteractiveObjectObject (const int theIndex) const
 
bool IsAttached () const
 
bool HasActiveMode () const
 
bool HasActiveTransformation ()
 
gp_Trsf StartTransformation () const
 
gp_Trsf StartTransformation (int theIndex) const
 
Configuration of graphical transformations

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

Protected Attributes

Auxiliary classes to fill presentation with proper primitives
Axis myAxes [3]
 Tree axes of the manipulator.
 
Sphere myCenter
 Visual part displaying the center sphere of the manipulator.
 
gp_Ax2 myPosition
 Position of the manipulator object. it displays its location and position of its axes.
 
Disk myCircle
 Outer circle.
 
occ::handle< Graphic3d_GroupmyCircleGroup
 Tree axes of the manipulator.
 
Disk mySector
 Sector indicating the rotation angle.
 
occ::handle< Graphic3d_GroupmySectorGroup
 Tree axes of the manipulator.
 
int myCurrentIndex
 Index of active axis.
 
AIS_ManipulatorMode myCurrentMode
 Name of active manipulation mode.
 
ManipulatorSkin mySkinMode
 Name of active skin mode.
 
bool myIsActivationOnDetection
 Manual activation of modes (not on parts selection).
 
bool myIsZoomPersistentMode
 Zoom persistence mode activation.
 
BehaviorOnTransform myBehaviorOnTransform
 Behavior settings applied on manipulator when transforming an object.
 
Fields for interactive transformation. Fields only for internal needs. They do not have public interface.
NCollection_Sequence< gp_TrsfmyStartTrsfs
 Owning object transformation for start. It is used internally.
 
bool myHasStartedTransformation
 Shows if transformation is processed (sequential calls of Transform()).
 
gp_Ax2 myStartPosition
 Owning object transformation for start. It is used internally.
 
gp_Pnt myStartPick
 Start position of manipulator.
 
double myPrevState
 3d point corresponding to start mouse pick.
 
occ::handle< Prs3d_ShadingAspectmyHighlightAspect
 Previous value of angle during rotation.
 
occ::handle< Prs3d_ShadingAspectmyDraggerHighlight
 Aspect used to color sector part when it's selected.
 
- Protected Attributes inherited from AIS_InteractiveObject
AIS_InteractiveContextmyCTXPtr
 pointer to Interactive Context, where object is currently displayed;
 
occ::handle< Standard_TransientmyOwner
 application-specific owner object
 
- Protected Attributes inherited from SelectMgr_SelectableObject
NCollection_Sequence< occ::handle< SelectMgr_Selection > > myselections
 list of selections
 
occ::handle< Prs3d_PresentationmySelectionPrs
 optional presentation for highlighting selected object
 
occ::handle< Prs3d_PresentationmyHilightPrs
 optional presentation for highlighting detected object
 
int myGlobalSelMode
 global selection mode
 
bool myAutoHilight
 auto-highlighting flag defining
 
- Protected Attributes inherited from PrsMgr_PresentableObject
This method is deprecated bool theToClearOther
 pointer to the parent object
 
PrsMgr_PresentableObjectmyParent
 pointer to the parent object
 
NCollection_Sequence< occ::handle< PrsMgr_Presentation > > myPresentations
 list of presentations
 
occ::handle< Graphic3d_ViewAffinitymyViewAffinity
 view affinity mask
 
occ::handle< Graphic3d_SequenceOfHClipPlanemyClipPlanes
 sequence of object-specific clipping planes
 
occ::handle< Prs3d_DrawermyDrawer
 main presentation attributes
 
occ::handle< Prs3d_DrawermyHilightDrawer
 (optional) custom presentation attributes for highlighting selected object
 
occ::handle< Prs3d_DrawermyDynHilightDrawer
 (optional) custom presentation attributes for highlighting detected object
 
occ::handle< Graphic3d_TransformPersmyTransformPersistence
 transformation persistence
 
occ::handle< TopLoc_Datum3DmyLocalTransformation
 local transformation relative to parent object
 
occ::handle< TopLoc_Datum3DmyTransformation
 absolute transformation of this object (combined parents + local transformations)
 
occ::handle< TopLoc_Datum3DmyCombinedParentTransform
 transformation of parent object (combined for all parents)
 
NCollection_List< occ::handle< PrsMgr_PresentableObject > > myChildren
 list of children
 
gp_GTrsf myInvTransformation
 inversion of absolute transformation (combined parents + local transformations)
 
PrsMgr_TypeOfPresentation3d myTypeOfPresentation3d
 presentation type
 
PrsMgr_DisplayStatus myDisplayStatus
 presentation display status
 
Aspect_TypeOfFacingModel myCurrentFacingModel
 current facing model
 
float myOwnWidth
 custom width value
 
bool hasOwnColor
 own color flag
 
bool hasOwnMaterial
 own material flag
 
bool myInfiniteState
 infinite flag
 
bool myIsMutable
 mutable flag
 
bool myHasOwnPresentations
 flag indicating if object should have own presentations
 
bool myToPropagateVisualState
 flag indicating if visual state (display/erase/color) should be propagated to all children
 

Setters for parameters

enum  ManipulatorSkin { ManipulatorSkin_Shaded , ManipulatorSkin_Flat }
 
ManipulatorSkin SkinMode () const
 
void SetSkinMode (const ManipulatorSkin theSkinMode)
 Sets skin mode for the manipulator.
 
AIS_ManipulatorMode ActiveMode () const
 
int ActiveAxisIndex () const
 
const gp_Ax2Position () const
 
void SetPosition (const gp_Ax2 &thePosition)
 Sets position of the manipulator object.
 
float Size () const
 
void SetSize (const float theSideLength)
 Sets size (length of side of the manipulator cubic bounding box.
 
void SetGap (const float theValue)
 Sets gaps between translator, scaler and rotator sub-presentations.
 
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.
 
BehaviorOnTransformChangeTransformBehavior ()
 
const BehaviorOnTransformTransformBehavior () const
 

Presentation computation

Fills presentation.

Note
Manipulator presentation does not use display mode and for all modes has the same presentation.
void Compute (const occ::handle< PrsMgr_PresentationManager > &thePrsMgr, const occ::handle< Prs3d_Presentation > &thePrs, const int theMode=0) override
 Computes selection sensitive zones (triangulation) for manipulator.
 
void ComputeSelection (const occ::handle< SelectMgr_Selection > &theSelection, const int theMode) override
 Computes selection sensitive zones (triangulation) for manipulator.
 
bool IsAutoHilight () const override
 Disables auto highlighting to use HilightSelected() and HilightOwnerWithColor() overridden methods.
 
void ClearSelected () override
 Method which clear all selected owners belonging to this selectable object (for fast presentation draw).
 
void HilightSelected (const occ::handle< PrsMgr_PresentationManager > &thePM, const NCollection_Sequence< occ::handle< SelectMgr_EntityOwner > > &theSeq) override
 Method which draws selected owners (for fast presentation draw).
 
void HilightOwnerWithColor (const occ::handle< PrsMgr_PresentationManager > &thePM, const occ::handle< Prs3d_Drawer > &theStyle, const occ::handle< SelectMgr_EntityOwner > &theOwner) override
 Method which hilight an owner belonging to this selectable object (for fast presentation draw).
 
void init ()
 Computes selection sensitive zones (triangulation) for manipulator.
 
void updateTransformation ()
 Computes selection sensitive zones (triangulation) for manipulator.
 
occ::handle< Prs3d_PresentationgetHighlightPresentation (const occ::handle< SelectMgr_EntityOwner > &theOwner) const
 Computes selection sensitive zones (triangulation) for manipulator.
 
occ::handle< Graphic3d_GroupgetGroup (const int theIndex, const AIS_ManipulatorMode theMode) const
 Computes selection sensitive zones (triangulation) for manipulator.
 
void attachToPoint (const gp_Pnt &thePoint)
 Computes selection sensitive zones (triangulation) for manipulator.
 
void attachToBox (const Bnd_Box &theBox)
 Computes selection sensitive zones (triangulation) for manipulator.
 
void adjustSize (const Bnd_Box &theBox)
 Computes selection sensitive zones (triangulation) for manipulator.
 
void setTransformPersistence (const occ::handle< Graphic3d_TransformPers > &theTrsfPers)
 Computes selection sensitive zones (triangulation) for manipulator.
 
void setLocalTransformation (const occ::handle< TopLoc_Datum3D > &theTrsf) override
 Redefines local transformation management method to inform user of improper use.
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const charget_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 
- Protected Member Functions inherited from AIS_InteractiveObject
 AIS_InteractiveObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 The TypeOfPresention3d means that the interactive object may have a presentation dependent on the view of Display.
 
void SetDisplayStatus (PrsMgr_DisplayStatus theStatus)
 Set presentation display status.
 
- Protected Member Functions inherited from SelectMgr_SelectableObject
 SelectMgr_SelectableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 Protected empty constructor.
 
void setGlobalSelMode (const int theMode)
 Override global selection mode.
 
void UpdateClipping () override
 Update clipping planes state.
 
virtual void updateSelection (const int theMode)
 Sets update status FULL to selections of the object. Must be used as the only method of UpdateSelection from outer classes to prevent BVH structures from being outdated.
 
- Protected Member Functions inherited from PrsMgr_PresentableObject
called instead void Update (bool theToIncludeHidden=false)
 Recomputes all presentations of the object.
 
This method is deprecated SetToUpdate ()+UpdatePresentations() should be called instead") 1 void Update(int theMode
 Recomputes the presentation in the given mode.
 
 PrsMgr_PresentableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 Destructor.
 
 ~PrsMgr_PresentableObject () override
 Destructor.
 
virtual void Fill (const occ::handle< PrsMgr_PresentationManager > &thePrsMgr, const occ::handle< PrsMgr_Presentation > &thePrs, const int theMode)
 Fills the given 3D view presentation for specified display mode using Compute() method. In addition, configures other properties of presentation (transformation, clipping planes).
 
virtual void computeHLR (const occ::handle< Graphic3d_Camera > &theProjector, const occ::handle< TopLoc_Datum3D > &theTrsf, const occ::handle< Prs3d_Presentation > &thePrs)
 Calculates hidden line removal presentation for specific camera position. Each of the views in the viewer and every modification such as rotation, for example, entails recalculation. Default implementation throws Standard_NotImplemented exception Warning! The transformation must be applied to the object before computation.
 
bool UpdatePresentations (bool theToIncludeHidden=false)
 Recomputes invalidated presentations of the object.
 
virtual void SetCombinedParentTransform (const occ::handle< TopLoc_Datum3D > &theTrsf)
 Sets myCombinedParentTransform to theTransformation. Thus object receives transformation from parent node and able to derive its own.
 
void recomputeComputed () const
 Recompute computed (HLR) presentations (when view is in computed mode).
 
void replaceAspects (const NCollection_DataMap< occ::handle< Graphic3d_Aspects >, occ::handle< Graphic3d_Aspects > > &theMap)
 Replace aspects of existing (computed) presentation groups, so that the new aspects can be applied without recomputing presentation. It is NOT recommended approach, because user has to fill such map and then search for each occurrence in computed groups. The recommended approach is computing presentation with necessary customized aspects, and then modify them directly followed by SynchronizeAspects() call.
 
- Static Protected Member Functions inherited from PrsMgr_PresentableObject
static const gp_TrsfgetIdentityTrsf ()
 Return the identity transformation.
 

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:

Member Enumeration Documentation

◆ ManipulatorSkin

Returns
current manipulator skin mode.
Enumerator
ManipulatorSkin_Shaded 
ManipulatorSkin_Flat 

Constructor & Destructor Documentation

◆ AIS_Manipulator() [1/2]

AIS_Manipulator::AIS_Manipulator ( )

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

◆ AIS_Manipulator() [2/2]

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.

Member Function Documentation

◆ ActiveAxisIndex()

int AIS_Manipulator::ActiveAxisIndex ( ) const
inline
Returns
current manipulator skin mode.

◆ ActiveMode()

AIS_ManipulatorMode AIS_Manipulator::ActiveMode ( ) const
inline
Returns
current manipulator skin mode.

◆ adjustSize()

void AIS_Manipulator::adjustSize ( const Bnd_Box & theBox)
protected

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

◆ Attach() [1/2]

void AIS_Manipulator::Attach ( const occ::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.

◆ Attach() [2/2]

void AIS_Manipulator::Attach ( const occ::handle< NCollection_HSequence< occ::handle< AIS_InteractiveObject > > > & 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.

◆ attachToBox()

void AIS_Manipulator::attachToBox ( const Bnd_Box & theBox)
protected

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

◆ attachToPoint()

void AIS_Manipulator::attachToPoint ( const gp_Pnt & thePoint)
protected

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

◆ ChangeTransformBehavior()

BehaviorOnTransform & AIS_Manipulator::ChangeTransformBehavior ( )
inline
Returns
behavior settings for transformation action of the manipulator.

◆ ClearSelected()

void AIS_Manipulator::ClearSelected ( )
overridevirtual

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

Reimplemented from SelectMgr_SelectableObject.

◆ Compute()

void AIS_Manipulator::Compute ( const occ::handle< PrsMgr_PresentationManager > & thePrsMgr,
const occ::handle< Prs3d_Presentation > & thePrs,
const int theMode = 0 )
overridevirtual

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

Implements PrsMgr_PresentableObject.

◆ ComputeSelection()

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

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

Implements SelectMgr_SelectableObject.

◆ DeactivateCurrentMode()

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()

◆ Detach()

void AIS_Manipulator::Detach ( )

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

◆ EnableMode()

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.

◆ getGroup()

occ::handle< Graphic3d_Group > AIS_Manipulator::getGroup ( const int theIndex,
const AIS_ManipulatorMode theMode ) const
protected

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

◆ getHighlightPresentation()

occ::handle< Prs3d_Presentation > AIS_Manipulator::getHighlightPresentation ( const occ::handle< SelectMgr_EntityOwner > & theOwner) const
protected

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

◆ HasActiveMode()

bool AIS_Manipulator::HasActiveMode ( ) const
inline
Returns
true if some part of manipulator is selected (transformation mode is active, and owning object can be transformed).

◆ HasActiveTransformation()

bool AIS_Manipulator::HasActiveTransformation ( )
inline

◆ HilightOwnerWithColor()

void AIS_Manipulator::HilightOwnerWithColor ( const occ::handle< PrsMgr_PresentationManager > & thePM,
const occ::handle< Prs3d_Drawer > & theStyle,
const occ::handle< SelectMgr_EntityOwner > & theOwner )
overridevirtual

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

Reimplemented from SelectMgr_SelectableObject.

◆ HilightSelected()

void AIS_Manipulator::HilightSelected ( const occ::handle< PrsMgr_PresentationManager > & thePM,
const NCollection_Sequence< occ::handle< SelectMgr_EntityOwner > > & theSeq )
overridevirtual

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

Reimplemented from SelectMgr_SelectableObject.

◆ init()

void AIS_Manipulator::init ( )
protected

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

◆ IsAttached()

bool AIS_Manipulator::IsAttached ( ) const
inline
Returns
true if manipulator is attached to some interactive object (has owning object).

◆ IsAutoHilight()

bool AIS_Manipulator::IsAutoHilight ( ) const
inlineoverridevirtual

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

Reimplemented from SelectMgr_SelectableObject.

◆ IsModeActivationOnDetection()

bool AIS_Manipulator::IsModeActivationOnDetection ( ) const
inline
Returns
true if manual mode activation is enabled.

◆ Object() [1/2]

occ::handle< AIS_InteractiveObject > AIS_Manipulator::Object ( ) const
Returns
the first (leading) object of the owning objects.

◆ Object() [2/2]

occ::handle< AIS_InteractiveObject > AIS_Manipulator::Object ( const int theIndex) const
Returns
one of the owning objects.
Warning
raises program error if theIndex is more than owning objects count or less than 1.

◆ Objects()

occ::handle< NCollection_HSequence< occ::handle< AIS_InteractiveObject > > > AIS_Manipulator::Objects ( ) const
Returns
all owning objects.

◆ ObjectTransformation()

bool AIS_Manipulator::ObjectTransformation ( const int theX,
const int theY,
const occ::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 transformation for modes.

Returns
transformation of parent object.

◆ Position()

const gp_Ax2 & AIS_Manipulator::Position ( ) const
inline
Returns
poition of manipulator interactive object.

◆ ProcessDragging()

bool AIS_Manipulator::ProcessDragging ( const occ::handle< AIS_InteractiveContext > & theCtx,
const occ::handle< V3d_View > & theView,
const occ::handle< SelectMgr_EntityOwner > & theOwner,
const NCollection_Vec2< int > & theDragFrom,
const NCollection_Vec2< int > & theDragTo,
const AIS_DragAction theAction )
overridevirtual

Drag object in the viewer.

Parameters
[in]theCtxinteractive context
[in]theViewactive View
[in]theOwnerthe owner of detected entity
[in]theDragFromdrag start point
[in]theDragTodrag end point
[in]theActiondrag action
Returns
FALSE if object rejects dragging action (e.g. AIS_DragAction_Start)

Reimplemented from AIS_InteractiveObject.

◆ RecomputeSelection()

void AIS_Manipulator::RecomputeSelection ( const AIS_ManipulatorMode theMode)

Recomputes sensitive primitives for the given selection mode.

Parameters
theModeselection mode to recompute sensitive primitives

◆ RecomputeTransformation()

void AIS_Manipulator::RecomputeTransformation ( const occ::handle< Graphic3d_Camera > & theCamera)
overridevirtual

Apply camera transformation to flat skin manipulator.

Reimplemented from PrsMgr_PresentableObject.

◆ SetGap()

void AIS_Manipulator::SetGap ( const float theValue)

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

◆ setLocalTransformation()

void AIS_Manipulator::setLocalTransformation ( const occ::handle< TopLoc_Datum3D > & theTrsf)
overrideprotectedvirtual

Redefines local transformation management method to inform user of improper 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.

◆ SetModeActivationOnDetection()

void AIS_Manipulator::SetModeActivationOnDetection ( const bool 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.

◆ SetPart() [1/2]

void AIS_Manipulator::SetPart ( const AIS_ManipulatorMode theMode,
const bool theIsEnabled )

Disable or enable visual parts for translation, rotation or scaling for ALL axes. 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.

◆ SetPart() [2/2]

void AIS_Manipulator::SetPart ( const int theAxisIndex,
const AIS_ManipulatorMode theMode,
const bool 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.

◆ SetPosition()

void AIS_Manipulator::SetPosition ( const gp_Ax2 & thePosition)

Sets position of the manipulator object.

◆ SetSize()

void AIS_Manipulator::SetSize ( const float theSideLength)

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

◆ SetSkinMode()

void AIS_Manipulator::SetSkinMode ( const ManipulatorSkin theSkinMode)

Sets skin mode for the manipulator.

◆ SetTransformBehavior()

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.

◆ setTransformPersistence()

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

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

◆ SetTransformPersistence()

void AIS_Manipulator::SetTransformPersistence ( const occ::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 overridden 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.

◆ SetZoomPersistence()

void AIS_Manipulator::SetZoomPersistence ( const bool theToEnable)

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

◆ Size()

float AIS_Manipulator::Size ( ) const
inline
Returns
current manipulator skin mode.

◆ SkinMode()

ManipulatorSkin AIS_Manipulator::SkinMode ( ) const
inline
Returns
current manipulator skin mode.

◆ StartTransform()

void AIS_Manipulator::StartTransform ( const int theX,
const int theY,
const occ::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 int, const int) is used, initial data is set automatically, and it is reset on DeactivateCurrentMode call if it is not reset yet.

◆ StartTransformation() [1/2]

gp_Trsf AIS_Manipulator::StartTransformation ( ) const
inline

◆ StartTransformation() [2/2]

gp_Trsf AIS_Manipulator::StartTransformation ( int theIndex) const
inline

◆ StopTransform()

void AIS_Manipulator::StopTransform ( const bool theToApply = true)

Reset start (reference) transformation.

Parameters
[in]theToApplyoption 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.

◆ Transform() [1/2]

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).

◆ Transform() [2/2]

gp_Trsf AIS_Manipulator::Transform ( const int theX,
const int theY,
const occ::handle< V3d_View > & theView )

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

◆ TransformBehavior()

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

◆ updateTransformation()

void AIS_Manipulator::updateTransformation ( )
protected

Computes selection sensitive zones (triangulation) for manipulator.

Parameters
[in]theNodeSelection mode that is treated as transformation mode.

◆ ZoomPersistence()

bool AIS_Manipulator::ZoomPersistence ( ) const
inline

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

Field Documentation

◆ myAxes

Axis AIS_Manipulator::myAxes[3]
protected

Tree axes of the manipulator.

◆ myBehaviorOnTransform

BehaviorOnTransform AIS_Manipulator::myBehaviorOnTransform
protected

Behavior settings applied on manipulator when transforming an object.

◆ myCenter

Sphere AIS_Manipulator::myCenter
protected

Visual part displaying the center sphere of the manipulator.

◆ myCircle

Disk AIS_Manipulator::myCircle
protected

Outer circle.

◆ myCircleGroup

occ::handle<Graphic3d_Group> AIS_Manipulator::myCircleGroup
protected

Tree axes of the manipulator.

◆ myCurrentIndex

int AIS_Manipulator::myCurrentIndex
protected

Index of active axis.

◆ myCurrentMode

AIS_ManipulatorMode AIS_Manipulator::myCurrentMode
protected

Name of active manipulation mode.

◆ myDraggerHighlight

occ::handle<Prs3d_ShadingAspect> AIS_Manipulator::myDraggerHighlight
protected

Aspect used to color sector part when it's selected.

◆ myHasStartedTransformation

bool AIS_Manipulator::myHasStartedTransformation
protected

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

◆ myHighlightAspect

occ::handle<Prs3d_ShadingAspect> AIS_Manipulator::myHighlightAspect
protected

Previous value of angle during rotation.

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

◆ myIsActivationOnDetection

bool AIS_Manipulator::myIsActivationOnDetection
protected

Manual activation of modes (not on parts selection).

◆ myIsZoomPersistentMode

bool AIS_Manipulator::myIsZoomPersistentMode
protected

Zoom persistence mode activation.

◆ myPosition

gp_Ax2 AIS_Manipulator::myPosition
protected

Position of the manipulator object. it displays its location and position of its axes.

◆ myPrevState

double AIS_Manipulator::myPrevState
protected

3d point corresponding to start mouse pick.

◆ mySector

Disk AIS_Manipulator::mySector
protected

Sector indicating the rotation angle.

◆ mySectorGroup

occ::handle<Graphic3d_Group> AIS_Manipulator::mySectorGroup
protected

Tree axes of the manipulator.

◆ mySkinMode

ManipulatorSkin AIS_Manipulator::mySkinMode
protected

Name of active skin mode.

◆ myStartPick

gp_Pnt AIS_Manipulator::myStartPick
protected

Start position of manipulator.

◆ myStartPosition

gp_Ax2 AIS_Manipulator::myStartPosition
protected

Owning object transformation for start. It is used internally.

◆ myStartTrsfs

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: