cee::geo::DataIndexedPolylines
-
class
DataIndexedPolylines
: public Data Data structure representing polylines data for a geometry part used in the GeometryModel
Polylines data consist of an array of vertices, and a two dimensional array of indices where each entry describes a polyline. You can have as many polylines as you want, and each polyline can have any number of segments.
See also
GeometryModel, Part, and Data
Public Functions
-
DataIndexedPolylines
() Constructs an empty data object.
-
DataIndexedPolylines
(const std::vector<Vec3d> &vertices, const std::vector<std::vector<unsigned int>> &indices) Constructs polyline data defined by an array of vertices and an array of indices.
indices is a two dimensional array where each entry describes a polyline. You can have as many polylines as you want, and each polyline can have any number of segments.
Example, part containing two polylines:
// Polyline vertices std::vector<cee::Vec3d> polylinesVertices; polylinesVertices.push_back(cee::Vec3d(0.0, 0.0, 0.0)); polylinesVertices.push_back(cee::Vec3d(1.0, 0.0, 0.0)); polylinesVertices.push_back(cee::Vec3d(1.5, 0.0, 1.0)); polylinesVertices.push_back(cee::Vec3d(0.0, 0.0, -1.0)); polylinesVertices.push_back(cee::Vec3d(1.0, 0.0, -1.0)); polylinesVertices.push_back(cee::Vec3d(1.5, 0.0, 0.0)); // Polyline indices std::vector<unsigned int> firstLineIndices = { 0, 1, 2 }; std::vector<unsigned int> secondLineIndices = { 3, 4, 5 }; std::vector<std::vector<unsigned int> > polylinesIndices; polylinesIndices.push_back(firstLineIndices); // First polyline polylinesIndices.push_back(secondLineIndices); // Second polyline // Create polyline data part using the vertices and connectivities cee::PtrRef<cee::geo::DataIndexedPolylines> linePartData = new cee::geo::DataIndexedPolylines(polylinesVertices, polylinesIndices);
-
virtual Type
type
() const Returns Data::INDEXED_POLYLINES.
-
virtual BoundingBox
boundingBox
() const Returns the bounding box of the part data.
This also includes vertices which may not be used by the indices data.
-
size_t
vertexCount
() const Returns number of vertices for all polylines.
-
std::vector<Vec3d>
vertices
() const Returns an array of vertices for all the polylines.
These vertices are used to build up each polyline defined by their associated connectivity indices.
See also
-
void
setVertices
(const std::vector<Vec3d> &vertices) Sets vertices used by all the polylines.
These vertices are used to build up each polyline defined by their associated connectivity indices.
See also
-
size_t
polylineCount
() const Returns number of polylines.
-
std::vector<std::vector<unsigned int>>
polylinesIndices
() const Returns the two dimensional array of indices for all polylines in data.
See also
-
void
setPolylinesIndices
(const std::vector<std::vector<unsigned int>> &indices) Sets the indices into the vertex array for all polylines.
The indices must be a two dimensional array, even if there is only one polyline.
Example:
std::vector<unsigned int> firstLineIndices = { 0, 1, 2 }; std::vector<unsigned int> secondLineIndices = { 3, 4, 5 }; std::vector<std::vector<unsigned int> > polylinesIndices; polylinesIndices.push_back(firstLineIndices); polylinesIndices.push_back(secondLineIndices); // Create polyline data part using the vertices and connectivities cee::PtrRef<cee::geo::DataIndexedPolylines> linePartData = new cee::geo::DataIndexedPolylines(); linePartData->setVertices(polylinesVertices); linePartData->setPolylinesIndices(polylinesIndices);
Note! This does not affect the bounding box.
See also
-
void
removeAll
() Clears all data.
-