AGX Dynamics 2.42.1.1
Loading...
Searching...
No Matches
GranularMergedBodyDrawableSprites.h
Go to the documentation of this file.
1/*
2Copyright 2007-2025. Algoryx Simulation AB.
3
4All AGX source code, intellectual property, documentation, sample code,
5tutorials, scene files and technical white papers, are copyrighted, proprietary
6and confidential material of Algoryx Simulation AB. You may not download, read,
7store, distribute, publish, copy or otherwise disseminate, use or expose this
8material unless having a written signed agreement with Algoryx Simulation AB, or having been
9advised so by Algoryx Simulation AB for a time limited evaluation, or having purchased a
10valid commercial license from Algoryx Simulation AB.
11
12Algoryx Simulation AB disclaims all responsibilities for loss or damage caused
13from using this software, unless otherwise stated in written agreements with
14Algoryx Simulation AB.
15*/
16
17#ifndef AGXOSG_GRANULARMERGEDBODYDRAWABLESPRITES_H
18#define AGXOSG_GRANULARMERGEDBODYDRAWABLESPRITES_H
19
20#include <agx/PushDisableWarnings.h> // Disabling warnings. Include agx/PopDisableWarnings.h below!
21#include <osg/Drawable>
22#include <osgViewer/Viewer>
23#include <osg/Version>
24#include <agx/PopDisableWarnings.h> // End of disabled warnings.
25
26#include <agxOSG/export.h>
27#include <agx/Task.h>
28#include <agx/observer_ptr.h>
29#include <agxSDK/Simulation.h>
30
31namespace agxOSG
32{
35 {
36
37 public:
39
40 virtual osg::Object* cloneType() const { return new GranularMergedBodyDrawableSprites(m_particleSystem); }
41 virtual osg::Object* clone(const osg::CopyOp&) const { return new GranularMergedBodyDrawableSprites(*this); }
42 virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const GranularMergedBodyDrawableSprites *>(obj) != nullptr; }
43 virtual const char* libraryName() const { return "agxOSG"; }
44 virtual const char* className() const { return "GranularMergedBodyDrawableSprites"; }
45
46
48# if OSG_VERSION_GREATER_OR_EQUAL(3,4,0)
49 virtual osg::BoundingSphere computeBound() const;
50 virtual osg::BoundingBox computeBoundingBox() const;
51#else
52 virtual osg::BoundingBox computeBound() const;
53#endif
54
56 virtual void drawImplementation(osg::RenderInfo& renderInfo) const;
57
58 void setEnable(bool enable);
59
60 bool getEnable() const;
61
63
65
67
69
70 bool hasParticleSystem() const;
71
72 protected:
74
76 // Variables
78 protected:
79
82
85
89
93
95 };
96
98
100
102 {
103 return m_particleSystem != nullptr;
104 }
105
106}
107
108#endif /* AGXOSG_PARTICLE_SYSTEMDRAWABLE_H */
#define AGX_DECLARE_POINTER_TYPES(type)
Definition: Referenced.h:254
#define AGXOSG_EXPORT
virtual osg::BoundingBox computeBound() const
Compute the bounding box around Drawables's geometry.
virtual bool isSameKindAs(const osg::Object *obj) const
virtual void drawImplementation(osg::RenderInfo &renderInfo) const
The actual draw method for the merged bodies.
void removeRigidBodyCallback(agxSDK::Simulation *, agx::RigidBody *body)
GranularMergedBodyDrawableSprites(agx::ParticleSystem *particleSystem)
void addRigidBodyCallback(agxSDK::Simulation *, agx::RigidBody *body)
agxSDK::Simulation::RigidBodyEvent::CallbackType m_addRigidBodyCallback
agxSDK::Simulation::RigidBodyEvent::CallbackType m_removeRigidBodyCallback
agx::HashTable< agx::RigidBody *, agx::Real > m_createdBodies
virtual osg::Object * clone(const osg::CopyOp &) const
Simulation is a class that bridges the collision space agxCollide::Space and the dynamic simulation s...
Definition: Simulation.h:131
T CallbackType
Definition: Event.h:37
Inheritance with partial specialization due to bug with ref_ptr containers.
A basic particle system that contains all the storages and buffers required for basic operation and a...
The rigid body class, combining a geometric model and a frame of reference.
Definition: RigidBody.h:49
#define AGX_FORCE_INLINE
Definition: macros.h:58
The agxOSG namespace provides functionality for visualizing AGX simulations with OpenSceneGraph.