MOAB: Mesh Oriented datABase  (version 5.3.0)
MBMesquite::MsqVertex Class Reference

MsqVertex is the Mesquite object that stores information about the vertices in the mesh. More...

#include <MsqVertex.hpp>

+ Inheritance diagram for MBMesquite::MsqVertex:
+ Collaboration diagram for MBMesquite::MsqVertex:

Public Types

enum  FlagMaskID {
  MSQ_HARD_FIXED = 1 << 0, MSQ_DEPENDENT = 1 << 1, MSQ_CULLED = 1 << 2, MSQ_PATCH_FIXED = 1 << 3,
  MSQ_MARK = 1 << 4, MSQ_FIXED = ( MSQ_HARD_FIXED | MSQ_CULLED | MSQ_PATCH_FIXED )
}
typedef unsigned char FlagMask

Public Member Functions

 MsqVertex (double p_x, double p_y, double p_z)
 Construct vertex using three doubles.
 MsqVertex (const Vector3D &vec)
 Construct vertex using Vector3D.
 MsqVertex ()
 Construct default vertex with coordinates (0.0,0.0,0.0)
 MsqVertex (const MsqVertex &rhs)
 Construct default vertex with coordinates (0.0,0.0,0.0)
MsqVertexoperator= (const Vector3D &rhs)
 Initializes with coordinates. Sets tag data/pointer to 0.
bool is_free_vertex () const
 Returns true if vertex is ``free''.
void set_soft_fixed_flag ()
void remove_soft_fixed_flag ()
void set_hard_fixed_flag ()
void set_vertex_flag (FlagMaskID flag)
void remove_vertex_flag (FlagMaskID flag)
bool is_flag_set (FlagMaskID flag) const
FlagMask get_flags () const
FlagMaskflags ()
void set_flags (FlagMask p_flags)

Private Attributes

FlagMask vertexBitFlags

Detailed Description

MsqVertex is the Mesquite object that stores information about the vertices in the mesh.

This class has no virtual destructor for performance reasons. !!! Make sure NOT to delete a MsqVertex object from a pointer to Vector3D !!!

Definition at line 51 of file MsqVertex.hpp.


Member Typedef Documentation

typedef unsigned char MBMesquite::MsqVertex::FlagMask

Definition at line 75 of file MsqVertex.hpp.


Member Enumeration Documentation

Those are the available flags... currently only return is_free. Developers: The values used in that enum are used by a bitset, so they have to be 2-based (2,4,8,16,32, ...)

Enumerator:
MSQ_HARD_FIXED 

vertex is always fixed. This can only be set on and never off.

MSQ_DEPENDENT 

higher-order node w/ position determined by mapping function

MSQ_CULLED 

vertex is fixed. This flag can be set on and off.

MSQ_PATCH_FIXED 

vertex is fixed only because it is on patch boundary (not by app request)

MSQ_MARK 

arbitrary mark for use by code - clear before using

MSQ_FIXED 

Definition at line 82 of file MsqVertex.hpp.

    {
        MSQ_HARD_FIXED  = 1 << 0,  //!< vertex is always fixed. This can only be set on and never off.
        MSQ_DEPENDENT   = 1 << 1,  //!< higher-order node w/ position determined by mapping function
        MSQ_CULLED      = 1 << 2,  //!< vertex is fixed. This flag can be set on and off.
        MSQ_PATCH_FIXED = 1 << 3,  //!< vertex is fixed only because it is on patch boundary (not by app request)
        MSQ_MARK        = 1 << 4,  //!< arbitrary mark for use by code - clear before using
        MSQ_FIXED       = ( MSQ_HARD_FIXED | MSQ_CULLED | MSQ_PATCH_FIXED )
    };

Constructor & Destructor Documentation

MBMesquite::MsqVertex::MsqVertex ( double  p_x,
double  p_y,
double  p_z 
) [inline]

Construct vertex using three doubles.

Definition at line 55 of file MsqVertex.hpp.

: Vector3D( p_x, p_y, p_z ), vertexBitFlags( 0 ) {}
MBMesquite::MsqVertex::MsqVertex ( const Vector3D vec) [inline]

Construct vertex using Vector3D.

Definition at line 58 of file MsqVertex.hpp.

: Vector3D( vec ), vertexBitFlags( 0 ) {}

Construct default vertex with coordinates (0.0,0.0,0.0)

Definition at line 61 of file MsqVertex.hpp.

: Vector3D( 0, 0, 0 ), vertexBitFlags( 0 ) {}
MBMesquite::MsqVertex::MsqVertex ( const MsqVertex rhs) [inline]

Construct default vertex with coordinates (0.0,0.0,0.0)

Definition at line 64 of file MsqVertex.hpp.

: Vector3D( rhs ), vertexBitFlags( rhs.vertexBitFlags ) {}

Member Function Documentation

MsqVertex& MBMesquite::MsqVertex::operator= ( const Vector3D rhs) [inline]

Initializes with coordinates. Sets tag data/pointer to 0.

Reimplemented from MBMesquite::Vector3D.

Definition at line 67 of file MsqVertex.hpp.

References MBMesquite::Vector3D::operator=().

    {
        Vector3D::operator=( rhs );
        return *this;
    }

Definition at line 102 of file MsqVertex.hpp.

    {
        vertexBitFlags &= ( ~MSQ_CULLED );
    }

Definition at line 117 of file MsqVertex.hpp.

    {
        vertexBitFlags &= ( ~flag );
    }
void MBMesquite::MsqVertex::set_flags ( FlagMask  p_flags) [inline]

Definition at line 137 of file MsqVertex.hpp.

Referenced by MBMesquite::TerminationCriterion::cull_vertices_global().

    {
        vertexBitFlags = p_flags;
    }

Definition at line 107 of file MsqVertex.hpp.

Referenced by MsqVertexTest::test_flags().

Definition at line 97 of file MsqVertex.hpp.

Definition at line 112 of file MsqVertex.hpp.

    {
        vertexBitFlags |= flag;
    }

Member Data Documentation

Definition at line 143 of file MsqVertex.hpp.

List of all members.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines