27 template <
class ObjectBase = ccObject>
30 using ObjectBase::ObjectBase;
36 template <
class DrawableObjectBase = ccDrawableObject>
39 using DrawableObjectBase::DrawableObjectBase;
41 PYBIND11_OVERLOAD_PURE(
void, DrawableObjectBase,
context);
45 template <
class GeometryBase = ccHObject>
51 PYBIND11_OVERLOAD_PURE(
bool, GeometryBase, );
55 PYBIND11_OVERLOAD_PURE(Eigen::Vector3d, GeometryBase, );
58 PYBIND11_OVERLOAD_PURE(Eigen::Vector2d, GeometryBase, );
61 PYBIND11_OVERLOAD_PURE(Eigen::Vector3d, GeometryBase, );
64 PYBIND11_OVERLOAD_PURE(Eigen::Vector2d, GeometryBase, );
67 PYBIND11_OVERLOAD_PURE(Eigen::Vector3d, GeometryBase, );
70 PYBIND11_OVERLOAD_PURE(
ccBBox, GeometryBase, );
75 GeometryBase&
Transform(
const Eigen::Matrix4d& transformation)
override {
76 PYBIND11_OVERLOAD_PURE(GeometryBase&, GeometryBase, transformation);
81 template <
class GenericMeshBase = cloudViewer::GenericMesh>
84 using GenericMeshBase::GenericMeshBase;
86 unsigned size()
const override {
87 PYBIND11_OVERLOAD_PURE(
unsigned, GenericMeshBase, );
91 PYBIND11_OVERLOAD_PURE(
void, GenericMeshBase, action);
94 PYBIND11_OVERLOAD_PURE(
void, GenericMeshBase, bbMin, bbMax);
97 PYBIND11_OVERLOAD_PURE(
void, GenericMeshBase, );
105 template <
class GenericIndexedMeshBase = cloudViewer::GenericIndexedMesh>
111 unsigned triangleIndex)
override {
113 GenericIndexedMeshBase, triangleIndex);
116 unsigned triangleIndex)
override {
118 GenericIndexedMeshBase, triangleIndex);
124 PYBIND11_OVERLOAD_PURE(
void, GenericIndexedMeshBase, triangleIndex, A,
130 double C[3])
const override {
131 PYBIND11_OVERLOAD_PURE(
void, GenericIndexedMeshBase, triangleIndex, A,
136 GenericIndexedMeshBase, );
142 PYBIND11_OVERLOAD_PURE(
bool, GenericIndexedMeshBase, triIndex, P, N);
146 PYBIND11_OVERLOAD_PURE(
bool, GenericIndexedMeshBase, );
150 template <
class GenericTriangleMesh = ccGenericMesh>
161 PYBIND11_OVERLOAD_PURE(
void, GenericTriangleMesh, );
164 PYBIND11_OVERLOAD_PURE(
unsigned, GenericTriangleMesh, );
167 PYBIND11_OVERLOAD_PURE(
bool, GenericTriangleMesh, );
170 PYBIND11_OVERLOAD_PURE(
const ccMaterialSet*, GenericTriangleMesh, );
173 PYBIND11_OVERLOAD_PURE(
bool, GenericTriangleMesh, );
182 PYBIND11_OVERLOAD_PURE(
void, GenericTriangleMesh, triIndex, tx1, tx2,
186 PYBIND11_OVERLOAD_PURE(
void, GenericTriangleMesh, index, tx);
189 PYBIND11_OVERLOAD_PURE(
bool, GenericTriangleMesh, );
194 int& i3)
const override {
195 PYBIND11_OVERLOAD_PURE(
void, GenericTriangleMesh, triangleIndex, i1, i2,
199 PYBIND11_OVERLOAD_PURE(
bool, GenericTriangleMesh, );
204 int& i3)
const override {
205 PYBIND11_OVERLOAD_PURE(
void, GenericTriangleMesh, triangleIndex, i1, i2,
212 PYBIND11_OVERLOAD_PURE(
bool, GenericTriangleMesh, triangleIndex, Na, Nb,
221 PYBIND11_OVERLOAD_PURE(
bool, GenericTriangleMesh, triIndex, P, C);
226 bool interpolateColorIfNoTexture)
override {
227 PYBIND11_OVERLOAD_PURE(
bool, GenericTriangleMesh, triIndex, P, C,
228 interpolateColorIfNoTexture);
231 unsigned char vertIndex,
233 bool returnColorIfNoTexture)
override {
234 PYBIND11_OVERLOAD_PURE(
bool, GenericTriangleMesh, triIndex, vertIndex,
235 C, returnColorIfNoTexture);
241 PYBIND11_OVERLOAD_PURE(
bool, GenericTriangleMesh, triIndex, w, N);
245 template <
class GenericPrimitive = ccGenericPrimitive>
248 using GenericPrimitive::GenericPrimitive;
252 PYBIND11_OVERLOAD_PURE(QString, GenericPrimitive, );
261 template <
class GenericPlanarEntityInterface = ccPlanarEntityInterface>
264 using GenericPlanarEntityInterface::GenericPlanarEntityInterface;
268 PYBIND11_OVERLOAD_PURE(
CCVector3, GenericPlanarEntityInterface, );
272 template <
class OrientedBBoxBase = cloudViewer::OrientedBoundingBox>
275 using OrientedBBoxBase::OrientedBBoxBase;
int64_t CV_CLASS_ENUM
Type of object type flags (64 bits)
Array of compressed 3D normals (single index)
void draw(CC_DRAW_CONTEXT &context) override
Draws entity and its children.
void getTriangleVertices(unsigned triangleIndex, double A[3], double B[3], double C[3]) const override
cloudViewer::GenericTriangle * _getTriangle(unsigned triangleIndex) override
Returns the ith triangle.
cloudViewer::VerticesIndexes * getTriangleVertIndexes(unsigned triangleIndex) override
Returns the indexes of the vertices of a given triangle.
bool normalsAvailable() const override
Returns whether normals are available.
bool interpolateNormals(unsigned triIndex, const CCVector3 &P, CCVector3 &N) override
Interpolates normal(s) inside a given triangle.
cloudViewer::VerticesIndexes * getNextTriangleVertIndexes() override
void getTriangleVertices(unsigned triangleIndex, CCVector3 &A, CCVector3 &B, CCVector3 &C) const override
Returns the vertices of a given triangle.
void getBoundingBox(CCVector3 &bbMin, CCVector3 &bbMax) override
Returns the mesh bounding-box.
unsigned size() const override
Returns the number of triangles.
void placeIteratorAtBeginning() override
Places the mesh iterator at the beginning.
void forEach(std::function< void(cloudViewer::GenericTriangle &)> action) override
cloudViewer::GenericTriangle * _getNextTriangle() override
Returns the next triangle (relatively to the global iterator position)
QString getTypeName() const override
Returns type name (sphere, cylinder, etc.)
ccGenericPrimitive * clone() const override
Clones primitive.
bool hasTextures() const override
TextureCoordsContainer * getTexCoordinatesTable() const override
bool hasMaterials() const override
ccGenericPointCloud * getAssociatedCloud() const override
unsigned capacity() const override
NormsIndexesTableType * getTriNormsTable() const override
bool getTriangleNormals(unsigned triangleIndex, CCVector3 &Na, CCVector3 &Nb, CCVector3 &Nc) const override
void getTriangleTexCoordinatesIndexes(unsigned triangleIndex, int &i1, int &i2, int &i3) const override
bool getVertexColorFromMaterial(unsigned triIndex, unsigned char vertIndex, ecvColor::Rgb &C, bool returnColorIfNoTexture) override
bool getColorFromMaterial(unsigned triIndex, const CCVector3 &P, ecvColor::Rgb &C, bool interpolateColorIfNoTexture) override
void refreshBB() override
const ccMaterialSet * getMaterialSet() const override
void getTriangleNormalIndexes(unsigned triangleIndex, int &i1, int &i2, int &i3) const override
void getTexCoordinates(unsigned index, TexCoords2D *&tx) const override
bool interpolateColors(unsigned triIndex, const CCVector3 &P, ecvColor::Rgb &C) override
void getTriangleTexCoordinates(unsigned triIndex, TexCoords2D *&tx1, TexCoords2D *&tx2, TexCoords2D *&tx3) const override
bool interpolateNormalsBC(unsigned triIndex, const CCVector3d &w, CCVector3 &N) override
bool hasTriNormals() const override
bool hasPerTriangleTexCoordIndexes() const override
ecvOrientedBBox GetOrientedBoundingBox() const override
Eigen::Vector2d GetMin2DBound() const override
Eigen::Vector2d GetMax2DBound() const override
Eigen::Vector3d GetMinBound() const override
Returns min bounds for geometry coordinates.
ccBBox GetAxisAlignedBoundingBox() const override
Returns an axis-aligned bounding box of the geometry.
Eigen::Vector3d GetMaxBound() const override
Returns max bounds for geometry coordinates.
bool IsEmpty() const override
GeometryBase & Transform(const Eigen::Matrix4d &transformation) override
Apply transformation (4x4 matrix) to the geometry coordinates.
Eigen::Vector3d GetCenter() const override
Returns the center of the geometry coordinates.
CV_CLASS_ENUM getClassID() const override
Returns class ID.
CCVector3 getNormal() const override
Returns the entity normal.
Array of 2D texture coordinates.
A 3D cloud interface with associated features (color, normals, octree, etc.)
Generic primitive interface.
Mesh (triangle) material.
A generic triangle interface.
Generic file read and write utility for python interface.
Triangle described by the indexes of its 3 vertices.