ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
reusex::geometry::CoplanarPolygon Struct Reference

A closed 3D polygon whose vertices are coplanar. More...

#include <CoplanarPolygon.hpp>

Collaboration diagram for reusex::geometry::CoplanarPolygon:

Public Member Functions

double area () const
 Signed area via Newell's method projected onto the plane normal.
Eigen::Vector3d centroid () const
 Centroid (arithmetic mean of vertices).
Eigen::Vector3d normal () const
 Unit normal extracted from plane coefficients.
bool is_valid () const
 True when >= 3 vertices and nonzero plane normal.
std::pair< Eigen::Vector3d, Eigen::Vector3d > bounding_box () const
 Axis-aligned bounding box (min, max).
std::vector< uint8_t > serialize_vertices () const
 Serialize vertices to compact binary (N * 3 * sizeof(double) bytes).

Static Public Member Functions

static std::vector< Eigen::Vector3d > deserialize_vertices (const void *data, size_t size)
 Deserialize vertices from compact binary.

Public Attributes

std::vector< Eigen::Vector3d > vertices
Eigen::Vector4d plane {0, 0, 0, 0}

Detailed Description

A closed 3D polygon whose vertices are coplanar.

Vertices are ordered; the polygon is implicitly closed (last→first). The plane is stored as Hessian normal form [a,b,c,d]: ax+by+cz+d=0.

Definition at line 20 of file CoplanarPolygon.hpp.

Member Function Documentation

◆ area()

double reusex::geometry::CoplanarPolygon::area ( ) const

Signed area via Newell's method projected onto the plane normal.

◆ bounding_box()

std::pair< Eigen::Vector3d, Eigen::Vector3d > reusex::geometry::CoplanarPolygon::bounding_box ( ) const

Axis-aligned bounding box (min, max).

◆ centroid()

Eigen::Vector3d reusex::geometry::CoplanarPolygon::centroid ( ) const

Centroid (arithmetic mean of vertices).

◆ deserialize_vertices()

std::vector< Eigen::Vector3d > reusex::geometry::CoplanarPolygon::deserialize_vertices ( const void * data,
size_t size )
static

Deserialize vertices from compact binary.

◆ is_valid()

bool reusex::geometry::CoplanarPolygon::is_valid ( ) const

True when >= 3 vertices and nonzero plane normal.

◆ normal()

Eigen::Vector3d reusex::geometry::CoplanarPolygon::normal ( ) const

Unit normal extracted from plane coefficients.

◆ serialize_vertices()

std::vector< uint8_t > reusex::geometry::CoplanarPolygon::serialize_vertices ( ) const

Serialize vertices to compact binary (N * 3 * sizeof(double) bytes).

Member Data Documentation

◆ plane

Eigen::Vector4d reusex::geometry::CoplanarPolygon::plane {0, 0, 0, 0}

Definition at line 22 of file CoplanarPolygon.hpp.

◆ vertices

std::vector<Eigen::Vector3d> reusex::geometry::CoplanarPolygon::vertices

Definition at line 21 of file CoplanarPolygon.hpp.


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