Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions
Graphic3d_TransformPersScaledAbove Class Reference

Transformation Zoom persistence with the above boundary of scale. This persistence works only when the camera scale value is below the scale value of this persistence. Otherwise, no persistence is applied. More...

#include <Graphic3d_TransformPersScaledAbove.hxx>

Inheritance diagram for Graphic3d_TransformPersScaledAbove:
Inheritance graph
[legend]

Public Member Functions

 Graphic3d_TransformPersScaledAbove (const double theScale, const gp_Pnt &thePnt)
 Create a Zoom transformation persistence with an anchor 3D point and a scale value.
 
 ~Graphic3d_TransformPersScaledAbove () override=default
 Destructor.
 
double persistentScale (const occ::handle< Graphic3d_Camera > &theCamera, const int theViewportWidth, const int theViewportHeight) const override
 Find scale value based on the camera position and view dimensions If the camera scale value less than the persistence scale, zoom persistence is not applied.
 
- Public Member Functions inherited from Graphic3d_TransformPers
 Graphic3d_TransformPers (const Graphic3d_TransModeFlags theMode)
 Set transformation persistence.
 
 Graphic3d_TransformPers (const Graphic3d_TransModeFlags theMode, const gp_Pnt &thePnt)
 Set Zoom/Rotate transformation persistence with an anchor 3D point. Anchor point defines the origin of Local Coordinate system within World Coordinate system. Throws an exception if persistence mode is not Graphic3d_TMF_ZoomPers, Graphic3d_TMF_ZoomRotatePers or Graphic3d_TMF_RotatePers.
 
 Graphic3d_TransformPers (const Graphic3d_TransModeFlags theMode, const Aspect_TypeOfTriedronPosition theCorner, const NCollection_Vec2< int > &theOffset=NCollection_Vec2< int >(0, 0))
 Set 2d/trihedron transformation persistence with a corner and 2D offset. 2D offset defines the origin of Local Coordinate system as projection of 2D point on screen plane into World Coordinate system. Throws an exception if persistence mode is not Graphic3d_TMF_TriedronPers or Graphic3d_TMF_2d. The offset is a positive displacement from the view corner in pixels.
 
bool IsZoomOrRotate () const
 Return true for Graphic3d_TMF_ZoomPers, Graphic3d_TMF_ZoomRotatePers or Graphic3d_TMF_RotatePers modes.
 
bool IsTrihedronOr2d () const
 Return true for Graphic3d_TMF_TriedronPers and Graphic3d_TMF_2d modes.
 
bool IsOrthoPers () const
 Return true for Graphic3d_TMF_OrthoPers mode.
 
bool IsAxial () const
 Return true for Graphic3d_TMF_AxialScalePers modes.
 
Graphic3d_TransModeFlags Mode () const
 Transformation persistence mode flags.
 
Graphic3d_TransModeFlags Flags () const
 Transformation persistence mode flags.
 
void SetPersistence (const Graphic3d_TransModeFlags theMode, const gp_Pnt &thePnt)
 Set Zoom/Rotate transformation persistence with an anchor 3D point. Throws an exception if persistence mode is not Graphic3d_TMF_ZoomPers, Graphic3d_TMF_ZoomRotatePers or Graphic3d_TMF_RotatePers.
 
void SetPersistence (const Graphic3d_TransModeFlags theMode, const Aspect_TypeOfTriedronPosition theCorner, const NCollection_Vec2< int > &theOffset)
 Set 2d/trihedron transformation persistence with a corner and 2D offset. Throws an exception if persistence mode is not Graphic3d_TMF_TriedronPers or Graphic3d_TMF_2d.
 
gp_Pnt AnchorPoint () const
 Return the anchor point for zoom/rotate transformation persistence.
 
void SetAnchorPoint (const gp_Pnt &thePnt)
 Set the anchor point for zoom/rotate transformation persistence.
 
Aspect_TypeOfTriedronPosition Corner2d () const
 Return the corner for 2d/trihedron transformation persistence.
 
void SetCorner2d (const Aspect_TypeOfTriedronPosition thePos)
 Set the corner for 2d/trihedron transformation persistence.
 
NCollection_Vec2< intOffset2d () const
 Return the offset from the corner for 2d/trihedron transformation persistence.
 
void SetOffset2d (const NCollection_Vec2< int > &theOffset)
 Set the offset from the corner for 2d/trihedron transformation persistence.
 
virtual NCollection_Mat3< doublepersistentRotationMatrix (const occ::handle< Graphic3d_Camera > &theCamera, const int theViewportWidth, const int theViewportHeight) const
 Create orientation matrix based on camera and view dimensions. Default implementation locks rotation by nullifying rotation component. Camera and view dimensions are not used, by default.
 
template<class T >
void Apply (const occ::handle< Graphic3d_Camera > &theCamera, const NCollection_Mat4< T > &theProjection, const NCollection_Mat4< T > &theWorldView, const int theViewportWidth, const int theViewportHeight, Bnd_Box &theBoundingBox) const
 Apply transformation to bounding box of presentation.
 
template<class T >
void Apply (const occ::handle< Graphic3d_Camera > &theCamera, const NCollection_Mat4< T > &theProjection, const NCollection_Mat4< T > &theWorldView, const int theViewportWidth, const int theViewportHeight, BVH_Box< T, 3 > &theBoundingBox) const
 Apply transformation to bounding box of presentation.
 
template<class T >
NCollection_Mat4< T > Compute (const occ::handle< Graphic3d_Camera > &theCamera, const NCollection_Mat4< T > &theProjection, const NCollection_Mat4< T > &theWorldView, const int theViewportWidth, const int theViewportHeight, const bool theToApplyProjPers=false) const
 Compute transformation. Computed matrix can be applied to model world transformation of an object to implement effect of transformation persistence.
 
template<class T >
void Apply (const occ::handle< Graphic3d_Camera > &theCamera, const NCollection_Mat4< T > &theProjection, NCollection_Mat4< T > &theWorldView, const int theViewportWidth, const int theViewportHeight, const gp_Pnt *theAnchor=nullptr, const bool theToApplyProjPers=true) const
 Apply transformation persistence on specified matrices.
 
virtual NCollection_Mat4< doubleComputeApply (occ::handle< Graphic3d_Camera > &theCamera, const int theViewportWidth, const int theViewportHeight, const gp_Pnt *theAnchor=nullptr) const
 Perform computations for applying transformation persistence on specified matrices.
 
virtual void DumpJson (Standard_OStream &theOStream, int theDepth=-1) const
 Dumps the content of me into the stream.
 
- 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.
 

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 Graphic3d_TransformPers
static bool IsZoomOrRotate (Graphic3d_TransModeFlags theMode)
 Return true if specified mode is zoom/rotate transformation persistence.
 
static bool IsTrihedronOr2d (Graphic3d_TransModeFlags theMode)
 Return true if specified mode is 2d/trihedron transformation persistence.
 
static bool IsOrthoPers (Graphic3d_TransModeFlags theMode)
 Return true if specified mode is orthographic projection transformation persistence.
 
static bool IsAxial (Graphic3d_TransModeFlags theMode)
 Return true if specified mode is axial transformation persistence.
 
- 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.
 

Detailed Description

Transformation Zoom persistence with the above boundary of scale. This persistence works only when the camera scale value is below the scale value of this persistence. Otherwise, no persistence is applied.

Constructor & Destructor Documentation

◆ Graphic3d_TransformPersScaledAbove()

Graphic3d_TransformPersScaledAbove::Graphic3d_TransformPersScaledAbove ( const double theScale,
const gp_Pnt & thePnt )

Create a Zoom transformation persistence with an anchor 3D point and a scale value.

◆ ~Graphic3d_TransformPersScaledAbove()

Graphic3d_TransformPersScaledAbove::~Graphic3d_TransformPersScaledAbove ( )
overridedefault

Destructor.

Member Function Documentation

◆ persistentScale()

double Graphic3d_TransformPersScaledAbove::persistentScale ( const occ::handle< Graphic3d_Camera > & theCamera,
const int theViewportWidth,
const int theViewportHeight ) const
overridevirtual

Find scale value based on the camera position and view dimensions If the camera scale value less than the persistence scale, zoom persistence is not applied.

Parameters
[in]theCameracamera definition
[in]theViewportWidththe width of viewport.
[in]theViewportHeightthe height of viewport.

Reimplemented from Graphic3d_TransformPers.


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