GPU-Accelerated Coverage
0.1.0
Compute coverage tours for known environment with articulated objects on GPU
|
Scene graph corresponding to Assimp's aiScene. More...
#include <Scene.h>
Public Types | |
typedef std::vector< CameraPerspective * > | Cameras |
Vector of cameras of the sceene. | |
typedef std::vector< Light * > | Lights |
Vector of light sources of the scene. | |
typedef std::vector< Material * > | Materials |
Vector of materials of the scene. | |
typedef std::vector< Mesh * > | Meshes |
Vector of meshes of the scene. | |
typedef std::vector< Image * > | Textures |
Vector of mesh textures of the scene. | |
typedef std::vector< Animation * > | Animations |
Vector of animations of the scene. | |
typedef std::vector< CameraPanorama * > | PanoramaCameras |
Vector of panorama cameras of the scene. | |
typedef std::map< std::string, Node * > | NodeMap |
Map mapping node names to node pointers. | |
typedef std::vector< Channel * > | Channels |
Vector of animation channels of the scene. | |
Public Member Functions | |
Scene (const aiScene *const aiScene, const std::string &dir) | |
Constructor. More... | |
virtual | ~Scene () |
Destructor. | |
void | render (const AbstractCamera *const camera, const LocationsMVP *const locationsMVP, const LocationsLight *const locationsLight=NULL, const LocationsMaterial *const locationsMaterial=NULL, const bool hasTesselationShader=false) const |
Render the scene with the current shader. More... | |
Node * | findNode (const std::string &name) const |
Finds a node by name, returns NULL if not found. More... | |
Material * | findMaterial (const std::string &name) const |
Finds a material by name, returns NULL if not found. More... | |
CameraPerspective * | findCamera (const std::string &name) const |
Finds a camera by name, returns NULL if not found. More... | |
CameraPanorama * | makePanoramaCamera (Node *const camera) |
Adds a new panorama camera to the scene and returns a pointer. More... | |
const size_t & | getNumFrames () const |
Returns the number of animation frames. More... | |
const size_t & | getStartFrame () const |
Returns the start frame of the animation. More... | |
const size_t & | getEndFrame () const |
Returns the last frame of the animation. More... | |
const Channels & | getChannels () const |
Node * | getRoot () const |
Get the root node of the scene graph. More... | |
void | toDot (const char *dotFilePath) const |
Write the scene graph structure as a GraphViz Dot file for debugging. More... | |
Public Attributes | |
NodeMap | nodeMap |
Map mapping node names to node pointers. | |
Meshes | meshes |
Vector of meshes of the scene. | |
Cameras | cameras |
Vector of cameras of the sceene. | |
PanoramaCameras | panoramaCameras |
Vector of panorama cameras of the scene. | |
Lights | lights |
Vector of light sources of the scene. | |
Textures | textures |
Vector of mesh textures of the scene. | |
Materials | materials |
Vector of materials of the scene. | |
Animations | animations |
Vector of animations of the scene. | |
Channels | channels |
Vector of animation channels of the scene. | |
Node * | root |
Root node of the scene graph. | |
gpu_coverage::Node * | lampNode |
Scene graph node where the first light source is attached. | |
Protected Member Functions | |
void | collectNodes (Node *node) |
Protected Attributes | |
size_t | numFrames |
Number of animation frames, see getNumFrames(). | |
size_t | startFrame |
First animation frame, see getStartFrame(). | |
size_t | endFrame |
Last animation frame, see getEndFrame(). | |
Scene graph corresponding to Assimp's aiScene.
Limitations: Currently only one light source is supported for rendering the visual representation of the 3D scene.
gpu_coverage::Scene::Scene | ( | const aiScene *const | aiScene, |
const std::string & | dir | ||
) |
Constructor.
aiScene[in] | Assimp scene structure. |
dir[in] | Filesystem directory from where to load materials. |
CameraPerspective* gpu_coverage::Scene::findCamera | ( | const std::string & | name | ) | const |
Finds a camera by name, returns NULL if not found.
name | Name of the camera. |
Material* gpu_coverage::Scene::findMaterial | ( | const std::string & | name | ) | const |
Finds a material by name, returns NULL if not found.
name | Name of the material. |
Node* gpu_coverage::Scene::findNode | ( | const std::string & | name | ) | const |
Finds a node by name, returns NULL if not found.
name | Name of the node. |
|
inline |
Returns the animation channels.
|
inline |
Returns the last frame of the animation.
|
inline |
Returns the number of animation frames.
|
inline |
Get the root node of the scene graph.
|
inline |
Returns the start frame of the animation.
CameraPanorama* gpu_coverage::Scene::makePanoramaCamera | ( | Node *const | camera | ) |
Adds a new panorama camera to the scene and returns a pointer.
camera | Scene graph node where to attach the new camera. |
void gpu_coverage::Scene::render | ( | const AbstractCamera *const | camera, |
const LocationsMVP *const | locationsMVP, | ||
const LocationsLight *const | locationsLight = NULL , |
||
const LocationsMaterial *const | locationsMaterial = NULL , |
||
const bool | hasTesselationShader = false |
||
) | const |
Render the scene with the current shader.
[in] | camera | Camera rendering the scene. |
[in] | locationsMVP | Locations of the model, view, and projection shader variables, must not be NULL. |
[in] | locationsLight | Location of the light source shader variables, ignored if NULL. |
[in] | locationsMaterial | Location of the material shader variables, ignored if NULL. |
[in] | hasTesselationShader | Set to true if a tesselation shader is present. |
std::invalid_argument | locationsMVP is NULL. |
void gpu_coverage::Scene::toDot | ( | const char * | dotFilePath | ) | const |