OpenLexocad  27.1
Data::ComplexGeoData Class Referenceabstract

#include <ComplexGeoData.h>

Inheritance diagram for Data::ComplexGeoData:
Base::Persistence Base::Handled Base::BaseClass

Classes

struct  Domain
 
struct  Facet
 
struct  Line
 

Public Member Functions

 ComplexGeoData (void)
 Constructor. More...
 
virtual ~ComplexGeoData ()
 Destructor. More...
 
Subelement management
virtual std::vector< const char * > getElementTypes (void) const =0
 
virtual unsigned long countSubElements (const char *Type) const =0
 
virtual SegmentgetSubElement (const char *Type, unsigned long) const =0
 get the subelement by type and number More...
 
virtual SegmentgetSubElementByName (const char *Name) const
 get subelement by combined name More...
 
virtual void getLinesFromSubelement (const Segment *, std::vector< Base::Vector3d > &Points, std::vector< Line > &lines) const
 
virtual void getFacesFromSubelement (const Segment *, std::vector< Base::Vector3d > &Points, std::vector< Base::Vector3d > &PointNormals, std::vector< Facet > &faces) const
 
Placement control
void applyTransform (const Base::Matrix4D &rclTrf)
 
void applyTranslation (const Base::Vector3d &)
 
void applyRotation (const Base::Rotation &)
 
void setPlacement (const Base::Placement &rclPlacement)
 
Base::Placement getPlacement () const
 
virtual void setTransform (const Base::Matrix4D &rclTrf)=0
 
virtual Base::Matrix4D getTransform (void) const =0
 
Modification
virtual void transformGeometry (const Base::Matrix4D &rclMat)=0
 Applies a transformation on the real geometric data type. More...
 
Getting basic geometric entities
virtual Base::BoundBox3d getBoundBox (void) const =0
 Get the bound box. More...
 
virtual Base::Vector3d getPointFromLineIntersection (const Base::Vector3f &base, const Base::Vector3f &dir) const
 
virtual void getPoints (std::vector< Base::Vector3d > &Points, std::vector< Base::Vector3d > &Normals, float Accuracy, uint16_t flags=0) const
 
virtual void getLines (std::vector< Base::Vector3d > &Points, std::vector< Line > &lines, float Accuracy, uint16_t flags=0) const
 
virtual void getFaces (std::vector< Base::Vector3d > &Points, std::vector< Facet > &faces, float Accuracy, uint16_t flags=0) const
 
virtual bool getCenterOfGravity (Base::Vector3d &center) const
 
- Public Member Functions inherited from Base::Persistence
virtual void save (Base::AbstractWriter &, Base::PersistenceVersion &)=0
 This method is used to save properties or very small amounts of data to an XML document. More...
 
virtual void restore (Base::AbstractXMLReader &, Base::PersistenceVersion &)=0
 This method is used to restore properties from an XML document. More...
 
virtual void saveDocFile (Base::AbstractWriter &, const Base::String &, const Base::String &)
 This method is used to save large amounts of data to a binary file. More...
 
virtual void restoreDocFile (Base::Reader &, const Base::String &)
 This method is used to restore large amounts of data from a binary file. More...
 
virtual bool mustbeSaved () const
 Return 'true' if this object must always be saved in the file. More...
 
virtual bool createSQL (Base::AbstractWriter &, Base::PersistenceVersion &, bool)
 This method is used to save properties or very small amounts of data to an XML document. More...
 
- Public Member Functions inherited from Base::BaseClass
virtual Type getTypeId (void) const
 
template<typename T >
bool isDerivedFrom () const
 
bool isDerivedFrom (const Type type) const
 
 BaseClass ()
 Construction. More...
 
virtual ~BaseClass ()
 Destruction. More...
 
- Public Member Functions inherited from Base::Handled
 Handled ()
 
virtual ~Handled ()
 
void ref () const
 
void unref () const
 
int getRefCount (void) const
 
const Handledoperator= (const Handled &)
 

Static Public Member Functions

Element name mapping
static const std::string & elementMapPrefix ()
 Special prefix to mark the beginning of a mapped sub-element name. More...
 
static const std::string & tagPostfix ()
 Special postfix to mark the following tag. More...
 
static const std::string & indexPostfix ()
 Special postfix to mark the index of an array element. More...
 
static const std::string & missingPrefix ()
 Special prefix to mark a missing element. More...
 
static bool hasMissingElement (const char *subname)
 Check if a subname contains missing element. More...
 
static const char * isMappedElement (const char *name)
 
static std::string newElementName (const char *name)
 Strip out the trailing element name if there is mapped element name precedes it. More...
 
static std::string oldElementName (const char *name)
 Strip out the mapped element name if there is one. More...
 
static std::string noElementName (const char *name)
 Strip out the old and new element name if there is one. More...
 
static const char * findElementName (const char *subname)
 Find the start of an element name in a subname. More...
 
static const char * hasMappedElementName (const char *subname)
 
- Static Public Member Functions inherited from Base::Persistence
static std::string encodeAttribute (const std::string &)
 
- Static Public Member Functions inherited from Base::BaseClass
static Type getClassTypeId (void)
 
static void init (void)
 
static void * create (void)
 
static void setIfcNameAndID (const std::string &n, int id)
 

Public Attributes

long Tag
 
- Public Attributes inherited from Base::BaseClass
long ____deadVal = 0xBADEAFFE
 

Protected Member Functions

Base::Vector3d transformToOutside (const Base::Vector3f &vec) const
 from local to outside More...
 
Base::Vector3f transformToInside (const Base::Vector3d &vec) const
 from local to inside More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from Base::BaseClass
static void initSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Type::instantiationMethod method=0)
 
static void initIfcTypes (const std::string &s, Base::Type classTypeId, int id)
 

Detailed Description

Constructor & Destructor Documentation

◆ ComplexGeoData()

Data::ComplexGeoData::ComplexGeoData ( void  )

Constructor.

◆ ~ComplexGeoData()

virtual Data::ComplexGeoData::~ComplexGeoData ( )
virtual

Destructor.

Member Function Documentation

◆ applyRotation()

void Data::ComplexGeoData::applyRotation ( const Base::Rotation )

Applies an additional rotation to the current transformation.

◆ applyTransform()

void Data::ComplexGeoData::applyTransform ( const Base::Matrix4D rclTrf)

Applies an additional transformation to the current transformation.

◆ applyTranslation()

void Data::ComplexGeoData::applyTranslation ( const Base::Vector3d )

Applies an additional translation to the current transformation.

◆ countSubElements()

virtual unsigned long Data::ComplexGeoData::countSubElements ( const char *  Type) const
pure virtual

◆ elementMapPrefix()

static const std::string& Data::ComplexGeoData::elementMapPrefix ( )
static

Special prefix to mark the beginning of a mapped sub-element name.

◆ findElementName()

static const char* Data::ComplexGeoData::findElementName ( const char *  subname)
static

Find the start of an element name in a subname.

◆ getBoundBox()

virtual Base::BoundBox3d Data::ComplexGeoData::getBoundBox ( void  ) const
pure virtual

Get the bound box.

◆ getCenterOfGravity()

virtual bool Data::ComplexGeoData::getCenterOfGravity ( Base::Vector3d center) const
virtual

Get the center of gravity If this method is implemented then true is returned and the center of gravity. The default implementation only returns false.

◆ getElementTypes()

virtual std::vector<const char*> Data::ComplexGeoData::getElementTypes ( void  ) const
pure virtual

Sub type list List of different subelement types its NOT a list of the subelements itself

◆ getFaces()

virtual void Data::ComplexGeoData::getFaces ( std::vector< Base::Vector3d > &  Points,
std::vector< Facet > &  faces,
float  Accuracy,
uint16_t  flags = 0 
) const
virtual

Get faces from object with given accuracy

◆ getFacesFromSubelement()

virtual void Data::ComplexGeoData::getFacesFromSubelement ( const Segment ,
std::vector< Base::Vector3d > &  Points,
std::vector< Base::Vector3d > &  PointNormals,
std::vector< Facet > &  faces 
) const
virtual

Get faces from segment

◆ getLines()

virtual void Data::ComplexGeoData::getLines ( std::vector< Base::Vector3d > &  Points,
std::vector< Line > &  lines,
float  Accuracy,
uint16_t  flags = 0 
) const
virtual

Get lines from object with given accuracy

◆ getLinesFromSubelement()

virtual void Data::ComplexGeoData::getLinesFromSubelement ( const Segment ,
std::vector< Base::Vector3d > &  Points,
std::vector< Line > &  lines 
) const
virtual

Get lines from segment

◆ getPlacement()

Base::Placement Data::ComplexGeoData::getPlacement ( ) const

Return the current transformation as placement using getTransform().

◆ getPointFromLineIntersection()

virtual Base::Vector3d Data::ComplexGeoData::getPointFromLineIntersection ( const Base::Vector3f base,
const Base::Vector3f dir 
) const
virtual

Get point from line object intersection

◆ getPoints()

virtual void Data::ComplexGeoData::getPoints ( std::vector< Base::Vector3d > &  Points,
std::vector< Base::Vector3d > &  Normals,
float  Accuracy,
uint16_t  flags = 0 
) const
virtual

Get points from object with given accuracy

◆ getSubElement()

virtual Segment* Data::ComplexGeoData::getSubElement ( const char *  Type,
unsigned long   
) const
pure virtual

get the subelement by type and number

◆ getSubElementByName()

virtual Segment* Data::ComplexGeoData::getSubElementByName ( const char *  Name) const
virtual

get subelement by combined name

◆ getTransform()

virtual Base::Matrix4D Data::ComplexGeoData::getTransform ( void  ) const
pure virtual

Return the current matrix This method has to be handled by the child classes. the actual placement and matrix is not part of this class.

◆ hasMappedElementName()

static const char* Data::ComplexGeoData::hasMappedElementName ( const char *  subname)
inlinestatic

◆ hasMissingElement()

static bool Data::ComplexGeoData::hasMissingElement ( const char *  subname)
static

Check if a subname contains missing element.

◆ indexPostfix()

static const std::string& Data::ComplexGeoData::indexPostfix ( )
static

Special postfix to mark the index of an array element.

◆ isMappedElement()

static const char* Data::ComplexGeoData::isMappedElement ( const char *  name)
static

Check if the name starts with elementMapPrefix()

Parameters
nameinput name
Returns
Returns the name stripped with elementMapPrefix(), or 0 if not start with the prefix

◆ missingPrefix()

static const std::string& Data::ComplexGeoData::missingPrefix ( )
static

Special prefix to mark a missing element.

◆ newElementName()

static std::string Data::ComplexGeoData::newElementName ( const char *  name)
static

Strip out the trailing element name if there is mapped element name precedes it.

◆ noElementName()

static std::string Data::ComplexGeoData::noElementName ( const char *  name)
static

Strip out the old and new element name if there is one.

◆ oldElementName()

static std::string Data::ComplexGeoData::oldElementName ( const char *  name)
static

Strip out the mapped element name if there is one.

◆ setPlacement()

void Data::ComplexGeoData::setPlacement ( const Base::Placement rclPlacement)

Override the current transformation with a placement using the setTransform() method.

◆ setTransform()

virtual void Data::ComplexGeoData::setTransform ( const Base::Matrix4D rclTrf)
pure virtual

Override the current transformation with the new one. This method has to be handled by the child classes. the actual placement and matrix is not part of this class.

◆ tagPostfix()

static const std::string& Data::ComplexGeoData::tagPostfix ( )
static

Special postfix to mark the following tag.

◆ transformGeometry()

virtual void Data::ComplexGeoData::transformGeometry ( const Base::Matrix4D rclMat)
pure virtual

Applies a transformation on the real geometric data type.

◆ transformToInside()

Base::Vector3f Data::ComplexGeoData::transformToInside ( const Base::Vector3d vec) const
inlineprotected

from local to inside

◆ transformToOutside()

Base::Vector3d Data::ComplexGeoData::transformToOutside ( const Base::Vector3f vec) const
inlineprotected

from local to outside

Member Data Documentation

◆ Tag

long Data::ComplexGeoData::Tag
mutable

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