|
Moby
|
A potentially-non-convex polyhedron of genus 0. More...
#include <Polyhedron.h>
Classes | |
| struct | Edge |
| The edge structure. More... | |
| struct | Face |
| The face structure. More... | |
| struct | Feature |
| A vertex, face, or edge in a polyhedron. More... | |
| struct | Vertex |
| The vertex structure. More... | |
| class | VertexFaceIterator |
| iterates over the vertices in a face More... | |
Public Types | |
| enum | LocationType { eInside, eOutside, eOnVertex, eOnEdge, eOnFace } |
| enum | FeatureType { eVertex, eEdge, eFace } |
| Gets the Voronoi plane from two input features. More... | |
Public Member Functions | |
| Polyhedron () | |
| Creates a minimum polyhedron. | |
| Polyhedron (const Polyhedron &p) | |
| boost::shared_ptr < Polyhedron::Feature > | find_closest_feature (const Ravelin::Origin3d &p, unsigned closest_facet) const |
| Finds the closest feature of the polyhedron to the point, given the closest facet. More... | |
| Polyhedron & | operator= (const Polyhedron &p) |
| Assignment operator. | |
| Polyhedron | shallow_copy () const |
| Does a shallow copy of this polyhedron. | |
|
std::vector< boost::shared_ptr < Vertex > > & | get_vertices () |
|
const std::vector < boost::shared_ptr< Vertex > > & | get_vertices () const |
|
const std::vector < boost::shared_ptr< Edge > > & | get_edges () const |
|
const std::vector < boost::shared_ptr< Face > > & | get_faces () const |
| bool | inside (const Ravelin::Origin3d &point, double tol=NEAR_ZERO) |
| bool | inside_or_on (const Ravelin::Origin3d &point, double tol=NEAR_ZERO) |
| LocationType | location (const Ravelin::Origin3d &point, boost::shared_ptr< Polyhedron::Feature > &closest_feature, double tol=NEAR_ZERO) const |
| double | calc_volume () const |
| bool | degenerate () const |
| void | write_to_obj (const std::string &filename) const |
| Writes the polyhedron to Wavefront OBJ format. | |
| Polyhedron | transform (const Ravelin::Transform3d &T) const |
| Transforms a polyhedron. | |
| double | calc_signed_distance (const Ravelin::Origin3d &point, unsigned &closest_facet) const |
| Gets the signed distance and closest facet to a point. | |
| double | calc_signed_distance (const Ravelin::Origin3d &point) const |
| Gets the signed distance from a point to the polyhedron. | |
|
std::pair< Ravelin::Origin3d, Ravelin::Origin3d > | get_bounding_box_corners () const |
| Gets the corners of the axis-aligned bounding box of this polyhedron. | |
| bool | is_convex () |
| Determines whether this polyhedron convex (to w/in floating point tolerance) | |
| double | convexity () |
| Gets the convexity of this polyhedron. More... | |
| template<class ForwardIterator > | |
| Polyhedron | calc_convex_hull (ForwardIterator begin, ForwardIterator end) |
| Computes the convex hull for a polyhedron. | |
Static Public Member Functions | |
| static double | vclip (boost::shared_ptr< const PolyhedralPrimitive > pA, boost::shared_ptr< const PolyhedralPrimitive > pB, boost::shared_ptr< const Ravelin::Pose3d > poseA, boost::shared_ptr< const Ravelin::Pose3d > poseB, boost::shared_ptr< const Polyhedron::Feature > &closestA, boost::shared_ptr< const Polyhedron::Feature > &closestB) |
| Executes the V-Clip algorithm on two polyhedra, determining closest features and signed distance. | |
| static Polyhedron | calc_minkowski_diff (boost::shared_ptr< const PolyhedralPrimitive > pA, boost::shared_ptr< const PolyhedralPrimitive > pB, boost::shared_ptr< const Ravelin::Pose3d > poseA, boost::shared_ptr< const Ravelin::Pose3d > poseB) |
| Computes the Minkowski difference of two polyhedral primitives. More... | |
| static void | to_vrml (std::ostream &out, const Polyhedron &p, Ravelin::Origin3d diffuse_color=Ravelin::Origin3d(1, 1, 1), bool wireframe=false) |
| Finds the feature(s) of this polyhedron closest to the point. More... | |
| template<class ForwardIterator > | |
| static Polyhedron | calc_convex_hull (ForwardIterator begin, ForwardIterator end) |
| Computes the convex hull for a polyhedron. | |
| static double | calc_dist (FeatureType fA, FeatureType fB, boost::shared_ptr< const Polyhedron::Feature > closestA, boost::shared_ptr< const Polyhedron::Feature > closestB, Ravelin::Transform3d &aTb) |
| Computes the distance between two features. | |
Friends | |
| class | TessellatedPolyhedron |
A potentially-non-convex polyhedron of genus 0.
Gets the Voronoi plane from two input features.
The function takes the tyoes and the pointers of the two features and returns a plane If a point is a positive distance away from the plane, then the point is closer to the first feature If a point is a negative distance away from the plane, then the point is closer to the second feature
|
static |
Computes the Minkowski difference of two polyhedral primitives.
|
inline |
Gets the convexity of this polyhedron.
Convexity values less than epsilon (where epsilon is some number near zero) indicate that the polyhedron is convex; greater values indicate that the polyhedron is non-convex.
Referenced by is_convex().
| boost::shared_ptr< Polyhedron::Feature > Polyhedron::find_closest_feature | ( | const Ravelin::Origin3d & | p, |
| unsigned | closest_facet | ||
| ) | const |
Finds the closest feature of the polyhedron to the point, given the closest facet.
| closest_facet | the closest facet to the point on return |
|
static |
Finds the feature(s) of this polyhedron closest to the point.
| p | the query point |
| closest_features | the closest features on return |
| inside | whether the point is inside or outside the polyhedron on return |
References Moby::Polyhedron::VertexFaceIterator::advance(), and Moby::Polyhedron::VertexFaceIterator::has_next().
1.8.6