Class PointCloudConfig

Inheritance Relationships

Base Type

Class Documentation

class PointCloudConfig : public dai::Buffer

PointCloudConfig message. Carries point cloud output settings.

Public Types

enum class CoordinateSystemType : uint8_t

Values:

enumerator DEFAULT

Default (camera coordinates, no additional transformation)

enumerator CAMERA_SOCKET

Transform to another camera.

enumerator HOUSING

Transform to housing coordinate system.

Public Functions

PointCloudConfig() = default
virtual ~PointCloudConfig()
bool getOrganized() const

Retrieve whether the point cloud is organized (all width*height points kept).

Returns:

true if all width*height points are output, false if only valid (z > 0) points are kept

std::array<std::array<float, 4>, 4> getTransformationMatrix() const

Retrieve transformation matrix applied to every output point.

Returns:

4x4 row-major transformation matrix (identity by default)

LengthUnit getLengthUnit() const

Retrieve the length unit used for output point coordinates.

PointCloudConfig &setOrganized(bool enable)

Enable or disable organized point cloud output. When true all width*height points are kept; when false only points with z > 0 are emitted.

PointCloudConfig &setTransformationMatrix(const std::array<std::array<float, 4>, 4> &transformationMatrix)

Set a 4x4 transformation matrix applied to every output point. Default is the identity matrix.

PointCloudConfig &setTransformationMatrix(const std::array<std::array<float, 3>, 3> &transformationMatrix)

Convenience overload: set a 3x3 rotation matrix (translation set to zero).

PointCloudConfig &setLengthUnit(LengthUnit unit)

Set the length unit for output point coordinates.

PointCloudConfig &setTargetCoordinateSystem(CameraBoardSocket targetCamera, bool useSpecTranslation = false)

Set target coordinate system to another camera socket.

Parameters:
  • targetCamera – Target camera socket

  • useSpecTranslation – Use spec translation instead of calibration (default: false)

PointCloudConfig &setTargetCoordinateSystem(HousingCoordinateSystem housingCS, bool useSpecTranslation = true)

Set target coordinate system to housing coordinate system.

Parameters:
  • housingCS – Target housing coordinate system

  • useSpecTranslation – Whether to use spec translation (default: true)

CoordinateSystemType getCoordinateSystemType() const

Retrieve the coordinate system type.

CameraBoardSocket getTargetCameraSocket() const

Retrieve the target camera socket (valid when coordSystemType == CAMERA_SOCKET).

HousingCoordinateSystem getTargetHousingCS() const

Retrieve the target housing coordinate system (valid when coordSystemType == HOUSING).

bool getUseSpecTranslation() const

Retrieve whether spec translation is used.

inline virtual DatatypeEnum getDatatype() const override

Get the datatype of this specific message.

Returns:

DatatypeEnum

virtual void serialize(std::vector<std::uint8_t> &metadata, DatatypeEnum &datatype) const override
DEPTHAI_SERIALIZE(PointCloudConfig, Buffer::sequenceNum, Buffer::ts, Buffer::tsDevice, organized, transformationMatrix, lengthUnit, coordSystemType, targetCameraSocket, targetHousingCS, useSpecTranslation)