26#include <osg/Drawable>
42 class
AGXOSG_EXPORT TerrainVoxelDrawable : public osg::Drawable
47 void setRenderVoxelSolidMass(
bool enable );
48 bool getRenderVoxelSolidMass()
const;
50 void setRenderVoxelFluidMass(
bool enable );
51 bool getRenderVoxelFluidMass()
const;
53 void setRenderVoxelBoundingBox(
bool enable );
54 bool getRenderVoxelBoundingBox()
const;
56 void setRenderVoxelCompaction(
bool enable );
57 bool getRenderVoxelCompaction()
const;
59 void setRenderVelocityField(
bool enable );
60 bool getRenderVelocityField()
const;
62 void setRenderTerrainMaterials(
bool enable);
63 bool getRenderTerrainMaterials()
const;
65 void setRenderDefaultTerrainMaterial(
bool enable);
66 bool getRenderDefaultTerrainMaterial()
const;
71 void setVelocityFieldLineColor(
const agx::Vec4& lineColor);
73 void setMaxVoxelValueColor(
const agx::Vec4f& maxVoxelColor);
78 bool hasEnabledFeatures()
const;
85 virtual osg::Object* cloneType()
const {
return new TerrainVoxelDrawable(m_terrain); }
86 virtual osg::Object* clone(
const osg::CopyOp&)
const {
return new TerrainVoxelDrawable(*
this); }
87 virtual bool isSameKindAs(
const osg::Object* obj)
const {
return dynamic_cast<const TerrainVoxelDrawable *
>(obj) !=
nullptr; }
88 virtual const char* libraryName()
const {
return "agxOSG"; }
89 virtual const char* className()
const {
return "TerrainVoxelDrawable"; }
92#if OSG_VERSION_GREATER_OR_EQUAL(3,4,0)
93 virtual osg::BoundingSphere computeBound()
const;
94 virtual osg::BoundingBox computeBoundingBox()
const;
96 virtual osg::BoundingBox computeBound()
const;
100 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
102 void updateDrawable();
109 virtual ~TerrainVoxelDrawable();
112 void renderVelocityTableLines(
117 bool enableVelocityFieldRendering,
125 const agxTerrain::VoxelToTerrainMaterialTable* inhomogeneousVoxels,
129 bool enableRenderVoxelSolidMass,
130 bool enableRenderVoxelFluidMass,
131 bool enableRenderVoxelCompaction,
132 bool enableRenderTerrainMaterials,
133 bool enableRenderDefaultTerrainMaterial,
140 void renderInternalNodes(
148 bool enableRenderVoxelBoundingBox);
158 osg::ref_ptr<osgSim::ColorRange> m_colorRange;
161 bool m_enableRenderVoxelSolidMass;
162 bool m_enableRenderVoxelFluidMass;
163 bool m_enableRenderVoxelCompaction;
164 bool m_enableRenderVoxelBoundingBox;
165 bool m_enableVelocityFieldRendering;
166 bool m_enableRenderTerrainMaterials;
167 bool m_enableRenderDefaultTerrainMaterial;
Abstract representation of a data buffer.
Simulation is a class that bridges the collision space agxCollide::Space and the dynamic simulation s...
Pure virtual interface class for the data storage grid classes we have.
A terrain model based a 3D grid model with overlapping height field that can be deformed by interacti...
Inheritance with partial specialization due to bug with ref_ptr containers.
A class holding 4 dimensional vectors and providing basic arithmetic.
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
The agxOSG namespace provides functionality for visualizing AGX simulations with OpenSceneGraph.
void renderVoxels(const agx::Vec3iVector &voxels, const agxRender::Color &color, agx::Real voxelSize, const agx::AffineMatrix4x4 &gridTransform, agx::Real size)
bool AGXPHYSICS_EXPORT isInitialized()