![]() |
RobWorkProject
25.2.11-
|
An abstract 3d object consisting of geometry information, material and texture. More...
#include <Object3D.hpp>
Inherits TriMesh.
Inherited by Object3D< T >.
Classes | |
struct | MaterialMapData |
Mapping from triangles to materials. More... | |
struct | MaterialPolys |
ordering polygons by material consumes more memmory but reduce switches between textures. All indices _subFaces share material _matIndex. More... | |
Public Types | |
typedef rw::core::Ptr< Object3DGeneric > | Ptr |
Smart pointer type for Object3DGeneric. | |
![]() | |
typedef rw::core::Ptr< TriMesh > | Ptr |
smart pointer type to this class | |
![]() | |
enum | GeometryType { PointCloud , LineMesh , PlainTriMesh , IdxTriMesh , SpherePrim , BoxPrim , OBBPrim , AABBPrim , LinePrim , PointPrim , PyramidPrim , ConePrim , TrianglePrim , CylinderPrim , TubePrim , PlanePrim , RayPrim , Implicit , Quadratic , UserType } |
geometry data types | |
typedef rw::core::Ptr< GeometryData > | Ptr |
smart pointer type to this class | |
typedef rw::core::Ptr< const GeometryData > | CPtr |
const smart pointer type to this class | |
Public Member Functions | |
virtual | ~Object3DGeneric () |
destructor | |
bool | hasTexture () const |
test if the object is textured | |
void | setMaterial (std::size_t material) |
set the material used by addTriangles More... | |
virtual std::size_t | countFaces () const =0 |
Get the number of faces. More... | |
virtual std::vector< rw::math::Vector3D< float > > | getFaceVertices (size_t idx) const =0 |
Returns vertices corresponding to the idx face. More... | |
virtual rw::geometry::Triangle< double > | getTriangle (size_t idx) const =0 |
gets the triangle at index idx. More... | |
virtual void | getTriangle (size_t idx, rw::geometry::Triangle< double > &dst) const |
gets the triangle at index idx. More... | |
virtual void | getTriangle (size_t idx, rw::geometry::Triangle< float > &dst) const |
gets the triangle at index idx. Using Floating point presicion More... | |
virtual GeometryType | getType () const |
the type of this primitive | |
virtual Object3DGeneric::Ptr | copy () const =0 |
![]() | |
virtual | ~TriMesh () |
destructor | |
virtual size_t | getSize () const |
gets the number of triangles in the triangle array. | |
virtual size_t | size () const =0 |
gets the number of triangles in the triangle array. | |
virtual rw::core::Ptr< TriMesh > | clone () const =0 |
make a clone of this triangle mesh More... | |
virtual void | scale (double scale)=0 |
Scale all vertices in the mesh. | |
rw::core::Ptr< TriMesh > | getTriMesh (bool forceCopy=true) |
gets a trimesh representation of this geometry data. More... | |
rw::core::Ptr< const TriMesh > | getTriMesh (bool forceCopy=true) const |
gets a trimesh representation of this geometry data. More... | |
virtual bool | isConvex () |
test if this geometry data is convex More... | |
void | setConvexEnabled (bool isConvex) |
double | getVolume () const |
calculate a volume of this triangle mesh | |
![]() | |
virtual | ~GeometryData () |
Destructor. | |
Public Attributes | |
std::string | _name |
name/id of object | |
int | _parentObj |
index of parent object | |
bool | _hasTexture |
true if any of the materials used has texture | |
std::vector< rw::math::Vector3D< float > > | _vertices |
Vertice array. | |
std::vector< rw::math::Vector3D< float > > | _normals |
Normal array, there must be exactly one normal per vertex. | |
std::vector< rw::math::Vector2D< float > > | _texCoords |
Texture coordinate array, the texture coordinates can be mapped to either vertices or faces. The reason for this is that often vertices share two or more texcoordinates and if mapping directly to vertices then additional vertices is necessary. | |
bool | _mappedToFaces |
if true then the tex coodinates are mapped to faces and not vertices. if false then the texCoords are mapped to each vertice | |
rw::math::Transform3D< float > | _transform |
Transform of the object. | |
std::vector< Object3DGeneric::Ptr > | _kids |
Child objects. | |
rw::math::Vector2D< float > | _texOffset |
Offset of texture. | |
rw::math::Vector2D< float > | _texRepeat |
Repeat texture. | |
std::vector< MaterialMapData > | _materialMap |
maps material into a range of triangles. | |
std::vector< MaterialPolys::Ptr > | _matPolys |
Polygons ordered according to material. | |
Protected Member Functions | |
Object3DGeneric (const std::string &name) | |
constructor More... | |
Additional Inherited Members | |
![]() | |
static std::string | toString (GeometryType type) |
format GeometryType to string More... | |
An abstract 3d object consisting of geometry information, material and texture.
To reduce memory, the geometry is implemented slightly differently for different mesh sizes. One of the concrete Object3D implementations should be used in practice.
|
inlineprotected |
constructor
name | [in] name of object |
|
pure virtual |
|
pure virtual |
Returns vertices corresponding to the idx face.
idx | [in] Index of the face |
Implemented in Object3D< T >.
|
pure virtual |
gets the triangle at index idx.
idx | [in] the index of the triangle. |
Implements TriMesh.
Implemented in Object3D< T >.
|
virtual |
gets the triangle at index idx.
idx | [in] the index of the triangle. |
dst | [out] where to store the triangle at index idx |
Implements TriMesh.
|
virtual |
gets the triangle at index idx. Using Floating point presicion
idx | [in] the index of the triangle. |
dst | [out] where to store the triangle at index idx |
Implements TriMesh.
void setMaterial | ( | std::size_t | material | ) |
set the material used by addTriangles
material |