candlewick 0.1.0
A renderer
|
A render system for Pinocchio robot geometries using Pinocchio. More...
#include <candlewick/multibody/RobotScene.h>
Classes | |
struct | Config |
struct | GBuffer |
struct | PipelineConfig |
struct | Pipelines |
Public Types | |
enum | PipelineType { PIPELINE_TRIANGLEMESH , PIPELINE_HEIGHTFIELD , PIPELINE_POINTCLOUD } |
enum | VertexUniformSlots : Uint32 { TRANSFORM = 0 } |
enum | FragmentUniformSlots : Uint32 { MATERIAL = 0 , LIGHTING = 1 } |
template<PipelineType t> | |
using | pipeline_tag = entt::tag<t> |
Public Member Functions | |
RobotScene (entt::registry ®istry, const Renderer &renderer) | |
Non-initializing constructor. | |
RobotScene (entt::registry ®istry, const Renderer &renderer, const pin::GeometryModel &geom_model, const pin::GeometryData &geom_data, Config config) | |
Constructor which initializes the system. | |
RobotScene (const RobotScene &)=delete | |
void | setConfig (const Config &config) |
void | loadModels (const pin::GeometryModel &geom_model, const pin::GeometryData &geom_data) |
Set the internal geometry model and data pointers, and load the corresponding models. | |
void | updateTransforms () |
Update the transform component of the GeometryObject entities. | |
void | collectOpaqueCastables () |
const std::vector< OpaqueCastable > & | castables () const |
entt::entity | addEnvironmentObject (MeshData &&data, Mat4f placement, PipelineType pipe_type=PIPELINE_TRIANGLEMESH) |
entt::entity | addEnvironmentObject (MeshData &&data, const Eigen::Affine3f &T, PipelineType pipe_type=PIPELINE_TRIANGLEMESH) |
void | clearEnvironment () |
Destroy all entities with the EnvironmentTag component. | |
void | clearRobotGeometries () |
Destroy all entities with the PinGeomObjComponent component (Pinocchio geometry objects). | |
void | createPipeline (const MeshLayout &layout, SDL_GPUTextureFormat render_target_format, SDL_GPUTextureFormat depth_stencil_format, PipelineType type, bool transparent) |
void | render (CommandBuffer &command_buffer, const Camera &camera) |
void | renderOpaque (CommandBuffer &command_buffer, const Camera &camera) |
void | renderTransparent (CommandBuffer &command_buffer, const Camera &camera) |
void | release () |
Release all resources. | |
Config & | config () |
const Config & | config () const |
bool | pbrHasPrepass () const |
bool | shadowsEnabled () const |
const pin::GeometryModel & | geomModel () const |
Getter for the pinocchio GeometryModel object. | |
const pin::GeometryData & | geomData () const |
Getter for the pinocchio GeometryData object. | |
const entt::registry & | registry () const |
const Device & | device () |
SDL_GPUGraphicsPipeline * | getPipeline (PipelineType type, bool transparent=false) |
Static Public Member Functions | |
static PipelineType | pinGeomToPipeline (const coal::CollisionGeometry &geom) |
Map hpp-fcl/coal collision geometry to desired pipeline type. | |
static constexpr SDL_GPUPrimitiveType | getPrimitiveTopologyForType (PipelineType type) |
Map pipeline type to geometry primitive. | |
Public Attributes | |
struct candlewick::multibody::RobotScene::Pipelines | pipelines |
DirectionalLight | directionalLight |
ssao::SsaoPass | ssaoPass {NoInit} |
struct candlewick::multibody::RobotScene::GBuffer | gBuffer |
ShadowMapPass | shadowPass {NoInit} |
AABB | worldSpaceBounds |
Static Public Attributes | |
static constexpr size_t | kNumPipelineTypes |
A render system for Pinocchio robot geometries using Pinocchio.
This internally stores references to pinocchio::GeometryModel and pinocchio::GeometryData objects.
using candlewick::multibody::RobotScene::pipeline_tag = entt::tag<t> |
enum candlewick::multibody::RobotScene::FragmentUniformSlots : Uint32 |
enum candlewick::multibody::RobotScene::VertexUniformSlots : Uint32 |
candlewick::multibody::RobotScene::RobotScene | ( | entt::registry & | registry, |
const Renderer & | renderer ) |
Non-initializing constructor.
candlewick::multibody::RobotScene::RobotScene | ( | entt::registry & | registry, |
const Renderer & | renderer, | ||
const pin::GeometryModel & | geom_model, | ||
const pin::GeometryData & | geom_data, | ||
Config | config ) |
Constructor which initializes the system.
loadModels() will be called.
|
delete |
|
inline |
entt::entity candlewick::multibody::RobotScene::addEnvironmentObject | ( | MeshData && | data, |
Mat4f | placement, | ||
PipelineType | pipe_type = PIPELINE_TRIANGLEMESH ) |
|
inline |
void candlewick::multibody::RobotScene::clearEnvironment | ( | ) |
Destroy all entities with the EnvironmentTag component.
void candlewick::multibody::RobotScene::clearRobotGeometries | ( | ) |
Destroy all entities with the PinGeomObjComponent component (Pinocchio geometry objects).
void candlewick::multibody::RobotScene::collectOpaqueCastables | ( | ) |
|
inline |
|
inline |
void candlewick::multibody::RobotScene::createPipeline | ( | const MeshLayout & | layout, |
SDL_GPUTextureFormat | render_target_format, | ||
SDL_GPUTextureFormat | depth_stencil_format, | ||
PipelineType | type, | ||
bool | transparent ) |
|
inline |
|
inline |
Getter for the pinocchio GeometryData object.
|
inline |
Getter for the pinocchio GeometryModel object.
|
inline |
|
inlinestaticconstexpr |
Map pipeline type to geometry primitive.
void candlewick::multibody::RobotScene::loadModels | ( | const pin::GeometryModel & | geom_model, |
const pin::GeometryData & | geom_data ) |
Set the internal geometry model and data pointers, and load the corresponding models.
|
inline |
|
static |
Map hpp-fcl/coal collision geometry to desired pipeline type.
|
inline |
void candlewick::multibody::RobotScene::release | ( | ) |
Release all resources.
void candlewick::multibody::RobotScene::render | ( | CommandBuffer & | command_buffer, |
const Camera & | camera ) |
void candlewick::multibody::RobotScene::renderOpaque | ( | CommandBuffer & | command_buffer, |
const Camera & | camera ) |
void candlewick::multibody::RobotScene::renderTransparent | ( | CommandBuffer & | command_buffer, |
const Camera & | camera ) |
|
inline |
|
inline |
void candlewick::multibody::RobotScene::updateTransforms | ( | ) |
Update the transform component of the GeometryObject entities.
DirectionalLight candlewick::multibody::RobotScene::directionalLight |
struct candlewick::multibody::RobotScene::GBuffer candlewick::multibody::RobotScene::gBuffer |
|
staticconstexpr |
struct candlewick::multibody::RobotScene::Pipelines candlewick::multibody::RobotScene::pipelines |
ShadowMapPass candlewick::multibody::RobotScene::shadowPass {NoInit} |
ssao::SsaoPass candlewick::multibody::RobotScene::ssaoPass {NoInit} |
AABB candlewick::multibody::RobotScene::worldSpaceBounds |