AGX Dynamics 2.37.3.4
Loading...
Searching...
No Matches
ConstraintLogListener.h
Go to the documentation of this file.
1/*
2Copyright 2007-2024. 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 AGXSDK_CONSTRAINTLOGLISTENER_H
18#define AGXSDK_CONSTRAINTLOGLISTENER_H
19
20#include <agxSDK/agxSDK.h>
21#include <agxSDK/LogListener.h>
22#include <agx/Constraint.h>
23#include <agx/TimeStamp.h>
24#include <string>
25
26
27namespace agxSDK
28{
31 {
32 public:
33
41 ConstraintLogListener(const std::string& fileName = "",
42 bool newFilePerTimeStep = false,
43 const std::string& valueSeparator = "\t");
44
50 inline void addConstraint( agx::Constraint* constraint, int bodyIndex = 0);
51
52
53 protected:
54 virtual void obtainHeader( std::stringstream& header );
55 virtual void collectData ( std::stringstream& data, const agx::TimeStamp& /*time*/ );
56
57
58 protected:
59 typedef std::pair<agx::observer_ptr<agx::Constraint>, int> AttachedConstrait;
61 };
62
64
66 int bodyIndex /*=0*/)
67 {
68 m_constraints.push_back( AttachedConstrait( constraint, bodyIndex ) );
69 constraint->setEnableComputeForces( true );
70 }
71}
72
73#endif /* AGXSDK_CONSTRAINTLOGLISTENER_H */
#define AGXPHYSICS_EXPORT
Class that will log various properties of constraints.
virtual void collectData(std::stringstream &data, const agx::TimeStamp &)
Implement this function when inheriting.
virtual void obtainHeader(std::stringstream &header)
Implement this function when inheriting.
agx::Vector< AttachedConstrait > m_constraints
std::pair< agx::observer_ptr< agx::Constraint >, int > AttachedConstrait
ConstraintLogListener(const std::string &fileName="", bool newFilePerTimeStep=false, const std::string &valueSeparator="\t")
ConstraintLogListener constructor.
void addConstraint(agx::Constraint *constraint, int bodyIndex=0)
Adds a constraint for logging.
Abstract class for logging properties per time step to a file/standard out.
Definition: LogListener.h:30
The base class for a constraint.
Definition: Constraint.h:89
void setEnableComputeForces(agx::Bool enable)
Enable (or disable) computation of the forces applied to the dynamic bodies in this constraint.
void push_back(const T2 &value)
Definition: agx/Vector.h:715
Smart pointer for handling referenced counted objects.
Definition: ref_ptr.h:30
The agxSDK namespace contain classes to bridge the collision detection system and the dynamical simul...
Definition: Constraint.h:31
agx::ref_ptr< ConstraintLogListener > ConstraintLogListenerRef
agx::Real TimeStamp
Definition: TimeStamp.h:26