Region of Interest

Restricts the capture output to a three-dimensional box and/or a depth range.

For guidance on choosing these settings, see Region of Interest.

class RegionOfInterest

Removes points outside the region of interest.

Public Functions

RegionOfInterest()

Default constructor.

template<typename ...Args>
inline explicit RegionOfInterest(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing RegionOfInterest then invoking set(args).

The provided arguments must be descendants of RegionOfInterest. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of RegionOfInterest. These types can be provided:

template<typename ...Args>
inline RegionOfInterest copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this RegionOfInterest object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of RegionOfInterest. These types can be provided:

inline const Box &box() const

Get Box.

inline Box &box()

Get Box.

inline RegionOfInterest &set(const Box &value)

Set Box.

inline RegionOfInterest &set(const Box::Enabled &value)

Set Box::Enabled.

inline RegionOfInterest &set(const Box::Extents &value)

Set Box::Extents.

inline RegionOfInterest &set(const Box::PointA &value)

Set Box::PointA.

inline RegionOfInterest &set(const Box::PointB &value)

Set Box::PointB.

inline RegionOfInterest &set(const Box::PointO &value)

Set Box::PointO.

inline const Depth &depth() const

Get Depth.

inline Depth &depth()

Get Depth.

inline RegionOfInterest &set(const Depth &value)

Set Depth.

inline RegionOfInterest &set(const Depth::Enabled &value)

Set Depth::Enabled.

inline RegionOfInterest &set(const Depth::Range &value)

Set Depth::Range.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const RegionOfInterest &other) const

Equality operator.

bool operator!=(const RegionOfInterest &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"RegionOfInterest"}

The full path for this value.

static constexpr const char *name = {"RegionOfInterest"}

The name of this value.

static constexpr const char * description  { R"description(Removes points outside the region of interest.)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const RegionOfInterest &value)

Operator to send the value as string to a stream.

class Box

Removes points outside the given three-dimensional box.

Using this feature may significantly speed up acquisition and processing time, because one can avoid acquiring and processing data that is guaranteed to fall outside of the region of interest. The degree of speed-up depends on the size and shape of the box. Generally, a smaller box yields a greater speed-up.

The box is defined by three points: O, A and B. These points define two vectors, OA that goes from PointO to PointA, and OB that goes from PointO to PointB. This gives 4 points O, A, B and (O + OA + OB), that together form a parallelogram in 3D.

Two extents can be provided, to extrude the parallelogram along the surface normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped). The surface normal vector is defined by the cross product OA x OB.

Public Functions

Box()

Default constructor.

template<typename ...Args>
inline explicit Box(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing Box then invoking set(args).

The provided arguments must be descendants of Box. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of Box. These types can be provided:

template<typename ...Args>
inline Box copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this Box object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of Box. These types can be provided:

inline const Enabled &isEnabled() const

Get Enabled.

inline Enabled &isEnabled()

Get Enabled.

inline Box &set(const Enabled &value)

Set Enabled.

inline const Extents &extents() const

Get Extents.

inline Extents &extents()

Get Extents.

inline Box &set(const Extents &value)

Set Extents.

inline const PointA &pointA() const

Get PointA.

inline PointA &pointA()

Get PointA.

inline Box &set(const PointA &value)

Set PointA.

inline const PointB &pointB() const

Get PointB.

inline PointB &pointB()

Get PointB.

inline Box &set(const PointB &value)

Set PointB.

inline const PointO &pointO() const

Get PointO.

inline PointO &pointO()

Get PointO.

inline Box &set(const PointO &value)

Set PointO.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const Box &other) const

Equality operator.

bool operator!=(const Box &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"RegionOfInterest/Box"}

The full path for this value.

static constexpr const char *name = {"Box"}

The name of this value.

static constexpr const char * description  {R"description(Removes points outside the given three-dimensional box.Using this feature may significantly speed up acquisition andprocessingtime, becauseone can avoid acquiring andprocessingdata that is guaranteed to fall outside of theregion of interest. The degree of speed-up depends on the size and shape of the box.Generally, a smallerboxyields a greater speed-up.Theboxis defined by three points: O, A and B. These points define two vectors,OA that goes fromPointO to PointA, and OB that goes from PointOto PointB.This gives 4 points O, A, B and (O + OA + OB), that together form aparallelogram in 3D.Twoextentscan be provided, to extrude the parallelogram along the surfacenormal vector of the parallelogram plane. This creates a 3D volume (parallelepiped).The surface normal vector is defined by the cross product OA x OB.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Box &value)

Operator to send the value as string to a stream.

class Enabled

Enable or disable box filter.

Public Types

using ValueType = bool

The type of the underlying value.

Public Functions

Enabled() = default

Default constructor.

inline explicit constexpr Enabled(bool value)

Constructor.

bool value() const

Get the value.

If this object does not contain a value (see hasValue) then this method throws an exception.

bool hasValue() const

Check if the value is set.

void reset()

Reset the node to unset state.

std::string toString() const

Get the value as string.

inline bool operator==(const Enabled &other) const

Comparison operator.

inline bool operator!=(const Enabled &other) const

Comparison operator.

Public Static Functions

static inline std::set<bool> validValues()

All valid values of Enabled.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"RegionOfInterest/Box/Enabled"}

The full path for this value.

static constexpr const char *name = {"Enabled"}

The name of this value.

static constexpr const char * description  {R"description(Enable or disableboxfilter.)description"}

The description for this value.

static const Enabled yes

On/enabled.

static const Enabled no

Off/disabled.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Enabled &value)

Operator to serialize the value to a stream.

class Extents

Two points on the normal describing the direction and distance from the plane from which the normal is derived.

Public Types

using ValueType = Zivid::Range<double>

The type of the underlying value.

Public Functions

Extents() = default

Default constructor.

inline explicit constexpr Extents(Zivid::Range<double> value)

Constructor.

const Zivid::Range<double> &value() const

Get the value.

If this object does not contain a value (see hasValue) then this method throws an exception.

bool hasValue() const

Check if the value is set.

void reset()

Reset the node to unset state.

std::string toString() const

Get the value as string.

inline explicit constexpr Extents(double minValue, double maxValue)

Constructor.

inline bool operator==(const Extents &other) const

Comparison operator.

inline bool operator!=(const Extents &other) const

Comparison operator.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"RegionOfInterest/Box/Extents"}

The full path for this value.

static constexpr const char *name = {"Extents"}

The name of this value.

static constexpr const char * description  {R"description(Two points on the normal describing the direction and distance from the plane from which the normal is derived.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Extents &value)

Operator to serialize the value to a stream.

class PointA

A point such that the vector from PointO to PointA describes the first edge of the parallelogram.

Public Types

using ValueType = Zivid::PointXYZ

The type of the underlying value.

Public Functions

PointA() = default

Default constructor.

inline explicit constexpr PointA(Zivid::PointXYZ value)

Constructor.

Zivid::PointXYZ value() const

Get the value.

If this object does not contain a value (see hasValue) then this method throws an exception.

bool hasValue() const

Check if the value is set.

void reset()

Reset the node to unset state.

std::string toString() const

Get the value as string.

inline explicit constexpr PointA(float x, float y, float z)

Constructor.

inline bool operator==(const PointA &other) const

Comparison operator.

inline bool operator!=(const PointA &other) const

Comparison operator.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"RegionOfInterest/Box/PointA"}

The full path for this value.

static constexpr const char *name = {"PointA"}

The name of this value.

static constexpr const char * description  {R"description(A point such that the vector fromPointO to PointAdescribes the first edge of the parallelogram.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const PointA &value)

Operator to serialize the value to a stream.

class PointB

A point such that the vector from PointO to PointB describes the second edge of the parallelogram.

Public Types

using ValueType = Zivid::PointXYZ

The type of the underlying value.

Public Functions

PointB() = default

Default constructor.

inline explicit constexpr PointB(Zivid::PointXYZ value)

Constructor.

Zivid::PointXYZ value() const

Get the value.

If this object does not contain a value (see hasValue) then this method throws an exception.

bool hasValue() const

Check if the value is set.

void reset()

Reset the node to unset state.

std::string toString() const

Get the value as string.

inline explicit constexpr PointB(float x, float y, float z)

Constructor.

inline bool operator==(const PointB &other) const

Comparison operator.

inline bool operator!=(const PointB &other) const

Comparison operator.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"RegionOfInterest/Box/PointB"}

The full path for this value.

static constexpr const char *name = {"PointB"}

The name of this value.

static constexpr const char * description  {R"description(A point such that the vector fromPointO to PointBdescribes the second edge of the parallelogram.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const PointB &value)

Operator to serialize the value to a stream.

class PointO

The point at the intersection of two adjacent edges defining a parallelogram.

Public Types

using ValueType = Zivid::PointXYZ

The type of the underlying value.

Public Functions

PointO() = default

Default constructor.

inline explicit constexpr PointO(Zivid::PointXYZ value)

Constructor.

Zivid::PointXYZ value() const

Get the value.

If this object does not contain a value (see hasValue) then this method throws an exception.

bool hasValue() const

Check if the value is set.

void reset()

Reset the node to unset state.

std::string toString() const

Get the value as string.

inline explicit constexpr PointO(float x, float y, float z)

Constructor.

inline bool operator==(const PointO &other) const

Comparison operator.

inline bool operator!=(const PointO &other) const

Comparison operator.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"RegionOfInterest/Box/PointO"}

The full path for this value.

static constexpr const char *name = {"PointO"}

The name of this value.

static constexpr const char * description  {R"description(The point at the intersection of two adjacent edges defining a parallelogram.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const PointO &value)

Operator to serialize the value to a stream.

class Depth

Removes points that reside outside of a depth range, meaning that their Z coordinate falls above a given maximum or below a given minimum.

Public Functions

Depth()

Default constructor.

template<typename ...Args>
inline explicit Depth(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing Depth then invoking set(args).

The provided arguments must be descendants of Depth. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of Depth. These types can be provided:

template<typename ...Args>
inline Depth copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this Depth object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of Depth. These types can be provided:

inline const Enabled &isEnabled() const

Get Enabled.

inline Enabled &isEnabled()

Get Enabled.

inline Depth &set(const Enabled &value)

Set Enabled.

inline const Range &range() const

Get Range.

inline Range &range()

Get Range.

inline Depth &set(const Range &value)

Set Range.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const Depth &other) const

Equality operator.

bool operator!=(const Depth &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"RegionOfInterest/Depth"}

The full path for this value.

static constexpr const char *name = {"Depth"}

The name of this value.

static constexpr const char * description  {R"description(Removes points that reside outside of adepth range, meaning that their Z coordinatefalls above a given maximum or below a given minimum.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Depth &value)

Operator to send the value as string to a stream.

class Enabled

Enable or disable depth filter.

Public Types

using ValueType = bool

The type of the underlying value.

Public Functions

Enabled() = default

Default constructor.

inline explicit constexpr Enabled(bool value)

Constructor.

bool value() const

Get the value.

If this object does not contain a value (see hasValue) then this method throws an exception.

bool hasValue() const

Check if the value is set.

void reset()

Reset the node to unset state.

std::string toString() const

Get the value as string.

inline bool operator==(const Enabled &other) const

Comparison operator.

inline bool operator!=(const Enabled &other) const

Comparison operator.

Public Static Functions

static inline std::set<bool> validValues()

All valid values of Enabled.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"RegionOfInterest/Depth/Enabled"}

The full path for this value.

static constexpr const char *name = {"Enabled"}

The name of this value.

static constexpr const char * description  {R"description(Enable or disabledepthfilter.)description"}

The description for this value.

static const Enabled yes

On/enabled.

static const Enabled no

Off/disabled.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Enabled &value)

Operator to serialize the value to a stream.

class Range

Specify the minimum and maximum Z value that will be included.

Public Types

using ValueType = Zivid::Range<double>

The type of the underlying value.

Public Functions

Range() = default

Default constructor.

inline explicit constexpr Range(Zivid::Range<double> value)

Constructor.

const Zivid::Range<double> &value() const

Get the value.

If this object does not contain a value (see hasValue) then this method throws an exception.

bool hasValue() const

Check if the value is set.

void reset()

Reset the node to unset state.

std::string toString() const

Get the value as string.

inline explicit constexpr Range(double minValue, double maxValue)

Constructor.

inline bool operator==(const Range &other) const

Comparison operator.

inline bool operator!=(const Range &other) const

Comparison operator.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"RegionOfInterest/Depth/Range"}

The full path for this value.

static constexpr const char *name = {"Range"}

The name of this value.

static constexpr const char * description  {R"description(Specify the minimum and maximum Zvaluethat will be included.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Range &value)

Operator to serialize the value to a stream.

struct RegionOfInterestGroup

Removes points outside the region of interest.

Public Functions

inline RegionOfInterestGroup()

Constructor.

RegionOfInterestGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

RegionOfInterestGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

struct BoxGroup

Removes points outside the given three-dimensional box.

Using this feature may significantly speed up acquisition and processing time, because one can avoid acquiring and processing data that is guaranteed to fall outside of the region of interest. The degree of speed-up depends on the size and shape of the box. Generally, a smaller box yields a greater speed-up.

The box is defined by three points: O, A and B. These points define two vectors, OA that goes from PointO to PointA, and OB that goes from PointO to PointB. This gives 4 points O, A, B and (O + OA + OB), that together form a parallelogram in 3D.

Two extents can be provided, to extrude the parallelogram along the surface normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped). The surface normal vector is defined by the cross product OA x OB.

Public Functions

inline BoxGroup()

Constructor.

BoxGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

BoxGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

System::Nullable<bool> Enabled

Enable or disable box filter.

Zivid::NET::Range< typename Zivid::Settings::RegionOfInterest::Box::Extents::ValueType::Type >^ Extents

Two points on the normal describing the direction and distance from the plane from which the normal is derived.

Zivid::NET::PointXYZ^ PointA

A point such that the vector from PointO to PointA describes the first edge of the parallelogram.

Zivid::NET::PointXYZ^ PointB

A point such that the vector from PointO to PointB describes the second edge of the parallelogram.

Zivid::NET::PointXYZ^ PointO

The point at the intersection of two adjacent edges defining a parallelogram.

struct DepthGroup

Removes points that reside outside of a depth range, meaning that their Z coordinate falls above a given maximum or below a given minimum.

Public Functions

inline DepthGroup()

Constructor.

DepthGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

DepthGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

System::Nullable<bool> Enabled

Enable or disable depth filter.

Zivid::NET::Range< typename Zivid::Settings::RegionOfInterest::Depth::Range::ValueType::Type >^ Range

Specify the minimum and maximum Z value that will be included.

class RegionOfInterest(
box: Box | None = None,
depth: Depth | None = None,
)

Removes points outside the region of interest.

class Box(
enabled: bool | None = _zivid.Settings.RegionOfInterest.Box.Enabled().value,
extents=_zivid.Settings.RegionOfInterest.Box.Extents().value,
point_a=_zivid.Settings.RegionOfInterest.Box.PointA().value,
point_b=_zivid.Settings.RegionOfInterest.Box.PointB().value,
point_o=_zivid.Settings.RegionOfInterest.Box.PointO().value,
)

Removes points outside the given three-dimensional box. Using this feature may significantly speed up acquisition and processing time, because one can avoid acquiring and processing data that is guaranteed to fall outside of the region of interest. The degree of speed-up depends on the size and shape of the box. Generally, a smaller box yields a greater speed-up. The box is defined by three points: O, A and B. These points define two vectors, OA that goes from PointO to PointA, and OB that goes from PointO to PointB. This gives 4 points O, A, B and (O + OA + OB), that together form a parallelogram in 3D. Two extents can be provided, to extrude the parallelogram along the surface normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped). The surface normal vector is defined by the cross product OA x OB.

property enabled

Enable or disable box filter.

property extents

Two points on the normal describing the direction and distance from the plane from which the normal is derived.

property point_a

A point such that the vector from PointO to PointA describes the first edge of the parallelogram.

property point_b

A point such that the vector from PointO to PointB describes the second edge of the parallelogram.

property point_o

The point at the intersection of two adjacent edges defining a parallelogram.

class Depth(
enabled: bool | None = _zivid.Settings.RegionOfInterest.Depth.Enabled().value,
range=_zivid.Settings.RegionOfInterest.Depth.Range().value,
)

Removes points that reside outside of a depth range, meaning that their Z coordinate falls above a given maximum or below a given minimum.

property enabled

Enable or disable depth filter.

property range

Specify the minimum and maximum Z value that will be included.

property box

Removes points outside the given three-dimensional box. Using this feature may significantly speed up acquisition and processing time, because one can avoid acquiring and processing data that is guaranteed to fall outside of the region of interest. The degree of speed-up depends on the size and shape of the box. Generally, a smaller box yields a greater speed-up. The box is defined by three points: O, A and B. These points define two vectors, OA that goes from PointO to PointA, and OB that goes from PointO to PointB. This gives 4 points O, A, B and (O + OA + OB), that together form a parallelogram in 3D. Two extents can be provided, to extrude the parallelogram along the surface normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped). The surface normal vector is defined by the cross product OA x OB.

property depth

Removes points that reside outside of a depth range, meaning that their Z coordinate falls above a given maximum or below a given minimum.