37#include <osg/observer_ptr>
38#include <osgGA/NodeTrackerManipulator>
50 class RigidBodyEmitter;
65 class ExponentialMovingAverageStatistic;
70 class FractureGenerator;
71 class DeformableObject;
97 class FrameTrajectoryDrawable;
98 class TerrainVoxelRenderer;
173 const agx::RigidBody* rigidBody, osg::Group* rootNode,
const std::string& imagePath,
174 bool repeat =
false,
TextureMode mode = DIFFUSE_TEXTURE);
187 osg::Node* node,
const std::string& imagePath,
bool repeat =
false,
TextureMode mode = DIFFUSE_TEXTURE,
188 float scaleU = 1.0f,
float scaleV = 1.0f);
192 float scaleU = 1.0f,
float scaleV = 1.0f);
215 osg::Node *node, osg::Texture2D *texture,
bool repeat =
false,
TextureMode mode = DIFFUSE_TEXTURE,
216 float scaleU = 1.0f,
float scaleV = 1.0f);
243 template <
typename T>
244 void setUniform( osg::Node *node,
const std::string& name, T value)
246 if ( node ==
nullptr )
249 node->getOrCreateStateSet()->addUniform(
new osg::Uniform(name.c_str(), value));
280 const std::string& text,
355 const osg::Vec3& origin,
356 const osg::Vec3& endPointX,
357 const osg::Vec3& endPointY,
358 bool wireFrameMode =
false);
404 const osg::Vec3& origin,
405 const osg::Vec3& endPointX,
406 const osg::Vec3& endPointY,
407 const osg::Vec3& endPointZ,
657#if AGX_USE_AGXTERRAIN()
785 int trackerMode=osgGA::NodeTrackerManipulator::NODE_CENTER);
833 bool colorSurfaceStress =
false,
#define DEFAULT_PARTICLE_RENDERING_MODE
The geometry representation used by the collision detection engine.
This class contains all Geometries and performs Broad Phase and Narrow Phase collision detection to c...
Triangle mesh for geometric intersection tests.
A node that can be associated with a collision geometry so that the transformation of this node is up...
RigidBodyRenderCache is used to cache generated visuals and lookup mappings of RigidBodies cloned fro...
Class that represents a linear scalar color map that converts a scalar interval to a specified color ...
Rendering class for the agxTerrain::Terrain.
Utility color class with "common colors".
static agxRender::Color Red()
static agxRender::Color BlueViolet()
static agxRender::Color Yellow()
static agxRender::Color DarkOliveGreen()
An assembly is a collection of basic simulation objects, such as rigid bodies, constraints,...
An EventListener can be associated to a Simulation and triggered upon various events.
Simulation is a class that bridges the collision space agxCollide::Space and the dynamic simulation s...
agxTerrain::Terrain instance in a simulation, receiving step and contact callbacks in a controllable ...
The base class for a constraint.
Spawns new bodys inside a given volume.
The object defining a frame of reference and providing transformations operations.
With this class you can attach an ObserverFrame object relative to a RigidBody.
A basic particle system that contains all the storages and buffers required for basic operation and a...
Spawns new Rigid Bodies inside a volume given to the Emitter.
The rigid body class, combining a geometric model and a frame of reference.
A class holding 4 dimensional vectors and providing basic arithmetic.
Smart pointer for handling referenced counted objects.
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
This namespace consists of a set of classes for handling geometric intersection tests including boole...
Contain classes for higher level modeling primitives, such as Tree, Terrain etc.
The agxOSG namespace provides functionality for visualizing AGX simulations with OpenSceneGraph.
AGXOSG_EXPORT osg::Texture2D * createTexture(const std::string &filename)
Create a Texture2D object that can be assigned to nodes.
AGXOSG_EXPORT agx::Vector< GeometryNode * > findGeometryNodes(const agxCollide::Geometry *geometry, osg::Group *rootNode)
Finds the geometry nodes associated to a geometry, if multiple are present in the specified root grap...
AGXOSG_EXPORT bool setEnableWireFrameMode(osg::Node *node, bool flag)
AGXOSG_EXPORT osg::Geometry * create3DGrid(unsigned int resU, unsigned int resV, unsigned int resW, const osg::Vec3 &origin, const osg::Vec3 &endPointX, const osg::Vec3 &endPointY, const osg::Vec3 &endPointZ, float width)
Create a uniform grid and adds it to a root.
AGXOSG_EXPORT GeometryNode * findGeometryNode(const agxCollide::Geometry *geometry, osg::Group *rootNode)
Finds the geometry node associated to a geometry.
AGXOSG_EXPORT void setEnableLight(bool enable, int lightNum, osg::Node *node)
AGXOSG_EXPORT bool removeText(const agxCollide::Geometry *geometry, osg::Group *root, size_t index=0)
Remove text from a geometry.
AGXOSG_EXPORT agxOSG::ParticleSystemDrawable * findParticleSystemDrawable(osg::Group *root)
AGXOSG_EXPORT bool addText(const agxCollide::Geometry *geometry, osg::Group *root, const std::string &text, const agx::Vec3 &relPosition=agx::Vec3(0, 0, 0), const agx::Vec4f &color=agxRender::Color::Yellow(), agx::Real size=0.2, int alignment=6)
Add text relative to an geometry.
AGXOSG_EXPORT osgText::Text * findText(const agxCollide::Geometry *geometry, osg::Group *root, size_t index=0)
Finds a text object already added to the geometry (so the text can be changed).
AGXOSG_EXPORT osg::MatrixTransform * createAxes(float scale=1, float width=3)
Create a x, y and z arrow with the size 1.
AGXOSG_EXPORT void setAlpha(osg::Node *node, float alpha, bool override=false)
Set the alpha part of the material for a node.
AGXOSG_EXPORT bool toggleWireFrameMode(osg::Node *node)
AGXOSG_EXPORT void setAmbientColor(osg::Node *node, const agx::Vec4f &color, bool override=false)
Set the ambient part of a material for a node.
AGXOSG_EXPORT agxOSG::RigidBodySystemDrawable * findRigidBodySystemDrawable(osg::Group *root)
AGXOSG_EXPORT bool loadCubeMapImages(const std::string &imagename, const std::string &filetype, agx::Vector< osg::ref_ptr< osg::Image > > &images)
Internal function to load images into an array.
AGXOSG_EXPORT bool getEnableOutline(osg::Node *node)
AGXOSG_EXPORT void setEnvMapReflectionCoefficient(osg::Node *node, float coeff)
Specifies the amount of reflection that should be used (if CubeMap or SphereMap is assigned to the no...
AGXOSG_EXPORT agxOSG::FrameTrajectoryDrawable * findFrameTrajectoryDrawable(osg::Group *root)
AGXOSG_EXPORT osg::Geode * createParticleTrajectoriesVisual(agx::ParticleSystem *particleSystem, osg::Group *root, agx::Real sampling, agx::UInt numPositions)
Creates a visual of the particle position trajectories.
AGXOSG_EXPORT void setShininess(osg::Node *node, float shininess, bool override=false)
Set the shininess exponent for the Phong specular model.
AGXOSG_EXPORT agxSDK::EventListener * createVisualUpdater(agxSDK::EventListener *listener, osg::Group *root)
Given some specific classes inheriting from EventListener, this function can handle custom visual rep...
AGXOSG_EXPORT void getNearFarPoints(const osg::Camera *camera, float x, float y, agx::Vec3 &near, agx::Vec3 &far)
Get the near and far points of the current window, given a camera and x and y position.
AGXOSG_EXPORT agxOSG::GeometryNode * createVisual(const agxCollide::Geometry *geometry, osg::Group *root, float detailRatio=1.0f, bool createAxes=false, bool evenIfSensor=true)
Given a geometry, this function create visual representation of the shape.
AGXOSG_EXPORT osg::Geode * createPolyline(const agx::Vec3Vector &points, const agx::Vec4 &color, float width)
Create and return a new Polyine to render.
AGXOSG_EXPORT osg::Geode * createParticleContactGraph(agx::ParticleSystem *particleSystem, osg::Group *root, agx::Real minForce, agx::Real maxForce)
Creates a visual of the particle contact network, which colors contacts depending on contact force.
AGXOSG_EXPORT osg::Geometry * createGrid(unsigned int resU, unsigned int resV, const osg::Vec3 &origin, const osg::Vec3 &endPointX, const osg::Vec3 &endPointY, bool wireFrameMode=false)
Create a uniform grid.
AGXOSG_EXPORT std::tuple< osg::Group *, std::vector< size_t > > createVisualWithGeometryConnection(agx::RigidBody *rb, osg::Group *root, float detailRatio=1.0f, bool createAxes=false)
Given a rigid body, this function creates visual representation of all the geometries.
AGXOSG_EXPORT osg::Geode * createRigidBodyTrajectoriesVisual(agxSDK::Simulation *simulation, osg::Group *root, agx::Real sampling, agx::UInt numPositions, ScalarColorMap *scalarColorMap=nullptr)
Creates a visual of the rigid body position trajectories.
AGXOSG_EXPORT void addRenderCallbackToFracture(agxModel::FractureGenerator *listener, osg::Group *root)
Adds default createVisual callback to a FractureGenerator when new fragments are created that copies ...
AGXOSG_EXPORT bool setOrbitCamera(osgViewer::Viewer *viewer, osg::Group *node, const agx::Vec3 &eye, const agx::Vec3 ¢er, const agx::Vec3 &up, int trackerMode=osgGA::NodeTrackerManipulator::NODE_CENTER)
AGXOSG_EXPORT bool setEnableOutline(osg::Node *node, bool enabled, const agxRender::Color &color=agxRender::Color(1, 1, 0, 1), float width=2.0)
AGXOSG_EXPORT osg::TextureCubeMap * createTextureCubeMap(agx::Vector< osg::ref_ptr< osg::Image > > &images)
Create a TextureCubeMap from 6 images with a 90x90 fov.
AGXOSG_EXPORT bool setCubeMapTexture(osg::Node *node, const std::string &imagePath, const std::string &imageType=".dds")
Assigns a Cubemap texture to the specified node.
AGXOSG_EXPORT void addRenderColorCallbackToFracture(agxModel::FractureGenerator *listener, osg::Group *root, const agx::Vec4f &color)
Adds createVisual callback to a FractureGenerator when new fragments are created that sets a specific...
AGXOSG_EXPORT void setGamma(osg::Node *node, float gamma, bool override=false)
Set the gamma that will be used to transform Physical color to monitor color.
AGXOSG_EXPORT agxOSG::DeformableRenderer * findDeformableRenderer(const agxModel::DeformableObject *deformable, osg::Group *root)
Searches for renderer of deformable in root.
AGXOSG_EXPORT osg::Geode * createFrameTrajectoryDrawable(agxSDK::Simulation *simulation, osg::Group *root, agx::UInt numPositions, const agx::Vec4f &defaultColor=agx::Vec4f(0.5, 0.5, 0.5, 1.0))
AGXOSG_EXPORT osg::Geode * createLine(const agx::Vec3 &p1, const agx::Vec3 &p2, const agx::Vec4 &color, float width)
Create and return a new Line to render.
AGXOSG_EXPORT osg::Geode * createText(const std::string &text, const agx::Vec3 &relPosition=agx::Vec3(0, 0, 0), const agx::Vec4f &color=agxRender::Color::Yellow(), agx::Real size=0.2)
Create a text object.
AGXOSG_EXPORT osg::Group * createVisualTemplateCaching(agxSDK::Assembly *parent, osg::Group *root, agxOSG::RigidBodyRenderCache *cache=nullptr, float detailRatio=1.0f, bool createAxes=false)
Given an Assembly, this function creates visual representation of all the geometries.
AGXOSG_EXPORT bool setTexture(const agxCollide::Geometry *geometry, osg::Group *rootNode, const std::string &imagePath, bool repeat=false, TextureMode mode=DIFFUSE_TEXTURE)
Read an image from disk and apply to the specified geometry as a 2D Texture in OVERRIDE|PROTECTED mod...
AGXOSG_EXPORT osg::Geode * createCubeLines(const agx::Vec3 &position, const agx::Vec3 &boxHalfVec3, const agxRender::Color &color=agxRender::Color::BlueViolet(), const agx::Real lineWidth=2.0f)
This function generates a cube using line segments and returns an osg::Geode node,...
AGXOSG_EXPORT osg::Geode * createSphere(const agx::Vec3 ¢er, const agx::Vec4 &color, float radius)
Create and return a new Sphere to render.
AGXOSG_EXPORT void setMetallic(osg::Node *node, float metallic, bool override=false)
Set the metallic:ness of the material.
AGXOSG_EXPORT bool forceWireFrameModeOn(osg::Node *node)
AGXOSG_EXPORT osg::MatrixTransform * createCylinder(const agx::AffineMatrix4x4 &transform, const agx::Vec4 &color, float radius, float height)
Create and return a new Cylinder to render.
AGXOSG_EXPORT void setSpecularColor(osg::Node *node, const agx::Vec4f &color, bool override=false)
Set the specular part of a material for a node.
AGXOSG_EXPORT agxCollide::LocalGeometryContact getHoveredGeometryContact(const osg::Camera *camera, agxCollide::Space *space, float x, float y)
Get a geometry contact given the current camera and a position in the camera window.
AGXOSG_EXPORT void setDiffuseColor(osg::Node *node, const agx::Vec4f &color, bool override=false)
Set the diffuse part of a material for a node.
AGXOSG_EXPORT agxCollide::Trimesh * createTrimesh(osg::Node *node)
Extracts mesh data from an osg::Node, creates an agxCollide::Trimesh from it and returns the result.
AGXOSG_EXPORT size_t smoothNormals(osg::Node *node, float creaseAngle=1.48353f)
Smoothes the normals of all meshes in osg::Geometries using agxUtil::SmoothingVisitor found under the...
AGXOSG_EXPORT void setRoughness(osg::Node *node, float roughness, bool override=false)
Set the roughness of the material.
void setUniform(osg::Node *node, const std::string &name, T value)
The agxSDK namespace contain classes to bridge the collision detection system and the dynamical simul...
The agxUtil namespace contain classes and methods for utility functionality.
The agx namespace contains the dynamics/math part of the AGX Dynamics API.