ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ccSensor.cpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #include <pybind11/native_enum.h>
9 #include <pybind11/pybind11.h>
10 
11 #include <ecvGenericDisplayTools.h>
12 #include <ecvSensor.h>
13 
14 #include "../casters.h"
15 
16 namespace py = pybind11;
17 using namespace pybind11::literals;
18 
19 void define_ccSensor(py::module &m)
20 {
21  py::native_enum<CC_SENSOR_TYPE>(m, "CC_SENSOR_TYPE", "enum.Enum", "CC_SENSOR_TYPE.")
22  .value("UNKNOWN_SENSOR", CC_SENSOR_TYPE::UNKNOWN_SENSOR)
23  .value("GROUND_BASED_LIDAR", CC_SENSOR_TYPE::GROUND_BASED_LIDAR)
24  .export_values()
25  .finalize();
26 
27  py::class_<ccSensor, ccHObject>(m, "ccSensor")
28  .def(py::init<const QString &>())
29  .def("checkVisibility", &ccSensor::checkVisibility, "P"_a)
30  // TODO.def("getPositions", &ccSensor::getPositions)
31  .def("addPosition", &ccSensor::addPosition, "trans"_a, "index"_a)
32  .def(
33  "getAbsoluteTransformation", &ccSensor::getAbsoluteTransformation, "trans"_a, "index"_a)
34  .def("getActiveAbsoluteTransformation",
36  "trans"_a)
37  .def("getActiveAbsoluteCenter", &ccSensor::getActiveAbsoluteCenter, "vec"_a)
38  .def("getActiveAbsoluteRotation", &ccSensor::getActiveAbsoluteRotation, "rotation"_a)
39  .def("setRigidTransformation", &ccSensor::setRigidTransformation, "mat"_a)
40  .def("getRigidTransformation",
42  .def("getIndexBounds",
43  [](const ccSensor &self)
44  {
45  double min, max;
46  self.getIndexBounds(min, max);
47 
48  return py::make_tuple(min, max);
49  })
50  .def("getActiveIndex", &ccSensor::getActiveIndex)
51  .def("setActiveIndex", &ccSensor::setActiveIndex, "index"_a)
52  .def("setGraphicScale", &ccSensor::setGraphicScale, "scale"_a)
53  .def("getGraphicScale", &ccSensor::getGraphicScale)
54  .def("applyViewport", &ccSensor::applyViewport);
55 }
void define_ccSensor(py::module &m)
Definition: ccSensor.cpp:19
Float version of ccGLMatrixTpl.
Definition: ecvGLMatrix.h:19
Generic sensor interface.
Definition: ecvSensor.h:27
PointCoordinateType getGraphicScale() const
Returns the sensor graphic representation scale.
Definition: ecvSensor.h:128
bool addPosition(ccGLMatrix &trans, double index)
Adds a new position (shortcut)
bool getActiveAbsoluteCenter(CCVector3 &vec) const
Gets currently active absolute position.
virtual unsigned char checkVisibility(const CCVector3 &P) const
Returns the "visibility type" of a point.
Definition: ecvSensor.h:58
virtual ccGLMatrix & getRigidTransformation()
Definition: ecvSensor.h:105
bool getAbsoluteTransformation(ccIndexedTransformation &trans, double index) const
bool getActiveAbsoluteTransformation(ccIndexedTransformation &trans) const
Gets currently active absolute transformation.
double getActiveIndex() const
Sets currently active index (displayed position, etc.)
Definition: ecvSensor.h:119
virtual bool applyViewport()
Apply sensor 'viewport' to a 3D view.
virtual void setRigidTransformation(const ccGLMatrix &mat)
Definition: ecvSensor.h:99
void setActiveIndex(double index)
Sets currently active index (displayed position, etc.)
Definition: ecvSensor.h:122
void setGraphicScale(PointCoordinateType scale)
Sets the sensor graphic representation scale.
Definition: ecvSensor.h:125
bool getActiveAbsoluteRotation(ccGLMatrix &rotation) const
Gets currently active rotation matrix (without translation)
int min(int a, int b)
Definition: cutil_math.h:53
int max(int a, int b)
Definition: cutil_math.h:48
@ GROUND_BASED_LIDAR
Definition: ecvSensor.h:17
@ UNKNOWN_SENSOR
Definition: ecvSensor.h:16