Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
duckdb::GeometryExtent Class Reference

Public Member Functions

bool HasXY () const
 
bool HasZ () const
 
bool HasM () const
 
void Extend (const VertexXY &vertex)
 
void Extend (const VertexXYZ &vertex)
 
void Extend (const VertexXYM &vertex)
 
void Extend (const VertexXYZM &vertex)
 
void Merge (const GeometryExtent &other)
 
bool IntersectsXY (const GeometryExtent &other) const
 
bool IntersectsXYZM (const GeometryExtent &other) const
 
bool ContainsXY (const GeometryExtent &other) const
 

Static Public Member Functions

static GeometryExtent Unknown ()
 
static GeometryExtent Empty ()
 

Public Attributes

double x_min
 
double y_min
 
double z_min
 
double m_min
 
double x_max
 
double y_max
 
double z_max
 
double m_max
 

Static Public Attributes

static constexpr auto UNKNOWN_MIN = -std::numeric_limits<double>::infinity()
 
static constexpr auto UNKNOWN_MAX = +std::numeric_limits<double>::infinity()
 
static constexpr auto EMPTY_MIN = +std::numeric_limits<double>::infinity()
 
static constexpr auto EMPTY_MAX = -std::numeric_limits<double>::infinity()
 

Member Function Documentation

◆ Unknown()

static GeometryExtent duckdb::GeometryExtent::Unknown ( )
inlinestatic
15483 {
15484 return GeometryExtent {UNKNOWN_MIN, UNKNOWN_MIN, UNKNOWN_MIN, UNKNOWN_MIN,
15485 UNKNOWN_MAX, UNKNOWN_MAX, UNKNOWN_MAX, UNKNOWN_MAX};
15486 }

◆ Empty()

static GeometryExtent duckdb::GeometryExtent::Empty ( )
inlinestatic
15491 {
15492 return GeometryExtent {EMPTY_MIN, EMPTY_MIN, EMPTY_MIN, EMPTY_MIN, EMPTY_MAX, EMPTY_MAX, EMPTY_MAX, EMPTY_MAX};
15493 }

◆ HasXY()

bool duckdb::GeometryExtent::HasXY ( ) const
inline
15497 {
15498 return std::isfinite(x_min) && std::isfinite(y_min) && std::isfinite(x_max) && std::isfinite(y_max);
15499 }

◆ HasZ()

bool duckdb::GeometryExtent::HasZ ( ) const
inline
15502 {
15503 return std::isfinite(z_min) && std::isfinite(z_max);
15504 }

◆ HasM()

bool duckdb::GeometryExtent::HasM ( ) const
inline
15507 {
15508 return std::isfinite(m_min) && std::isfinite(m_max);
15509 }

◆ Extend() [1/4]

void duckdb::GeometryExtent::Extend ( const VertexXY vertex)
inline
15511 {
15512 x_min = MinValue(x_min, vertex.x);
15513 x_max = MaxValue(x_max, vertex.x);
15514 y_min = MinValue(y_min, vertex.y);
15515 y_max = MaxValue(y_max, vertex.y);
15516 }

◆ Extend() [2/4]

void duckdb::GeometryExtent::Extend ( const VertexXYZ vertex)
inline
15518 {
15519 x_min = MinValue(x_min, vertex.x);
15520 x_max = MaxValue(x_max, vertex.x);
15521 y_min = MinValue(y_min, vertex.y);
15522 y_max = MaxValue(y_max, vertex.y);
15523 z_min = MinValue(z_min, vertex.z);
15524 z_max = MaxValue(z_max, vertex.z);
15525 }

◆ Extend() [3/4]

void duckdb::GeometryExtent::Extend ( const VertexXYM vertex)
inline
15527 {
15528 x_min = MinValue(x_min, vertex.x);
15529 x_max = MaxValue(x_max, vertex.x);
15530 y_min = MinValue(y_min, vertex.y);
15531 y_max = MaxValue(y_max, vertex.y);
15532 m_min = MinValue(m_min, vertex.m);
15533 m_max = MaxValue(m_max, vertex.m);
15534 }

◆ Extend() [4/4]

void duckdb::GeometryExtent::Extend ( const VertexXYZM vertex)
inline
15536 {
15537 x_min = MinValue(x_min, vertex.x);
15538 x_max = MaxValue(x_max, vertex.x);
15539 y_min = MinValue(y_min, vertex.y);
15540 y_max = MaxValue(y_max, vertex.y);
15541 z_min = MinValue(z_min, vertex.z);
15542 z_max = MaxValue(z_max, vertex.z);
15543 m_min = MinValue(m_min, vertex.m);
15544 m_max = MaxValue(m_max, vertex.m);
15545 }

◆ Merge()

void duckdb::GeometryExtent::Merge ( const GeometryExtent other)
inline
15547 {
15548 x_min = MinValue(x_min, other.x_min);
15549 y_min = MinValue(y_min, other.y_min);
15550 z_min = MinValue(z_min, other.z_min);
15551 m_min = MinValue(m_min, other.m_min);
15552
15553 x_max = MaxValue(x_max, other.x_max);
15554 y_max = MaxValue(y_max, other.y_max);
15555 z_max = MaxValue(z_max, other.z_max);
15556 m_max = MaxValue(m_max, other.m_max);
15557 }

◆ IntersectsXY()

bool duckdb::GeometryExtent::IntersectsXY ( const GeometryExtent other) const
inline
15559 {
15560 return !(x_min > other.x_max || x_max < other.x_min || y_min > other.y_max || y_max < other.y_min);
15561 }

◆ IntersectsXYZM()

bool duckdb::GeometryExtent::IntersectsXYZM ( const GeometryExtent other) const
inline
15563 {
15564 return !(x_min > other.x_max || x_max < other.x_min || y_min > other.y_max || y_max < other.y_min ||
15565 z_min > other.z_max || z_max < other.z_min || m_min > other.m_max || m_max < other.m_min);
15566 }

◆ ContainsXY()

bool duckdb::GeometryExtent::ContainsXY ( const GeometryExtent other) const
inline
15568 {
15569 return x_min <= other.x_min && x_max >= other.x_max && y_min <= other.y_min && y_max >= other.y_max;
15570 }

The documentation for this class was generated from the following file: