51 #pragma warning(disable : 4715)
71 m.def(
"get_rotation_matrix_from_axis_angle",
73 m.def(
"get_rotation_matrix_from_euler_angle",
75 m.def(
"get_rotation_matrix_from_quaternion",
85 "[ccHObjectCaster] converting failed!");
86 return std::ref(*std::make_shared<ccPointCloud>());
89 "Converts current object to 'equivalent' ccPointCloud",
"entity"_a);
97 "[ccHObjectCaster] converting failed!");
98 return std::ref(*std::make_shared<ccPolyline>(
nullptr));
101 "Converts current object to ccPolyline (if possible)",
"entity"_a);
109 "[ccHObjectCaster] converting failed!");
110 return std::ref(*std::make_shared<ccFacet>());
113 "Converts current object to ccFacet (if possible)",
"entity"_a);
121 "[ccHObjectCaster] converting failed!");
122 return std::ref(*std::make_shared<ccMesh>());
125 "Converts current object to ccMesh (if possible)",
"entity"_a);
133 "[ccHObjectCaster] converting failed!");
134 return std::ref(*std::make_shared<ccSubMesh>(
nullptr));
137 "Converts current object to ccSubMesh (if possible)",
"entity"_a);
145 "[ccHObjectCaster] converting failed!");
146 return std::ref(*std::make_shared<ccQuadric>());
149 "Converts current object to ccQuadric (if possible)",
"entity"_a);
157 "[ccHObjectCaster] converting failed!");
158 return std::ref(*std::make_shared<ccBox>());
161 "Converts current object to ccBox (if possible)",
"entity"_a);
169 "[ccHObjectCaster] converting failed!");
170 return std::ref(*std::make_shared<ccSphere>());
173 "Converts current object to ccSphere (if possible)",
"entity"_a);
181 "[ccHObjectCaster] converting failed!");
182 return std::ref(*std::make_shared<ccCylinder>());
185 "Converts current object to ccCylinder (if possible)",
"entity"_a);
187 "ToCoordinateSystem",
194 "[ccHObjectCaster] converting failed!");
195 return std::ref(*std::make_shared<ccCoordinateSystem>());
198 "Converts current object to ccCoordinateSystem (if possible)",
207 "[ccHObjectCaster] converting failed!");
208 return std::ref(*std::make_shared<ccCone>());
211 "Converts current object to ccCone (if possible)",
"entity"_a);
219 "[ccHObjectCaster] converting failed!");
220 return std::ref(*std::make_shared<ccPlane>());
223 "Converts current object to ccPlane (if possible)",
"entity"_a);
231 "[ccHObjectCaster] converting failed!");
232 return std::ref(*std::make_shared<ccDish>());
235 "Converts current object to ccDish (if possible)",
"entity"_a);
243 "[ccHObjectCaster] converting failed!");
244 return std::ref(*std::make_shared<ccExtru>());
247 "Converts current object to ccExtru (if possible)",
"entity"_a);
255 "[ccHObjectCaster] converting failed!");
256 return std::ref(*std::make_shared<ccTorus>());
259 "Converts current object to ccTorus (if possible)",
"entity"_a);
268 "[ccHObjectCaster] converting failed!");
269 return std::ref(*std::make_shared<ccOctreeProxy>());
272 "Converts current object to ccOctreeProxy (if possible)",
281 "[ccHObjectCaster] converting failed!");
282 auto pcd = std::make_shared<ccPointCloud>();
283 return std::ref(*std::make_shared<ccKdTree>(pcd.get()));
286 "Converts current object to ccKdTree (if possible)",
"entity"_a);
294 "[ccHObjectCaster] converting failed!");
295 return std::ref(*std::make_shared<ccSensor>(
"Invalid"));
298 "Converts current object to ccSensor (if possible)",
"entity"_a);
306 "[ccHObjectCaster] converting failed!");
307 return std::ref(*std::make_shared<ccGBLSensor>());
310 "Converts current object to ccGBLSensor (if possible)",
"entity"_a);
318 "[ccHObjectCaster] converting failed!");
319 return std::ref(*std::make_shared<ccCameraSensor>());
322 "Converts current object to ccCameraSensor (if possible)",
331 "[ccHObjectCaster] converting failed!");
332 return std::ref(*std::make_shared<ccImage>());
335 "Converts current object to ccImage (if possible)",
"entity"_a);
344 "[ccHObjectCaster] converting failed!");
345 return std::ref(*std::make_shared<cc2DLabel>());
348 "Converts current object to cc2DLabel (if possible)",
"entity"_a);
357 "[ccHObjectCaster] converting failed!");
358 return std::ref(*std::make_shared<cc2DViewportLabel>());
361 "Converts current object to cc2DViewportLabel (if possible)",
364 "To2DViewportObject",
371 "[ccHObjectCaster] converting failed!");
372 return std::ref(*std::make_shared<cc2DViewportObject>());
375 "Converts current object to cc2DViewportObject (if possible)",
384 "[ccHObjectCaster] converting failed!");
386 *std::make_shared<ccIndexedTransformationBuffer>());
389 "Converts current object to ccIndexedTransformationBuffer (if "
399 "[ccHObjectCaster] converting failed!");
400 return std::ref(*std::make_shared<Image>());
403 "Converts current object to Image (if possible)",
"entity"_a);
411 "[ccHObjectCaster] converting failed!");
412 return std::ref(*std::make_shared<RGBDImage>());
415 "Converts current object to RGBDImage (if possible)",
"entity"_a);
423 "[ccHObjectCaster] converting failed!");
424 return std::ref(*std::make_shared<VoxelGrid>());
427 "Converts current object to VoxelGrid (if possible)",
"entity"_a);
435 "[ccHObjectCaster] converting failed!");
436 return std::ref(*std::make_shared<LineSet>());
439 "Converts current object to LineSet (if possible)",
"entity"_a);
447 "[ccHObjectCaster] converting failed!");
448 return std::ref(*std::make_shared<Octree>());
451 "Converts current object to Octree (if possible)",
"entity"_a);
459 "[ccHObjectCaster] converting failed!");
460 return std::ref(*std::make_shared<ccBBox>());
463 "Converts current object to ccBBox (if possible)",
"entity"_a);
471 "[ccHObjectCaster] converting failed!");
472 return std::ref(*std::make_shared<ecvOrientedBBox>());
475 "Converts current object to ecvOrientedBBox (if possible)",
478 py::class_<ccObject, PyObjectBase<ccObject>, std::shared_ptr<ccObject>>
479 geometry(m,
"ccObject",
"The base geometry class.");
481 "Returns object unique ID.")
487 return obj.
getName().toStdString();
489 "Returns object name.")
497 "Returns whether the geometry is leaf.")
499 "Returns whether the geometry is custom.")
501 "Returns whether the geometry is hierarchy.")
503 "Returns whether the geometry is kind of the type pointed.",
506 "Returns whether the geometry is a type pointed.",
"type"_a);
519 py::enum_<CV_TYPES::GeometryType> geometry_type(geometry,
"Type",
523 py::cpp_function([](py::handle arg) -> std::string {
524 return "Enum class for Geometry types.";
526 py::none(), py::none(),
"");
567 py::class_<ccDrawableObject, PyDrawableObjectBase<ccDrawableObject>,
568 std::shared_ptr<ccDrawableObject>>
569 drawableObject(m,
"ccDrawableObject",
570 "The Generic interface for (3D) drawable entities.");
575 "Generic interface for (3D) drawable entities");
578 "Returns whether entity is visible or not.")
580 "Sets entity visibility.",
"state"_a)
582 "Toggles visibility.")
584 "Returns whether visibility is locked or not.")
586 "Locks/unlocks visibility.",
"state"_a)
588 "Returns whether entity is selected or not.")
590 "Selects/Unselects entity.",
"state"_a)
592 "Returns whether colors are enabled or not.")
594 "Returns whether colors are shown or not.")
596 "Sets colors visibility.",
"state"_a)
598 "Toggles colors display state.")
600 "Returns whether normals are enabled or not.")
602 "Returns whether normals are shown or not.")
604 "Sets normals visibility.",
"state"_a)
606 "Toggles normals display state.")
607 .def(
"has_displayed_scalar_field",
609 "Returns whether an active scalar field is available or not.")
611 "Returns whether one or more scalar fields are instantiated.")
613 "Sets active scalar field visibility.",
"state"_a)
615 "Toggles SF display state.")
617 "Returns whether active scalar field is visible.")
619 "Toggles material display state.")
621 "Sets whether name should be displayed in 3D.",
"state"_a)
623 "Returns whether name is displayed in 3D or not.")
625 "Toggles name in 3D display state.")
628 "Set opacity activation state.",
"opacity"_a)
630 "Returns whether colors are currently overridden by a "
631 "temporary (unique) color.")
637 "Returns current temporary (unique) color.")
641 bool auto_activate) {
645 "Sets current temporary (unique).",
"color"_a,
646 "auto_activate"_a =
true)
648 "Set temporary color activation state.",
"state"_a)
650 "set_gl_transformation",
652 const Eigen::Matrix4d& transformation) {
656 "Associates entity with a GL transformation (rotation + "
659 .def(
"enable_gl_transformation",
661 "Enables/disables associated GL transformation.",
"state"_a)
663 "Returns whether a GL transformation is enabled or not.")
665 "get_gl_transformation",
670 "Returns associated GL transformation.")
671 .def(
"reset_gl_transformation",
673 "Resets associated GL transformation.")
677 const Eigen::Matrix4d& rotation) {
680 "Multiplies (left) current GL transformation by a rotation "
686 const Eigen::Vector3d& translation) {
689 "Translates current GL transformation by a rotation "
696 "is_visiblity_locked");
709 "has_displayed_scalar_field");
721 "is_color_overriden");
724 m,
"ccDrawableObject",
"set_temp_color",
725 {{
"color",
"rgb color"},
726 {
"auto_activate",
"auto activates temporary color"}});
729 "set_gl_transformation");
731 "get_gl_transformation");
733 "enable_gl_transformation");
735 "is_gl_trans_enabled");
737 "reset_gl_transformation");
742 py::class_<ccHObject, PyGeometry<ccHObject>, std::shared_ptr<ccHObject>,
744 geometry3d(m,
"ccHObject", py::multiple_inheritance(),
745 "The geometry 3D class.");
750 "The ccHObject base class for 3D Geometries.");
754 "Returns whether the instance is a group.")
757 "dependencyFlags"_a = 24,
"insertIndex"_a = -1)
762 "Removes a specific child.",
"child"_a)
765 "Removes a specific child given its index.",
"pos"_a)
767 "Clear all children in the geometry.")
769 "Sets the point size.",
"pSize"_a)
771 "Sets the line width.",
"width"_a)
773 "Returns whether the instance is a serializable.")
775 "Returns ``True`` if the geometry is empty.")
777 "Returns min bounds for geometry coordinates.")
779 "Returns max bounds for geometry coordinates.")
781 "Returns min 2d bounds for geometry coordinates.")
783 "Returns max 2d bounds for geometry coordinates.")
785 "Returns the center of the geometry coordinates.")
787 "Returns an axis-aligned bounding box of the geometry.",
788 "withGLFeatures"_a =
false)
789 .def(
"get_axis_aligned_bounding_box",
791 "Returns an axis-aligned bounding box of the geometry.")
792 .def(
"get_oriented_bounding_box",
794 "Returns an oriented bounding box of the geometry.")
796 "Apply transformation (4x4 matrix) to the geometry "
799 "Apply translation to the geometry coordinates.",
800 "translation"_a,
"relative"_a =
true)
802 "Apply scaling to the geometry coordinates.",
"scale"_a)
804 py::overload_cast<double, const Eigen::Vector3d&>(
806 "Apply scaling to the geometry coordinates.",
"scale"_a,
810 "Apply rotation to the geometry coordinates and normals.",
813 py::overload_cast<
const Eigen::Matrix3d&,
815 "Apply rotation to the geometry coordinates and normals.",
822 if (!out.open(QIODevice::WriteOnly)) {
825 return entity.
toFile(out, dataVersion);
827 "Saves data to binary stream.",
"filename"_a,
830 "Returns the minimum file version required to save this "
835 short dataVersion,
int flags) {
837 if (!in.open(QIODevice::ReadOnly)) {
841 return entity.
fromFile(in, dataVersion, flags,
844 "Loads data from binary stream.",
"filename"_a,
845 "dataVersion"_a,
"flags"_a)
846 .def(
"get_glTransformation_history",
848 "Returns the transformation 'history' matrix.")
849 .def(
"set_glTransformation_history",
851 "Sets the transformation 'history' matrix (handle with "
854 .def(
"reset_glTransformation_history",
856 "Resets the transformation 'history' matrix.")
858 "Finds an entity in this object hierarchy.",
"unique_id"_a)
860 "Returns the number of children.")
863 [](
const ccHObject& entity,
bool recursive ,
869 std::vector<std::shared_ptr<ccHObject>> container;
870 for (
auto child : filteredChildren) {
871 const_cast<ccHObject&
>(entity).detachChild(child);
873 std::shared_ptr<ccHObject>(child));
877 "Collects the children corresponding to a certain pattern.",
881 py::overload_cast<CV_CLASS_ENUM, const char*>(
883 "objectType"_a,
"name"_a =
nullptr)
885 py::overload_cast<
const QString&,
const QString&,
887 "pluginId"_a,
"classId"_a,
"name"_a =
nullptr)
888 .def_static(
"get_rotation_matrix_from_xyz",
890 .def_static(
"get_rotation_matrix_from_yzx",
892 .def_static(
"get_rotation_matrix_from_zxy",
894 .def_static(
"get_rotation_matrix_from_xzy",
896 .def_static(
"get_rotation_matrix_from_zyx",
898 .def_static(
"get_rotation_matrix_from_yxz",
900 .def_static(
"get_rotation_matrix_from_axis_angle",
903 .def_static(
"get_rotation_matrix_from_euler_angle",
906 .def_static(
"get_rotation_matrix_from_quaternion",
914 m,
"ccHObject",
"add_child",
915 {{
"child",
"child instance geometry"},
916 {
"dependencyFlags",
"dependency flags"},
919 "(if <0, child is simply appended to the children list)"}});
921 {{
"childPos",
"child position"}});
923 {{
"pSize",
"point size"}});
925 {{
"width",
"line width"}});
934 m,
"ccHObject",
"get_own_bounding_box",
935 {{
"withGLFeatures",
"whether use openGL features."}});
937 "get_axis_aligned_bounding_box");
939 "get_oriented_bounding_box");
942 m,
"ccHObject",
"translate",
943 {{
"translation",
"A 3D vector to transform the geometry"},
945 "If true, the translation vector is directly added to the "
947 "coordinates. Otherwise, the center is moved to the translation "
950 m,
"ccHObject",
"scale",
952 "The scale parameter that is multiplied to the points/vertices "
954 {
"center",
"Scale center used for transformation"}});
956 m,
"ccHObject",
"rotate",
957 {{
"R",
"The rotation matrix"},
958 {
"center",
"Rotation center used for transformation"}});
960 {{
"out",
"output file (already opened)"}});
962 m,
"ccHObject",
"from_file",
963 {{
"in",
"input file (already opened)"},
964 {
"dataVersion",
"file version"},
966 "deserialization flags (see "
967 "ccSerializableObject::DeserializationFlags)"}});
969 "get_glTransformation_history");
971 m,
"ccHObject",
"set_glTransformation_history",
972 {{
"mat",
"transformation 'history' matrix"}});
974 "reset_glTransformation_history");
978 m,
"ccHObject",
"filter_children",
979 {{
"recursive",
"specifies if the search should be recursive"},
980 {
"filter",
"pattern for children selection"},
982 "whether the search is strict on the type "
983 "(i.e 'isA') or not (i.e. 'isKindOf')"}});
988 std::shared_ptr<ccPlanarEntityInterface>>
989 planarEntityInterface(m,
"ccPlanarEntityInterface",
990 "The Interface for a planar entity.");
991 planarEntityInterface
996 "ccPlanarEntityInterface with normal ({}, {}, "
997 "{}), show normal vector {}",
1006 "Returns the entity normal")
1007 .def(
"show_normal_vector",
1009 "Show normal vector.",
"state"_a)
1010 .def(
"normal_vector_is_shown",
1012 "Whether normal vector is shown or not.");
1015 "normal_vector_is_shown");
1017 "show_normal_vector",
1018 {{
"state",
"normal vector shown flag."}});
1022 py::module m_submodule = m.def_submodule(
"geometry");
int64_t CV_CLASS_ENUM
Type of object type flags (64 bits)
filament::Texture::InternalFormat format
static Vector3Tpl fromArray(const int a[3])
Constructor from an int array.
Generic interface for (3D) drawable entities.
virtual void translateGL(const CCVector3 &trans)
Translates current GL transformation by a rotation matrix.
virtual void toggleVisibility()
Toggles visibility.
virtual bool colorsShown() const
Returns whether colors are shown or not.
virtual float getOpacity() const
virtual bool isVisible() const
Returns whether entity is visible or not.
virtual void setTempColor(const ecvColor::Rgb &col, bool autoActivate=true)
Sets current temporary (unique)
virtual bool isVisibilityLocked() const
Returns whether visibility is locked or not.
virtual bool hasDisplayedScalarField() const
Returns whether an active scalar field is available or not.
virtual void toggleNormals()
Toggles normals display state.
virtual bool hasColors() const
Returns whether colors are enabled or not.
virtual void lockVisibility(bool state)
Locks/unlocks visibility.
virtual void enableGLTransformation(bool state)
Enables/disables associated GL transformation.
virtual void setVisible(bool state)
Sets entity visibility.
virtual bool sfShown() const
Returns whether active scalar field is visible.
virtual bool isGLTransEnabled() const
Returns whether a GL transformation is enabled or not.
virtual bool normalsShown() const
Returns whether normals are shown or not.
virtual const ccGLMatrix & getGLTransformation() const
Returns associated GL transformation.
virtual bool hasNormals() const
Returns whether normals are enabled or not.
virtual bool isColorOverridden() const
virtual void toggleSF()
Toggles SF display state.
virtual void toggleMaterials()
Toggles material display state.
virtual void toggleColors()
Toggles colors display state.
virtual bool isSelected() const
Returns whether entity is selected or not.
virtual void toggleShowName()
Toggles name in 3D display state.
virtual void showNameIn3D(bool state)
Sets whether name should be displayed in 3D.
virtual bool nameShownIn3D() const
Returns whether name is displayed in 3D or not.
virtual void enableTempColor(bool state)
Set temporary color activation state.
virtual void showNormals(bool state)
Sets normals visibility.
virtual void showColors(bool state)
Sets colors visibility.
virtual void showSF(bool state)
Sets active scalarfield visibility.
virtual const ecvColor::Rgb & getTempColor() const
Returns current temporary (unique) color.
virtual void setOpacity(float opacity)
Set opacity activation state.
virtual void rotateGL(const ccGLMatrix &rotMat)
Multiplies (left) current GL transformation by a rotation matrix.
virtual bool hasScalarFields() const
Returns whether one or more scalar fields are instantiated.
virtual void resetGLTransformation()
Resets associated GL transformation.
virtual void setGLTransformation(const ccGLMatrix &trans)
Associates entity with a GL transformation (rotation + translation)
virtual void setSelected(bool state)
Selects/Unselects entity.
static ccGLMatrixTpl< float > FromEigenMatrix(const Eigen::Matrix< double, 4, 4 > &mat)
static Eigen::Matrix< float, 4, 4 > ToEigenMatrix4(const ccGLMatrixTpl< float > &mat)
static ccMesh * ToMesh(ccHObject *obj)
Converts current object to ccMesh (if possible)
static ccPointCloud * ToPointCloud(ccHObject *obj, bool *isLockedVertices=nullptr)
Converts current object to 'equivalent' ccPointCloud.
static ccBBox * ToBBox(ccHObject *obj)
static cc2DViewportLabel * To2DViewportLabel(ccHObject *obj)
Converts current object to cc2DViewportLabel (if possible)
static cloudViewer::geometry::Image * ToImage2(ccHObject *obj)
static ccCameraSensor * ToCameraSensor(ccHObject *obj)
static ccCylinder * ToCylinder(ccHObject *obj)
Converts current object to ccCylinder (if possible)
static cloudViewer::geometry::Octree * ToOctree2(ccHObject *obj)
static ccDish * ToDish(ccHObject *obj)
Converts current object to ccDish (if possible)
static ccOctreeProxy * ToOctreeProxy(ccHObject *obj)
Converts current object to ccOctreeProxy (if possible)
static cloudViewer::geometry::LineSet * ToLineSet(ccHObject *obj)
static ccKdTree * ToKdTree(ccHObject *obj)
Converts current object to ccKdTree (if possible)
static cloudViewer::geometry::RGBDImage * ToRGBDImage(ccHObject *obj)
static ccExtru * ToExtru(ccHObject *obj)
Converts current object to ccExtru (if possible)
static ccPolyline * ToPolyline(ccHObject *obj)
Converts current object to ccPolyline (if possible)
static cc2DLabel * To2DLabel(ccHObject *obj)
Converts current object to cc2DLabel (if possible)
static ccSensor * ToSensor(ccHObject *obj)
Converts current object to ccSensor (if possible)
static cc2DViewportObject * To2DViewportObject(ccHObject *obj)
Converts current object to cc2DViewportObject (if possible)
static ccCoordinateSystem * ToCoordinateSystem(ccHObject *obj)
Converts current object to ccCoordinateSystem (if possible)
static ccBox * ToBox(ccHObject *obj)
Converts current object to ccBox (if possible)
static ccImage * ToImage(ccHObject *obj)
static ccSubMesh * ToSubMesh(ccHObject *obj)
Converts current object to ccSubMesh (if possible)
static ccFacet * ToFacet(ccHObject *obj)
Converts current object to ccFacet (if possible)
static ecvOrientedBBox * ToOrientedBBox(ccHObject *obj)
static ccIndexedTransformationBuffer * ToTransBuffer(ccHObject *obj)
Converts current object to ccIndexedTransformationBuffer (if possible)
static ccSphere * ToSphere(ccHObject *obj)
Converts current object to ccSphere (if possible)
static ccQuadric * ToQuadric(ccHObject *obj)
Converts current object to ccQuadric (if possible)
static ccCone * ToCone(ccHObject *obj)
Converts current object to ccCone (if possible)
static cloudViewer::geometry::VoxelGrid * ToVoxelGrid(ccHObject *obj)
static ccGBLSensor * ToGBLSensor(ccHObject *obj)
static ccPlane * ToPlane(ccHObject *obj)
Converts current object to ccPlane (if possible)
static ccTorus * ToTorus(ccHObject *obj)
Converts current object to ccTorus (if possible)
Hierarchical CLOUDVIEWER Object.
static Eigen::Matrix3d GetRotationMatrixFromYXZ(const Eigen::Vector3d &rotation)
Get Rotation Matrix from YXZ RotationType.
void setLineWidthRecursive(PointCoordinateType width)
virtual ccHObject & Scale(const double s, const Eigen::Vector3d ¢er)
Apply scaling to the geometry coordinates. Given a scaling factor , and center , a given point is tr...
virtual ccBBox getOwnBB(bool withGLFeatures=false)
Returns the entity's own bounding-box.
virtual const ccGLMatrix & getGLTransformationHistory() const
Returns the transformation 'history' matrix.
static Eigen::Matrix3d GetRotationMatrixFromYZX(const Eigen::Vector3d &rotation)
Get Rotation Matrix from YZX RotationType.
ccHObject * find(unsigned uniqueID)
Finds an entity in this object hierarchy.
bool toFile(QFile &out, short dataVersion) const override
Saves data to binary stream.
virtual ccBBox GetAxisAlignedBoundingBox() const
Returns an axis-aligned bounding box of the geometry.
virtual ecvOrientedBBox GetOrientedBoundingBox() const
static Eigen::Matrix3d GetRotationMatrixFromEulerAngle(const Eigen::Vector3d &rotation)
Get Rotation Matrix from Euler angle.
virtual Eigen::Vector3d GetCenter() const
Returns the center of the geometry coordinates.
bool isSerializable() const override
Returns whether object is serializable of not.
virtual ccHObject & Translate(const Eigen::Vector3d &translation, bool relative=true)
Apply translation to the geometry coordinates.
void removeAllChildren()
Removes all children.
short minimumFileVersion() const override
Returns the minimum file version required to save this instance.
virtual ccHObject & Rotate(const Eigen::Matrix3d &R, const Eigen::Vector3d ¢er)
Apply rotation to the geometry coordinates and normals. Given a rotation matrix , and center ,...
virtual Eigen::Vector2d GetMax2DBound() const
unsigned getChildrenNumber() const
Returns the number of children.
void setPointSizeRecursive(int pSize)
virtual bool addChild(ccHObject *child, int dependencyFlags=DP_PARENT_OF_OTHER, int insertIndex=-1)
Adds a child.
virtual void setGLTransformationHistory(const ccGLMatrix &mat)
Sets the transformation 'history' matrix (handle with care!)
static Eigen::Matrix3d GetRotationMatrixFromXYZ(const Eigen::Vector3d &rotation)
Get Rotation Matrix from XYZ RotationType.
virtual bool IsEmpty() const
static Eigen::Matrix3d GetRotationMatrixFromZXY(const Eigen::Vector3d &rotation)
Get Rotation Matrix from ZXY RotationType.
static Eigen::Matrix3d GetRotationMatrixFromQuaternion(const Eigen::Vector4d &rotation)
Get Rotation Matrix from Quaternion.
virtual Eigen::Vector3d GetMaxBound() const
Returns max bounds for geometry coordinates.
ccHObject * getParent() const
Returns parent object.
virtual Eigen::Vector3d GetMinBound() const
Returns min bounds for geometry coordinates.
static Eigen::Matrix3d GetRotationMatrixFromAxisAngle(const Eigen::Vector3d &rotation)
Get Rotation Matrix from AxisAngle RotationType.
void removeChild(ccHObject *child)
unsigned filterChildren(Container &filteredChildren, bool recursive=false, CV_CLASS_ENUM filter=CV_TYPES::OBJECT, bool strict=false) const
Collects the children corresponding to a certain pattern.
virtual ccHObject & Transform(const Eigen::Matrix4d &transformation)
Apply transformation (4x4 matrix) to the geometry coordinates.
static ccHObject * New(CV_CLASS_ENUM objectType, const char *name=nullptr)
Static factory.
bool fromFile(QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
Loads data from binary stream.
std::vector< ccHObject * > Container
Standard instances container (for children, etc.)
virtual void resetGLTransformationHistory()
Resets the transformation 'history' matrix.
static Eigen::Matrix3d GetRotationMatrixFromZYX(const Eigen::Vector3d &rotation)
Get Rotation Matrix from ZYX RotationType.
virtual Eigen::Vector2d GetMin2DBound() const
ccHObject * getChild(unsigned childPos) const
Returns the ith child.
CV_CLASS_ENUM getClassID() const override
Returns class ID.
static Eigen::Matrix3d GetRotationMatrixFromXZY(const Eigen::Vector3d &rotation)
Get Rotation Matrix from XZY RotationType.
bool isGroup() const
Returns whether the instance is a group.
Generic "CLOUDVIEWER Object" template.
virtual QString getName() const
Returns object name.
virtual unsigned getUniqueID() const
Returns object unique ID.
bool isA(CV_CLASS_ENUM type) const
virtual void setName(const QString &name)
Sets object name.
virtual void setUniqueID(unsigned ID)
Changes unique ID.
bool isKindOf(CV_CLASS_ENUM type) const
Interface for a planar entity.
void showNormalVector(bool state)
Show normal vector.
bool normalVectorIsShown() const
Whether normal vector is shown or not.
virtual CCVector3 getNormal() const =0
Returns the entity normal.
QMultiMap< unsigned, unsigned > LoadedIDMap
Map of loaded unique IDs (old ID --> new ID)
constexpr static RgbTpl FromEigen(const Eigen::Vector3d &t)
static Eigen::Vector3d ToEigen(const Type col[3])
void ClassMethodDocInject(py::module &pybind_module, const std::string &class_name, const std::string &function_name, const std::unordered_map< std::string, std::string > &map_parameter_body_docs)
py::handle static_property
void pybind_geometry_classes(py::module &m)
void pybind_meshbase_methods(py::module &m)
void pybind_octree_methods(py::module &m)
void pybind_voxelgrid(py::module &m)
void pybind_image_methods(py::module &m)
void pybind_geometry(py::module &m)
void pybind_pointcloud(py::module &m)
void pybind_polyline(py::module &m)
void pybind_tetramesh(py::module &m)
void pybind_image(py::module &m)
void pybind_primitives_methods(py::module &m)
void pybind_facet(py::module &m)
void pybind_lineset(py::module &m)
void pybind_pointcloud_methods(py::module &m)
void pybind_cloudbase(py::module &m)
void pybind_kdtreeflann(py::module &m)
void pybind_boundingvolume(py::module &m)
void pybind_meshbase(py::module &m)
void pybind_cloudbase_methods(py::module &m)
void pybind_voxelgrid_methods(py::module &m)
void pybind_octree(py::module &m)
void pybind_halfedgetrianglemesh(py::module &m)
void pybind_keypoint(py::module &m)
void pybind_lineset_methods(py::module &m)
void pybind_trianglemesh(py::module &m)
void pybind_polyline_methods(py::module &m)
void pybind_facet_methods(py::module &m)
void pybind_primitives(py::module &m)
Generic file read and write utility for python interface.