#include <Points.h>
Classes | |
class const_point_iterator | |
Public Types | |
typedef std::vector< value_type >::difference_type difference_type | |
typedef float float_type | |
typedef std::vector< value_type >::size_type size_type | |
typedef Base::Vector3< float_type > value_type | |
Public Member Functions | |
void operator= (const PointKernel &) | |
PointKernel (const PointKernel &) | |
PointKernel (size_type size) | |
PointKernel (void) | |
virtual ~PointKernel () | |
Subelement management | |
virtual std::vector< const char * > getElementTypes (void) const | |
Sub type list List of different subelement types its NOT a list of the subelements itself. More... | |
virtual unsigned long countSubElements (const char *Type) const | |
virtual Data::Segment * getSubElement (const char *Type, unsigned long) const | |
get the subelement by type and number More... | |
void setTransform (const Base::Matrix4D &rclTrf) | |
Override the current transformation with the new one. More... | |
Base::Matrix4D getTransform (void) const | |
Return the current matrix This method has to be handled by the child classes. More... | |
std::vector< value_type > & getBasicPoints () | |
const std::vector< value_type > & getBasicPoints () const | |
void setBasicPoints (const std::vector< value_type > &pts) | |
void swap (std::vector< value_type > &pts) | |
virtual void getPoints (std::vector< Base::Vector3d > &Points, std::vector< Base::Vector3d > &Normals, float Accuracy, uint16_t flags=0) const | |
Get points from object with given accuracy. More... | |
virtual void transformGeometry (const Base::Matrix4D &rclMat) | |
Applies a transformation on the real geometric data type. More... | |
virtual Base::BoundBox3d getBoundBox (void) const | |
Get the bound box. More... | |
Iterator | |
const_point_iterator begin () const | |
const_point_iterator end () const | |
const_reverse_iterator rbegin () const | |
const_reverse_iterator rend () const | |
![]() | |
ComplexGeoData (void) | |
Constructor. More... | |
virtual ~ComplexGeoData () | |
Destructor. More... | |
virtual Segment * getSubElementByName (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 | |
Get lines from segment. More... | |
virtual void getFacesFromSubelement (const Segment *, std::vector< Base::Vector3d > &Points, std::vector< Base::Vector3d > &PointNormals, std::vector< Facet > &faces) const | |
Get faces from segment. More... | |
void applyTransform (const Base::Matrix4D &rclTrf) | |
Applies an additional transformation to the current transformation. More... | |
void applyTranslation (const Base::Vector3d &) | |
Applies an additional translation to the current transformation. More... | |
void applyRotation (const Base::Rotation &) | |
Applies an additional rotation to the current transformation. More... | |
void setPlacement (const Base::Placement &rclPlacement) | |
Override the current transformation with a placement using the setTransform() method. More... | |
Base::Placement getPlacement () const | |
Return the current transformation as placement using getTransform(). More... | |
virtual Base::Vector3d getPointFromLineIntersection (const Base::Vector3f &base, const Base::Vector3f &dir) const | |
Get point from line object intersection More... | |
virtual void getLines (std::vector< Base::Vector3d > &Points, std::vector< Line > &lines, float Accuracy, uint16_t flags=0) const | |
Get lines from object with given accuracy. More... | |
virtual void getFaces (std::vector< Base::Vector3d > &Points, std::vector< Facet > &faces, float Accuracy, uint16_t flags=0) const | |
Get faces from object with given accuracy. More... | |
virtual bool getCenterOfGravity (Base::Vector3d ¢er) const | |
Get the center of gravity If this method is implemented then true is returned and the center of gravity. More... | |
![]() | |
void dumpToStream (std::ostream &stream, int compression) | |
virtual Base::Type getTypeId (void) const | |
void restoreFromStream (std::istream &stream) | |
![]() | |
BaseClass () | |
Construction. More... | |
virtual PyObject * getPyObject (void) | |
This method returns the Python wrapper for a C++ object. More... | |
bool isDerivedFrom (const Type type) const | |
virtual void setPyObject (PyObject *) | |
virtual ~BaseClass () | |
Destruction. More... | |
![]() | |
int getRefCount (void) const | |
Handled () | |
const Handled & operator= (const Handled &) | |
void ref () const | |
void unref () const | |
virtual ~Handled () | |
I/O | |
typedef const_point_iterator const_iterator | |
typedef std::reverse_iterator< const_iterator > const_reverse_iterator | |
unsigned int getMemSize (void) const | |
This method is used to get the size of objects It is not meant to have the exact size, it is more or less an estimation which runs fast! Is it two bytes or a GB? More... | |
void Save (Base::Writer &writer) const | |
This method is used to save properties to an XML document. More... | |
void SaveDocFile (Base::Writer &writer) const | |
This method is used to save large amounts of data to a binary file. More... | |
void Restore (Base::XMLReader &reader) | |
This method is used to restore properties from an XML document. More... | |
void RestoreDocFile (Base::Reader &reader) | |
This method is used to restore large amounts of data from a file In this method you simply stream in your SaveDocFile() saved data. More... | |
void save (const char *file) const | |
void save (std::ostream &) const | |
void load (const char *file) | |
void load (std::istream &) | |
size_type size (void) const | |
number of points stored More... | |
size_type countValid (void) const | |
std::vector< value_type > getValidPoints () const | |
void resize (size_type n) | |
void reserve (size_type n) | |
void erase (size_type first, size_type last) | |
void clear (void) | |
const Base::Vector3d getPoint (const int idx) const | |
get the points More... | |
void setPoint (const int idx, const Base::Vector3d &point) | |
set the points More... | |
void push_back (const Base::Vector3d &point) | |
insert the points More... | |
Additional Inherited Members | |
![]() | |
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) | |
Check if the name starts with elementMapPrefix() More... | |
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 void * create (void) | |
static std::string encodeAttribute (const std::string &) | |
Encodes an attribute upon saving. More... | |
static Base::Type getClassTypeId (void) | |
static void init (void) | |
![]() | |
static void * create (void) | |
static Type getClassTypeId (void) | |
static void init (void) | |
![]() | |
long Tag | |
![]() | |
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... | |
![]() | |
static void initSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Type::instantiationMethod method=nullptr) | |
Detailed Description
Point kernel.
Member Typedef Documentation
◆ const_iterator
◆ const_reverse_iterator
typedef std::reverse_iterator<const_iterator> Points::PointKernel::const_reverse_iterator |
◆ difference_type
typedef std::vector<value_type>::difference_type Points::PointKernel::difference_type |
◆ float_type
typedef float Points::PointKernel::float_type |
◆ size_type
typedef std::vector<value_type>::size_type Points::PointKernel::size_type |
◆ value_type
Constructor & Destructor Documentation
◆ PointKernel() [1/3]
Points::PointKernel::PointKernel | ( | void | ) |
◆ PointKernel() [2/3]
Points::PointKernel::PointKernel | ( | size_type | size | ) |
◆ PointKernel() [3/3]
PointKernel::PointKernel | ( | const PointKernel & | pts | ) |
◆ ~PointKernel()
|
virtual |
Member Function Documentation
◆ begin()
const_point_iterator Points::PointKernel::begin | ( | ) | const |
Referenced by Points::PointsPy::writeInventor().
◆ clear()
void Points::PointKernel::clear | ( | void | ) |
◆ countSubElements()
|
virtual |
Implements Data::ComplexGeoData.
◆ countValid()
PointKernel::size_type PointKernel::countValid | ( | void | ) | const |
◆ end()
const_point_iterator Points::PointKernel::end | ( | ) | const |
◆ erase()
◆ getBasicPoints() [1/2]
std::vector<value_type>& Points::PointKernel::getBasicPoints | ( | ) |
Referenced by PointsGui::ViewProviderPointsBuilder::createPoints().
◆ getBasicPoints() [2/2]
const std::vector<value_type>& Points::PointKernel::getBasicPoints | ( | ) | const |
◆ getBoundBox()
|
virtual |
Get the bound box.
Implements Data::ComplexGeoData.
References Base::BoundBox3< _Precision >::Add().
◆ getElementTypes()
|
virtual |
Sub type list List of different subelement types its NOT a list of the subelements itself.
Implements Data::ComplexGeoData.
◆ getMemSize()
|
virtual |
This method is used to get the size of objects It is not meant to have the exact size, it is more or less an estimation which runs fast! Is it two bytes or a GB?
Implements Base::Persistence.
◆ getPoint()
const Base::Vector3d Points::PointKernel::getPoint | ( | const int | idx | ) | const |
get the points
◆ getPoints()
|
virtual |
Get points from object with given accuracy.
Reimplemented from Data::ComplexGeoData.
◆ getSubElement()
|
virtual |
get the subelement by type and number
Implements Data::ComplexGeoData.
◆ getTransform()
|
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.
Implements Data::ComplexGeoData.
◆ getValidPoints()
std::vector< PointKernel::value_type > PointKernel::getValidPoints | ( | ) | const |
◆ load() [1/2]
void PointKernel::load | ( | const char * | file | ) |
References Points::PointsAlgos::Load().
Referenced by Points::PointsPy::PyInit(), and Points::PointsPy::read().
◆ load() [2/2]
void Points::PointKernel::load | ( | std::istream & | ) |
◆ operator=()
void PointKernel::operator= | ( | const PointKernel & | Kernel | ) |
◆ push_back()
void Points::PointKernel::push_back | ( | const Base::Vector3d & | point | ) |
insert the points
Referenced by Points::PointsPy::addPoints(), PointsGui::ViewProviderStructured::cut(), Points::PointsPy::fromSegment(), Points::PointsPy::fromValid(), and Points::PropertyPointKernel::removeIndices().
◆ rbegin()
const_reverse_iterator Points::PointKernel::rbegin | ( | ) | const |
◆ rend()
const_reverse_iterator Points::PointKernel::rend | ( | ) | const |
◆ reserve()
void Points::PointKernel::reserve | ( | size_type | n | ) |
◆ resize()
void Points::PointKernel::resize | ( | size_type | n | ) |
◆ Restore()
|
virtual |
This method is used to restore properties from an XML document.
It uses the XMLReader class, which bases on SAX, to read the in Save() written information. Again the Vector as an example:
Implements Base::Persistence.
References Base::XMLReader::addFile(), Base::XMLReader::DocumentSchema, Base::XMLReader::getAttribute(), and Base::XMLReader::readElement().
◆ RestoreDocFile()
|
virtual |
This method is used to restore large amounts of data from a file In this method you simply stream in your SaveDocFile() saved data.
Again you have to apply for the call of this method in the Restore() call:
After you issued the reader.addFile() your RestoreDocFile() is called:
- See also
- Base::Reader,Base::XMLReader
Reimplemented from Base::Persistence.
◆ Save()
|
virtual |
This method is used to save properties to an XML document.
A good example you'll find in PropertyStandard.cpp, e.g. the vector:
The writer.ind() expression writes the indentation, just for pretty printing of the XML. As you see, the writing of the XML document is not done with a DOM implementation because of performance reasons. Therefore the programmer has to take care that a valid XML document is written. This means closing tags and writing UTF-8.
- See also
- Base::Writer
Implements Base::Persistence.
References Base::Writer::addFile(), Base::Writer::ind(), Base::Writer::isForceXML(), Base::Writer::ObjectName, and Base::Writer::Stream().
◆ save() [1/2]
void PointKernel::save | ( | const char * | file | ) | const |
References OfflineRenderingUtils::save().
Referenced by shipGZ.TaskPanel.TaskPanel::accept(), shipAreasCurve.TaskPanel.TaskPanel::accept(), shipHydrostatics.TaskPanel.TaskPanel::accept(), Mod.Show.mTempoVis.TempoVis::modify(), Mod.Show.mTempoVis.TempoVis::modifyVPProperty(), Mod.Show.mTempoVis.TempoVis::saveCamera(), and Points::PointsPy::write().
◆ save() [2/2]
void PointKernel::save | ( | std::ostream & | out | ) | const |
◆ SaveDocFile()
|
virtual |
This method is used to save large amounts of data to a binary file.
Sometimes it makes no sense to write property data as XML. In case the amount of data is too big or the data type has a more effective way to save itself. In this cases it is possible to write the data in a separate file inside the document archive. In case you want do so you have to re-implement SaveDocFile(). First, you have to inform the framework in Save() that you want do so. Here an example from the Mesh module which can save a (pontetionaly big) triangle mesh:
The writer.isForceXML() is an indication to force you to write XML. Regardless of size and effectiveness. The second part informs the Base::writer through writer.addFile("MeshKernel.bms", this) that this object wants to write a file with the given name. The method addFile() returns a unique name that then is written in the XML stream. This allows your RestoreDocFile() method to identify and read the file again. Later your SaveDocFile() method is called as many times as you issued the addFile() call:
In this method you can simply stream your content to the file (Base::Writer inheriting from ostream).
Reimplemented from Base::Persistence.
References Base::Writer::Stream().
◆ setBasicPoints()
void Points::PointKernel::setBasicPoints | ( | const std::vector< value_type > & | pts | ) |
◆ setPoint()
void Points::PointKernel::setPoint | ( | const int | idx, |
const Base::Vector3d & | point | ||
) |
set the points
◆ setTransform()
|
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.
Implements Data::ComplexGeoData.
Referenced by Points::Feature::onChanged(), and Points::PropertyPointKernel::removeIndices().
◆ size()
size_type Points::PointKernel::size | ( | void | ) | const |
number of points stored
Referenced by PointsGui::ViewProviderPointsBuilder::createPoints(), PathScripts.PostUtils.GCodeEditorDialog::done(), and Points::PointsGrid::Validate().
◆ swap()
void Points::PointKernel::swap | ( | std::vector< value_type > & | pts | ) |
◆ transformGeometry()
|
virtual |
Applies a transformation on the real geometric data type.
Implements Data::ComplexGeoData.
References Base::Matrix4D::multVec().
The documentation for this class was generated from the following files:
- src/Mod/Points/App/Points.h
- src/Mod/Points/App/Points.cpp