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

The class provides default class which helps to represent node displacements by deformed mesh This class has an internal handle to canonical non-deformed mesh data source and map of displacement vectors. The displacement can be magnified to useful size. All methods is implemented with calling the corresponding methods of non-deformed data source. More...

#include <MeshVS_DeformedDataSource.hxx>

Inheritance diagram for MeshVS_DeformedDataSource:
Inheritance graph
[legend]

Public Member Functions

 MeshVS_DeformedDataSource (const occ::handle< MeshVS_DataSource > &theNonDeformDS, const double theMagnify)
 Constructor theNonDeformDS is canonical non-deformed data source, by which we are able to calculate deformed mesh geometry theMagnify is coefficient of displacement magnify.
 
bool GetGeom (const int ID, const bool IsElement, NCollection_Array1< double > &Coords, int &NbNodes, MeshVS_EntityType &Type) const override
 Returns geometry information about node or element ID is the numerical identificator of node or element IsElement indicates this ID describe node ( if false ) or element ( if true ) Coords is an array of coordinates of node(s). For node it is only 3 numbers: X, Y, Z in the strict order For element it is 3*n numbers, where n is number of this element vertices The order is strict also: X1, Y1, Z1, X2,...., where Xi, Yi, Zi are coordinates of vertices NbNodes is number of nodes. It is recommended this parameter to be set to 1 for node. Type is type of node or element (from enumeration). It is recommended this parameter to be set to MeshVS_ET_Node for node.
 
bool GetGeomType (const int ID, const bool IsElement, MeshVS_EntityType &Type) const override
 This method is similar to GetGeom, but returns only element or node type.
 
bool Get3DGeom (const int ID, int &NbNodes, occ::handle< NCollection_HArray1< NCollection_Sequence< int > > > &Data) const override
 This method returns topology information about 3D-element Returns false if element with ID isn't 3D or because other troubles.
 
voidGetAddr (const int ID, const bool IsElement) const override
 This method returns pointer which represents element or node data structure. This address will be saved in MeshVS_MeshEntityOwner, so that you can access to data structure fast by the method Owner(). In the redefined method you can return NULL. ID is the numerical identificator of node or element IsElement indicates this ID describe node ( if false ) or element ( if true )
 
bool GetNodesByElement (const int ID, NCollection_Array1< int > &NodeIDs, int &NbNodes) const override
 This method returns information about nodes this element consist of. ID is the numerical identificator of element. NodeIDs is the output array of nodes IDs in correct order, the same as coordinates returned by GetGeom(). NbNodes is number of nodes (number of items set in NodeIDs). Returns False if element does not exist.
 
const TColStd_PackedMapOfIntegerGetAllNodes () const override
 This method returns map of all nodes the object consist of.
 
const TColStd_PackedMapOfIntegerGetAllElements () const override
 This method returns map of all elements the object consist of.
 
const NCollection_DataMap< int, gp_Vec > & GetVectors () const
 This method returns map of nodal displacement vectors.
 
void SetVectors (const NCollection_DataMap< int, gp_Vec > &Map)
 This method sets map of nodal displacement vectors (Map).
 
bool GetVector (const int ID, gp_Vec &Vect) const
 This method returns vector ( Vect ) assigned to node number ID.
 
void SetVector (const int ID, const gp_Vec &Vect)
 This method sets vector ( Vect ) assigned to node number ID.
 
void SetNonDeformedDataSource (const occ::handle< MeshVS_DataSource > &theDS)
 
occ::handle< MeshVS_DataSourceGetNonDeformedDataSource () const
 With this methods you can read and change internal canonical data source.
 
void SetMagnify (const double theMagnify)
 
double GetMagnify () const
 With this methods you can read and change magnify coefficient of nodal displacements.
 
- Public Member Functions inherited from MeshVS_DataSource
virtual bool GetNormal (const int Id, const int Max, double &nx, double &ny, double &nz) const
 This method calculates normal of face, which is using for correct reflection presentation. There is default method, for advance reflection this method can be redefined. Id is the numerical identificator of only element! Max is maximal number of nodes an element can consist of nx, ny, nz are values whose represent coordinates of normal (will be returned) In the redefined method you can return normal with length more then 1, but in this case the appearance of element will be more bright than usual. For ordinary brightness you must return normal with length 1.
 
virtual bool GetNodeNormal (const int ranknode, const int ElementId, double &nx, double &ny, double &nz) const
 This method return normal of node ranknode of face Id, which is using for smooth shading presentation. Returns false if normal isn't defined.
 
virtual bool GetNormalsByElement (const int Id, const bool IsNodal, const int MaxNodes, occ::handle< NCollection_HArray1< double > > &Normals) const
 This method puts components of normal vectors at each node of a mesh face (at each face of a mesh volume) into the output array. Returns false if some problem was detected during calculation of normals. Id is an identifier of the mesh element. IsNodal, when true, means that normals at mesh element nodes are needed. If nodal normals are not available, or IsNodal is false, or the mesh element is a volume, then the output array contents depend on the element type: face: a normal calculated by GetNormal() is duplicated for each node of the face; volume: normals to all faces of the volume are computed (not for each node!). MaxNodes is maximal number of nodes an element can consist of. Normals contains the result.
 
virtual void GetAllGroups (TColStd_PackedMapOfInteger &Ids) const
 This method returns map of all groups the object contains.
 
virtual bool GetGroup (const int Id, MeshVS_EntityType &Type, TColStd_PackedMapOfInteger &Ids) const
 This method returns map of all group elements.
 
virtual voidGetGroupAddr (const int ID) const
 This method returns pointer which represents group data structure. This address will be saved in MeshVS_MeshOwner, so that you can access to data structure fast by the method Owner(). In the redefined method you can return NULL. ID is the numerical identificator of group.
 
virtual bool IsAdvancedSelectionEnabled () const
 Returns True if advanced mesh selection is enabled. Default implementation returns False. It should be redefined to return True for advanced mesh selection activation.
 
virtual Bnd_Box GetBoundingBox () const
 Returns the bounding box of the whole mesh. It is used in advanced selection mode to define roughly the sensitive area of the mesh. It can be redefined to get access to a box computed in advance.
 
virtual bool GetDetectedEntities (const occ::handle< MeshVS_Mesh > &Prs, const double X, const double Y, const double aTol, occ::handle< TColStd_HPackedMapOfInteger > &Nodes, occ::handle< TColStd_HPackedMapOfInteger > &Elements, double &DMin)
 Returns maps of entities (nodes and elements) detected by mouse click at the point (X,Y) on the current view plane, with the tolerance aTol. DMin - is out argument should return actual detection tolerance. Returns True if something is detected. It should be redefined if the advanced mesh selection is activated. Default implementation returns False.
 
virtual bool GetDetectedEntities (const occ::handle< MeshVS_Mesh > &Prs, const double XMin, const double YMin, const double XMax, const double YMax, const double aTol, occ::handle< TColStd_HPackedMapOfInteger > &Nodes, occ::handle< TColStd_HPackedMapOfInteger > &Elements)
 Returns maps of entities (nodes and elements) detected by mouse selection with rectangular box (XMin, YMin, XMax, YMax) on the current view plane, with the tolerance aTol. Returns True if something is detected. It should be redefined if the advanced mesh selection is activated. Default implementation returns False.
 
virtual bool GetDetectedEntities (const occ::handle< MeshVS_Mesh > &Prs, const NCollection_Array1< gp_Pnt2d > &Polyline, const Bnd_Box2d &aBox, const double aTol, occ::handle< TColStd_HPackedMapOfInteger > &Nodes, occ::handle< TColStd_HPackedMapOfInteger > &Elements)
 Returns maps of entities (nodes and elements) detected by mouse selection with the polyline <Polyline> on the current view plane, with the tolerance aTol. Returns True if something is detected. It should be redefined if the advanced mesh selection is activated. Default implementation returns False.
 
virtual bool GetDetectedEntities (const occ::handle< MeshVS_Mesh > &Prs, occ::handle< TColStd_HPackedMapOfInteger > &Nodes, occ::handle< TColStd_HPackedMapOfInteger > &Elements)
 Filter out the maps of mesh entities so as to keep only the entities that are allowed to be selected according to the current context. Returns True if any of the maps has been changed. It should be redefined if the advanced mesh selection is activated. Default implementation returns False.
 
- 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 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

The class provides default class which helps to represent node displacements by deformed mesh This class has an internal handle to canonical non-deformed mesh data source and map of displacement vectors. The displacement can be magnified to useful size. All methods is implemented with calling the corresponding methods of non-deformed data source.

Constructor & Destructor Documentation

◆ MeshVS_DeformedDataSource()

MeshVS_DeformedDataSource::MeshVS_DeformedDataSource ( const occ::handle< MeshVS_DataSource > & theNonDeformDS,
const double theMagnify )

Constructor theNonDeformDS is canonical non-deformed data source, by which we are able to calculate deformed mesh geometry theMagnify is coefficient of displacement magnify.

Member Function Documentation

◆ Get3DGeom()

bool MeshVS_DeformedDataSource::Get3DGeom ( const int ID,
int & NbNodes,
occ::handle< NCollection_HArray1< NCollection_Sequence< int > > > & Data ) const
overridevirtual

This method returns topology information about 3D-element Returns false if element with ID isn't 3D or because other troubles.

Reimplemented from MeshVS_DataSource.

◆ GetAddr()

void * MeshVS_DeformedDataSource::GetAddr ( const int ID,
const bool IsElement ) const
overridevirtual

This method returns pointer which represents element or node data structure. This address will be saved in MeshVS_MeshEntityOwner, so that you can access to data structure fast by the method Owner(). In the redefined method you can return NULL. ID is the numerical identificator of node or element IsElement indicates this ID describe node ( if false ) or element ( if true )

Implements MeshVS_DataSource.

◆ GetAllElements()

const TColStd_PackedMapOfInteger & MeshVS_DeformedDataSource::GetAllElements ( ) const
overridevirtual

This method returns map of all elements the object consist of.

Implements MeshVS_DataSource.

◆ GetAllNodes()

const TColStd_PackedMapOfInteger & MeshVS_DeformedDataSource::GetAllNodes ( ) const
overridevirtual

This method returns map of all nodes the object consist of.

Implements MeshVS_DataSource.

◆ GetGeom()

bool MeshVS_DeformedDataSource::GetGeom ( const int ID,
const bool IsElement,
NCollection_Array1< double > & Coords,
int & NbNodes,
MeshVS_EntityType & Type ) const
overridevirtual

Returns geometry information about node or element ID is the numerical identificator of node or element IsElement indicates this ID describe node ( if false ) or element ( if true ) Coords is an array of coordinates of node(s). For node it is only 3 numbers: X, Y, Z in the strict order For element it is 3*n numbers, where n is number of this element vertices The order is strict also: X1, Y1, Z1, X2,...., where Xi, Yi, Zi are coordinates of vertices NbNodes is number of nodes. It is recommended this parameter to be set to 1 for node. Type is type of node or element (from enumeration). It is recommended this parameter to be set to MeshVS_ET_Node for node.

Implements MeshVS_DataSource.

◆ GetGeomType()

bool MeshVS_DeformedDataSource::GetGeomType ( const int ID,
const bool IsElement,
MeshVS_EntityType & Type ) const
overridevirtual

This method is similar to GetGeom, but returns only element or node type.

Implements MeshVS_DataSource.

◆ GetMagnify()

double MeshVS_DeformedDataSource::GetMagnify ( ) const

With this methods you can read and change magnify coefficient of nodal displacements.

◆ GetNodesByElement()

bool MeshVS_DeformedDataSource::GetNodesByElement ( const int ID,
NCollection_Array1< int > & NodeIDs,
int & NbNodes ) const
overridevirtual

This method returns information about nodes this element consist of. ID is the numerical identificator of element. NodeIDs is the output array of nodes IDs in correct order, the same as coordinates returned by GetGeom(). NbNodes is number of nodes (number of items set in NodeIDs). Returns False if element does not exist.

Implements MeshVS_DataSource.

◆ GetNonDeformedDataSource()

occ::handle< MeshVS_DataSource > MeshVS_DeformedDataSource::GetNonDeformedDataSource ( ) const

With this methods you can read and change internal canonical data source.

◆ GetVector()

bool MeshVS_DeformedDataSource::GetVector ( const int ID,
gp_Vec & Vect ) const

This method returns vector ( Vect ) assigned to node number ID.

◆ GetVectors()

const NCollection_DataMap< int, gp_Vec > & MeshVS_DeformedDataSource::GetVectors ( ) const

This method returns map of nodal displacement vectors.

◆ SetMagnify()

void MeshVS_DeformedDataSource::SetMagnify ( const double theMagnify)

◆ SetNonDeformedDataSource()

void MeshVS_DeformedDataSource::SetNonDeformedDataSource ( const occ::handle< MeshVS_DataSource > & theDS)

◆ SetVector()

void MeshVS_DeformedDataSource::SetVector ( const int ID,
const gp_Vec & Vect )

This method sets vector ( Vect ) assigned to node number ID.

◆ SetVectors()

void MeshVS_DeformedDataSource::SetVectors ( const NCollection_DataMap< int, gp_Vec > & Map)

This method sets map of nodal displacement vectors (Map).


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