22#pragma warning( push )
23#pragma warning( disable : 4589 )
34 class SparseRangeReal;
46#if (!defined SWIG ) || (!defined SWIGCSHARP && !defined SWIGJAVA)
51 template<
typename T >
120#if (!defined SWIG ) || (!defined SWIGCSHARP && !defined SWIGJAVA)
182 template<
typename T >
187 for (
agx::UInt i = 0; i < numRows; ++i )
188 for (
agx::UInt j = 0; j < numCols; ++j )
191 for (
agx::UInt i = 0; i < numRows; ++i )
192 for (
agx::UInt j = 0; j < numCols; ++j )
198#pragma warning( pop )
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXPHYSICS_EXPORT
Class for managing the rendering of geometries, shapes, rigid bodies, constraints etc.
Class for writing serialized data in binary format to a stream.
The complete physical system with bodies, interactions, data layout, time stepper,...
The base class for interactions.
Pointer to a entity instance of type Physics.RigidBody.
The rigid body class, combining a geometric model and a frame of reference.
Essentially a sparse array of bounds.
Base class for a strong interaction concept where there interaction is defined in the mass matrix par...
virtual void writeRhs(agx::Physics::RigidBodyPtr rb1, agx::Real *rb1Rhs, agx::Physics::RigidBodyPtr rb2, agx::Real *rb2Rhs, agx::Bool isRestingSolve)=0
Write data to the right hand side, for dynamic bodies.
virtual void writeMatrixData(agx::StrongInteraction::MatrixData rb1DiagonalBlock, agx::StrongInteraction::MatrixData rb2DiagonalBlock, agx::StrongInteraction::MatrixData offDiagonalBlock)=0
Write data for dynamic bodies.
virtual void restore(agxStream::InputArchive &in) override
Restore local content.
agx::Bool getEnable() const
virtual void removeNotification() override
Called when removed from a simulation.
virtual void preSystemCallback(agx::DynamicsSystem *dynamicsSystem) override
Called before solver executes.
void setValid(agx::Bool valid)
Valid if enable and configuration is ok for solver.
AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE(agx::StrongInteraction)
virtual void addNlCallbacks(agx::SparseRangeReal &sparseRangeReal) const
Interface for non-linear callback from solver.
virtual agx::RigidBody * getRigidBody2() const =0
void setEnable(agx::Bool enable)
Enable or disable this interaction.
virtual void prepare()
Prepares for solve.
virtual ~StrongInteraction()
Reference counted object, protected destructor.
virtual void postSystemCallback(agx::DynamicsSystem *dynamicsSystem) override
Called after the solver is done.
StrongInteraction()
Construct given one or two rigid bodies.
virtual void addNotification() override
Called when added to a simulation.
virtual void store(agxStream::OutputArchive &out) const override
Store local content.
virtual void render(agxRender::RenderManager *mgr, float scale)
Render the interaction.
agx::Bool getValid() const
virtual agx::RigidBody * getRigidBody1() const =0
Namespace containing classes for handling debug rendering of collision geometries,...
The agx namespace contains the dynamics/math part of the AGX Dynamics API.
AGXCORE_EXPORT const InvalidIndexStruct InvalidIndex
agx::Physics::RigidBodyPtr rb
unsigned int leadingDimension
MatrixData(agx::Physics::RigidBodyPtr rb)
void plusEqual(const T &rhs, const agx::UInt numRows, const agx::UInt numCols)