OpenVDB: ConvexVoxelizer< GridType, Derived, InterruptType >::XYRangeData Class Reference

OpenVDB 13.0.0

Loading...
Searching...
No Matches
ConvexVoxelizer< GridType, Derived, InterruptType >::XYRangeData Class Reference

Class that stores endpoints of a y range for each x value within a specified range and step size. More...

`#include <openvdb/tools/impl/ConvexVoxelizer.h>`

## Public Member Functions
| XYRangeData ()=default
| XYRangeData (const ValueT &xmin, const ValueT &xmax, const Index &step=1)
| Constructor that sets the x range to span a given interval with a specific step size. This initializes all y ranges as empty.
void | expandYRange (const ValueT &x, const ValueT &ymin, const ValueT &ymax)
| Expands the y range for a given x value by updating the minimum and maximum y values if the new ones extend the current range.
void | expandYMin (const ValueT &x, const ValueT &ymin)
| Sets the minimum y value for a given x value, if the provided ymin is smaller than the current value.
void | expandYMax (const ValueT &x, const ValueT &ymax)
| Sets the maximum y value for a given x value, if the provided ymax is larger than the current value.
void | expandYRange (const ValueT &x, const ValueT &y)
| Expands the y range for a given x by adjusting ymin or ymax if the given y is smaller or larger.
void | setYMin (const ValueT &x, const ValueT &ymin)
| Set the minimum y value for a given x value, even if it is larger than the current value.
void | setYMax (const ValueT &x, const ValueT &ymax)
| Set the maximum y value for a given x value, even if it is smaller than the current value.
void | clearYRange (const ValueT &x)
| Clears the y range for a given x value, setting it to an empty interval.
void | clear ()
| Clears the data container.
void | reset (const ValueT &xmin, const ValueT &xmax, const Index &step=1)
| Resets the x range to span a given interval with a specific step size. This initializes all y ranges as empty.
Index | step () const
| Retrieves the step size used for the x values.
Index | size () const
| Returns the number of x points in the current range.
ValueT | start () const
| Retrieves the starting x value in the range.
ValueT | end () const
| Retrieves the ending x value in the range.
ValueT | getX (const Index &i) const
| Converts an index to its corresponding x value.
ValueT | getYMin (const Index &i) const
| Gets the minimum y value for a given index.
ValueT | getYMax (const Index &i) const
| Gets the maximum y value for a given index.
ValueT | getYMin (const ValueT &x) const
| Gets the minimum y value for a given x value.
ValueT | getYMax (const ValueT &x) const
| Gets the maximum y value for a given x value.
void | XYData (ValueT &x, ValueT &ymin, ValueT &ymax, const Index &i) const
| Retrieves the x, ymin, and ymax values for a given index.
bool | isEmpty () const
| Returns `true` if the container has no x values or if all y ranges are empty.
void | merge (const XYRangeData &xydata)
| Merges another XYRangeData into the current instance by combining y ranges over the overlapping x range.
void | trim ()
| Trims the x range by removing empty or invalid y ranges from the beginning and end. Truncates the range if all values are invalid.

## Detailed Description

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>
class openvdb::v13_0::tools::ConvexVoxelizer< GridType, Derived, InterruptType >::XYRangeData

Class that stores endpoints of a y range for each x value within a specified range and step size.

This class tracks y ranges (defined by ymin and ymax) for each x value over a defined interval, using a configurable step size. It allows updating, expanding, and resetting the y ranges, as well as merging data from other instances and trimming invalid entries.

## Constructor & Destructor Documentation

## ◆ XYRangeData() [1/2]

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

XYRangeData | ( |  | ) |
| default

## ◆ XYRangeData() [2/2]

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

XYRangeData | ( | const ValueT & | xmin,
|  | const ValueT & | xmax,
|  | const Index & | step = 1 )
| inline

Constructor that sets the x range to span a given interval with a specific step size. This initializes all y ranges as empty.

Parameters

  xmin | The lower bound of the x range.
  xmax | The upper bound of the x range.
  step | The step size between x values. Defaults to 1.

## Member Function Documentation

## ◆ clear()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void clear | ( |  | ) |
| inline

Clears the data container.

## ◆ clearYRange()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void clearYRange | ( | const ValueT & | x | ) |
| inline

Clears the y range for a given x value, setting it to an empty interval.

Parameters

  x | The x value.

## ◆ end()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

ValueT end | ( |  | ) | const
| inline

Retrieves the ending x value in the range.

Returns
  The end of the x range.

## ◆ expandYMax()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void expandYMax | ( | const ValueT & | x,
|  | const ValueT & | ymax )
| inline

Sets the maximum y value for a given x value, if the provided ymax is larger than the current value.

Parameters

  x | The x value.
  ymax | The maximum y value to possibly be set.

## ◆ expandYMin()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void expandYMin | ( | const ValueT & | x,
|  | const ValueT & | ymin )
| inline

Sets the minimum y value for a given x value, if the provided ymin is smaller than the current value.

Parameters

  x | The x value.
  ymin | The minimum y value to possibly be set.

## ◆ expandYRange() [1/2]

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void expandYRange | ( | const ValueT & | x,
|  | const ValueT & | y )
| inline

Expands the y range for a given x by adjusting ymin or ymax if the given y is smaller or larger.

Parameters

  x | The x value.
  y | The y value to use for expanding the range.

## ◆ expandYRange() [2/2]

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void expandYRange | ( | const ValueT & | x,
|  | const ValueT & | ymin,
|  | const ValueT & | ymax )
| inline

Expands the y range for a given x value by updating the minimum and maximum y values if the new ones extend the current range.

Parameters

  x | The x value.
  ymin | The new minimum y value to compare with and possibly update the current minimum at x.
  ymax | The new maximum y value to compare with and possibly update the current maximum at x.

## ◆ getX()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

ValueT getX | ( | const Index & | i | ) | const
| inline

Converts an index to its corresponding x value.

Parameters

  i | The index value.

Returns
  The corresponding x value.

## ◆ getYMax() [1/2]

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

ValueT getYMax | ( | const Index & | i | ) | const
| inline

Gets the maximum y value for a given index.

Parameters

  i | The index value.

Returns
  The maximum y value.

## ◆ getYMax() [2/2]

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

ValueT getYMax | ( | const ValueT & | x | ) | const
| inline

Gets the maximum y value for a given x value.

Parameters

  x | The x value.

Returns
  The maximum y value at the given x.

Note
  `x` is rounded to the nearest value in the x range.

## ◆ getYMin() [1/2]

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

ValueT getYMin | ( | const Index & | i | ) | const
| inline

Gets the minimum y value for a given index.

Parameters

  i | The index value.

Returns
  The minimum y value.

## ◆ getYMin() [2/2]

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

ValueT getYMin | ( | const ValueT & | x | ) | const
| inline

Gets the minimum y value for a given x value.

Parameters

  x | The x value.

Returns
  The minimum y value at the given x.

Note
  `x` is rounded to the nearest value in the x range.

## ◆ isEmpty()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

bool isEmpty | ( |  | ) | const
| inline

Returns `true` if the container has no x values or if all y ranges are empty.

## ◆ merge()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void merge | ( | const XYRangeData & | xydata | ) |
| inline

Merges another XYRangeData into the current instance by combining y ranges over the overlapping x range.

Parameters

  xydata | The XYRangeData to merge with.

## ◆ reset()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void reset | ( | const ValueT & | xmin,
|  | const ValueT & | xmax,
|  | const Index & | step = 1 )
| inline

Resets the x range to span a given interval with a specific step size. This initializes all y ranges as empty.

Parameters

  xmin | The lower bound of the x range.
  xmax | The upper bound of the x range.
  step | The step size between x values. Defaults to 1.

## ◆ setYMax()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void setYMax | ( | const ValueT & | x,
|  | const ValueT & | ymax )
| inline

Set the maximum y value for a given x value, even if it is smaller than the current value.

Parameters

  x | The x value.
  ymax | The maximum y value to reset.

## ◆ setYMin()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void setYMin | ( | const ValueT & | x,
|  | const ValueT & | ymin )
| inline

Set the minimum y value for a given x value, even if it is larger than the current value.

Parameters

  x | The x value.
  ymin | The minimum y value to reset.

## ◆ size()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

Index size | ( |  | ) | const
| inline

Returns the number of x points in the current range.

Returns
  The size of the x range.

## ◆ start()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

ValueT start | ( |  | ) | const
| inline

Retrieves the starting x value in the range.

Returns
  The start of the x range.

## ◆ step()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

Index step | ( |  | ) | const
| inline

Retrieves the step size used for the x values.

Returns
  The step size.

## ◆ trim()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void trim | ( |  | ) |
| inline

Trims the x range by removing empty or invalid y ranges from the beginning and end. Truncates the range if all values are invalid.

## ◆ XYData()

template<typename GridType, typename Derived, typename InterruptType = util::NullInterrupter>

void XYData | ( | ValueT & | x,
|  | ValueT & | ymin,
|  | ValueT & | ymax,
|  | const Index & | i ) const
| inline

Retrieves the x, ymin, and ymax values for a given index.

Parameters

  x | Output parameter for the x value.
  ymin | Output parameter for the minimum y value.
  ymax | Output parameter for the maximum y value.
  i | The index to query.