RobWorkProject  20.10.1-
Public Types | Public Member Functions | Public Attributes | List of all members
Model3D::Object3D< T > Class Template Reference

A concrete 3d object consisting of geometry information, material and texture. More...

#include <Model3D.hpp>

Inherits Model3D::Object3DGeneric.

Public Types

typedef rw::core::Ptr< Object3DPtr
 Smart pointer type for Object3D.
 
- Public Types inherited from Model3D::Object3DGeneric
typedef rw::core::Ptr< Object3DGenericPtr
 Smart pointer type for Object3DGeneric.
 

Public Member Functions

 Object3D (const std::string &name)
 constructor More...
 
virtual std::size_t countFaces () const
 Get the number of faces. More...
 
virtual std::vector< rw::math::Vector3D< float > > getFaceVertices (size_t idx) const
 Returns vertices corresponding to the idx face. More...
 
void addTriangle (const rw::geometry::IndexedTriangle< T > &tri)
 add triangle using currently selected material
 
void addTriangles (const std::vector< rw::geometry::IndexedTriangle< T > > &tris)
 add triangles using currently selected material
 
void addTriangles (T material, const std::vector< rw::geometry::IndexedTriangle< T > > &tris)
 add triangles to this object using a specific material in the Model3D More...
 
void scale (float scale)
 Scales the model by scale. More...
 
- Public Member Functions inherited from Model3D::Object3DGeneric
bool hasTexture () const
 test if the object is textured
 
void setMaterial (std::size_t material)
 set the material used by addTriangles More...
 

Public Attributes

std::vector< rw::geometry::IndexedTriangle< T > > _faces
 list containing indexed polygons. The polygons index into the _vertices array and the _normals array The normal is implicitly indexed and defined as same index as the vertex.
 
std::vector< rw::geometry::IndexedPolygonN< T > > _polys
 list containing indexed polygons. The polygons index into the _vertices array and the _normals array The normal is implicitly indexed and defined as same index as the vertex.
 
- Public Attributes inherited from Model3D::Object3DGeneric
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.
 

Additional Inherited Members

- Protected Member Functions inherited from Model3D::Object3DGeneric
 Object3DGeneric (const std::string &name)
 constructor More...
 

Detailed Description

template<class T = uint16_t>
class rw::graphics::Model3D::Object3D< T >

A concrete 3d object consisting of geometry information, material and texture.

The template parameter should be chosen based on the number of vertices in the mesh, in order to reduce memory consumption.

For a mesh that has 255 vertices or less, use Object3D<uint8_t>.

For a mesh that has 65535 vertices or less, use Object3D<uint16_t>.

For a mesh that has more than 65535 vertices, use Object3D<uint32_t>.

Constructor & Destructor Documentation

◆ Object3D()

Object3D ( const std::string &  name)
inline

constructor

Parameters
name[in] name of object

Member Function Documentation

◆ addTriangles()

void addTriangles ( material,
const std::vector< rw::geometry::IndexedTriangle< T > > &  tris 
)
inline

add triangles to this object using a specific material in the Model3D

Parameters
material[in] index of the material to be used
tris[in] triangles to add

◆ countFaces()

virtual std::size_t countFaces ( ) const
inlinevirtual

Get the number of faces.

Returns
the number of faces.

Implements Model3D::Object3DGeneric.

◆ getFaceVertices()

virtual std::vector< rw::math::Vector3D< float > > getFaceVertices ( size_t  idx) const
inlinevirtual

Returns vertices corresponding to the idx face.

Parameters
idx[in] Index of the face
Returns
List with vertices

Implements Model3D::Object3DGeneric.

◆ scale()

void scale ( float  scale)
inlinevirtual

Scales the model by scale.

The transformation of the model is not scaled.

Parameters
scale[in] scaling factor

Implements Model3D::Object3DGeneric.


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