KrisLibrary  1.0.0
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Geometry::AnyGeometry3D Class Reference

A class that stores any kind of geometry we've defined. More...

#include <AnyGeometry.h>

Inheritance diagram for Geometry::AnyGeometry3D:
Geometry::AnyCollisionGeometry3D

Public Types

enum  Type {
  Primitive, TriangleMesh, PointCloud, ImplicitSurface,
  Group
}
 

Public Member Functions

 AnyGeometry3D (const GeometricPrimitive3D &primitive)
 
 AnyGeometry3D (const Meshing::TriMesh &mesh)
 
 AnyGeometry3D (const Meshing::PointCloud3D &pc)
 
 AnyGeometry3D (const Meshing::VolumeGrid &grid)
 
 AnyGeometry3D (const vector< AnyGeometry3D > &items)
 
 AnyGeometry3D (const AnyGeometry3D &geom)=default
 
 AnyGeometry3D (AnyGeometry3D &&geom)=default
 
AnyGeometry3Doperator= (const AnyGeometry3D &rhs)=default
 
AnyGeometry3Doperator= (AnyGeometry3D &&rhs)=default
 
const char * TypeName () const
 
const GeometricPrimitive3DAsPrimitive () const
 
const Meshing::TriMeshAsTriangleMesh () const
 
const Meshing::PointCloud3DAsPointCloud () const
 
const Meshing::VolumeGridAsImplicitSurface () const
 
const vector< AnyGeometry3D > & AsGroup () const
 
GeometricPrimitive3DAsPrimitive ()
 
Meshing::TriMeshAsTriangleMesh ()
 
Meshing::PointCloud3DAsPointCloud ()
 
Meshing::VolumeGridAsImplicitSurface ()
 
vector< AnyGeometry3D > & AsGroup ()
 
GLDraw::GeometryAppearanceTriangleMeshAppearanceData ()
 
const GLDraw::GeometryAppearanceTriangleMeshAppearanceData () const
 
bool Load (const char *fn)
 
bool Save (const char *fn) const
 
bool Load (istream &in)
 
bool Save (ostream &out) const
 
bool Load (TiXmlElement *in)
 
bool Save (TiXmlElement *out) const
 
bool Empty () const
 
size_t NumElements () const
 
GeometricPrimitive3D GetElement (int elem) const
 
AABB3D GetAABB () const
 
void Transform (const RigidTransform &T)
 
void Transform (const Matrix4 &mat)
 
void Merge (const vector< AnyGeometry3D > &geoms)
 
bool Convert (Type restype, AnyGeometry3D &res, double param=0) const
 

Static Public Member Functions

static const char * TypeName (Type type)
 
static bool CanLoadExt (const char *ext)
 
static bool CanSaveExt (const char *ext)
 

Public Attributes

Type type
 
AnyValue data
 The data, according to the type.
 
AnyValue appearanceData
 Optional appearance data, according to the type.
 

Detailed Description

A class that stores any kind of geometry we've defined.

To get the data, first check the "type" member. Then call the appropriate AsX method to retrieve the data in the underlying format.

Some types may also store auxiliary appearance data. Right now the only thing that's supported is the GLDraw::GeometryAppearance data for TriangleMesh data. This may also be NULL, for geometries that don't store appearance information. You can get these using the XAppearanceData functions.

Member Enumeration Documentation

Map of types to classes in the value member

  • Primitive: GeometricPrimitive3D
  • TriangleMesh: TriMesh
  • PointCloud: PointCloud3D
  • ImplicitSurface: VolumeGrid
  • Group: vector<AnyGeometry3D>

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