AnimatLab  2
1 // stdafx.h : include file for standard system include files,
2 // or project specific include files that are used frequently, but
3 // are changed infrequently
4 //
6 #if !defined(AFX_STDAFX_H__AC7276DB_F5B0_4434_A20E_8194C391BF3C__INCLUDED_)
7 #define AFX_STDAFX_H__AC7276DB_F5B0_4434_A20E_8194C391BF3C__INCLUDED_
9 #if _MSC_VER > 1000
10 #pragma once
11 #endif
13 #ifdef WIN32
14  #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
16  #include <windows.h>
18  #define ANIMAT_PORT __declspec( dllexport )
19 #else
20  #define ANIMAT_PORT
21 #endif
23 #define STD_TRACING_ON
25 //#ifdef _DEBUG
26  #define STD_TRACE_DETAIL
27 //#else
28 // #define STD_TRACE_DETAIL
29 //#endif
31 #include "StdUtils.h"
32 #include "AnimatConstants.h"
33 #include "AnimatUtils.h"
35 //Simulation Objects
36 namespace AnimatSim
37 {
39  class AnimatBase;
40  class Simulator;
41  class Node;
42  class Link;
43  class ActivatedItem;
44  class ActivatedItemMgr;
45  class DelayLine;
46  class SimulationWindow;
47  class SimulationWindowMgr;
48  class BoundingBox;
49  class ThreadProcessor;
51  class TypeProperty;
53  namespace Adapters
54  {
55  class Adapter;
56  class ContactAdapter;
57  }
59  namespace Behavior
60  {
61  class NervousSystem;
62  class NeuralModule;
63  }
65  namespace Charting
66  {
67  class DataChart;
68  class FileChart;
69  class ArrayChart;
70  class MemoryChart;
71  class DataChartMgr;
72  class DataColumn;
74  namespace DataColumns
75  {
76  }
77  }
79  namespace Environment
80  {
81  class IPhysicsMovableItem;
82  class IPhysicsBody;
83  class IMotorizedJoint;
84  class BodyPart;
85  class ConstraintLimit;
86  class RigidBody;
87  class Joint;
88  class MotorizedJoint;
89  class Structure;
90  class Organism;
91  class ContactSensor;
92  class ReceptiveField;
93  class ReceptiveFieldPair;
94  class Odor;
95  class OdorType;
96  class Materials;
97  class Material;
98  class Light;
99  class LightManager;
101  namespace Bodies
102  {
103  class Box;
104  class Cylinder;
105  class Cone;
106  class Mesh;
107  class LineBase;
108  class MuscleBase;
109  class Attachment;
110  class LinearHillMuscle;
112  class OdorSensor;
113  class Plane;
114  class FluidPlane;
115  class Terrain;
116  class Sensor;
117  class Sphere;
118  class Spring;
119  class Stomach;
120  class Mouth;
121  class Ellipsoid;
122  class Torus;
123  }
125  namespace Joints
126  {
127  class BallSocket;
128  class Hinge;
129  class Prismatic;
130  class LinearJoint;
131  }
132  }
134  namespace ExternalStimuli
135  {
136  class ExternalStimuliMgr;
137  class ExternalStimulus;
138  class ExternalInputStimulus;
139  class CurrentStimulus;
140  class EnablerStimulus;
141  class VoltageClamp;
142  class InverseMuscleCurrent;
143  class MotorStimulus;
144  }
146  namespace Gains
147  {
148  class BellGain;
149  class EquationGain;
150  class Gain;
151  class PolynomialGain;
152  class SigmoidGain;
153  }
155  namespace Recording
156  {
157  class KeyFrame;
158  class SimulationRecorder;
159  }
161  namespace Robotics
162  {
163  class RobotInterface;
164  class RobotIOControl;
165  class RobotPartInterface;
166  }
167 }
169 using namespace AnimatSim;
170 using namespace AnimatSim::Adapters;
171 using namespace AnimatSim::Behavior;
172 using namespace AnimatSim::Charting;
173 using namespace AnimatSim::Environment;
174 using namespace AnimatSim::Environment::Bodies;
175 using namespace AnimatSim::Environment::Joints;
176 using namespace AnimatSim::ExternalStimuli;
177 using namespace AnimatSim::Gains;
178 using namespace AnimatSim::Recording;
179 using namespace AnimatSim::Robotics;
182 #include "AnimatUtils.h"
185 // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
187 #endif // !defined(AFX_STDAFX_H__AC7276DB_F5B0_4434_A20E_8194C391BF3C__INCLUDED_)
Movable Item callback to the GUI.
The base class for all of the joint type of objects.
Definition: Joint.h:40
Contact adapter that processes ReceptiveField contacts.
Base manager class for ActivatedItem's.
Nervous system for an organism.
Definition: NervousSystem.h:28
This class is derived from the ActivatedItemMgr and it handles all of the external stimuli...
Simulates the entire environment.
Definition: Simulator.h:31
A muscle that is connected between two attachment points.
Root namespace for the base simulation library for AnimatLab.
The Stomach object is responsible for holding food energy.
Definition: Stomach.h:26
Handles processing of a single thread of the simulation.
Base class for the light object.
Definition: Light.h:23
Data column class.
Definition: DataColumn.h:24
The Cone base class.
Definition: Cone.h:24
Contains all of the classes that are used to generate external stimuli to body parts, joints, or neural items.
Base class for a simulation window.
Class that stores information about types for QueryProperty information.
Definition: TypeProperty.h:35
Contains all of the different body parts that can be used in a structure.
The Gain base class.
Definition: Gain.h:35
Implements a Delay line of float values.
Definition: DelayLine.h:22
Records the simulation keyframes and videos.
A BallSocket type of joint.
Definition: BallSocket.h:27
Base class for all activated items.
Definition: ActivatedItem.h:27
A ground plane type of rigid body.
Definition: Plane.h:41
Data chart base class.
Definition: DataChart.h:31
Spring body part type.
Definition: Spring.h:25
Namespace for the adapter objects.
Definition: Adapter.cpp:44
The Mouth part type.
Definition: Mouth.h:25
The Terrain base class.
Definition: Terrain.h:25
Manager for simulation windows.
A Robot IO controller base class.
Handles processing of a single module within a thread of the simulation.
Odor type that can be emitted from a RigidBody and sensed by an OdorSensor.
Definition: OdorType.h:27
A "static" structure in the simulation.
Definition: Structure.h:84
Specifies a point on a rigid body where a muscle is to be attached.
Definition: Attachment.h:43
Bounding box class for geometric objects.
Definition: BoundingBox.h:17
The Cone base class.
Definition: Torus.h:24
Base class for all body parts and joints.
Definition: BodyPart.h:25
Keeps track of all of the materials and the various material pair interaction parameters for the enti...
Definition: Materials.h:23
Current stimulus for neural items.
Contains all of the different joint types that can be used to connect body parts. ...
Contains the different gain type classes that can be used.
Saves the data in memory.
Definition: MemoryChart.h:27
Animat base class.
Definition: AnimatBase.h:36
This namespace contains all of the objects that are related to the physical part of the virtual 3-D w...
A dynamic organism that is controlled by a neural network.
Definition: Organism.h:31
Manager for data charts.
Definition: DataChartMgr.h:22
Base class for body parts and neural network nodes.
Definition: Node.h:25
Bell gain class.
Definition: BellGain.h:21
Contains objects related to neural networks.
A muscle that is connected between two attachment points.
A hinge type of joint.
Definition: Hinge.h:39
A Linear movement type of joint.
Definition: LinearJoint.h:24
Namespace for objects related to collecting the data for charts.
A Prismatic type of joint.
Definition: Prismatic.h:33
The Box base class.
Definition: Box.h:42
Contact sensor for detecting receptive field contacts.
Definition: ContactSensor.h:25
Base class for Line body part types.
Definition: LineBase.h:25
Receptive field that generates current based on the amount of contact force, and how close it is to t...
the Cylinder base class.
Definition: Cylinder.h:24
The base class for all of the basic rigid body type of objects.
Definition: RigidBody.h:66
The Robotics interface configures a simulation to run on a microcontroller board. ...
This stimulus enables or disables a joint or body part for a specified period of time.
Contains classes related to recording the simulation parameters at a specific time frame so it can be...