VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
swingingPartActuator.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2006 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
18 
19 namespace makVrf
20 {
21  class DtArticulatedPartStateRepository;
22 }
23 
24 class DtString;
26 class DtBooleanInputPort;
27 class DtIntegerOutputPort;
28 class DtSimObjectBaseObjectStateRepository;
32 
45  public DtBindableLuaComponent<DtSwingingPartActuator>
46 {
47 
48 public:
49 
52  DtSwingingPartActuator(const DtString& name,
53  DtLocalObject* owner,
54  DtSimulationServices* simManager,
55  DtComponentDescriptor* desc = 0,
56  DtReaderWriterRegistry* parentRegistry = 0);
57 
59  virtual ~DtSwingingPartActuator();
60 
61  virtual bool init();
62 
64  virtual bool postAddComponentsInit();
65 
68  virtual const char* type() const;
69 
71  virtual void tick();
72 
76  static DtSimComponent * creator(const DtString& name,
77  DtLocalObject* owner,
78  DtSimulationServices* simManager,
79  DtComponentDescriptor* desc = 0,
80  DtReaderWriterRegistry* parentRegistry = 0);
81 
84  virtual void bindLuaFunctions(lua_State* L);
85  virtual void bindLuaGlobals(lua_State* L);
86 
87 public:
92  virtual void open();
93  virtual void openWithRate(double rate);
94 
97  virtual void reset();
98 
101  virtual void close();
102  virtual void closeWithRate(double rate);
103 
105  virtual bool isOpened() const;
106 
108  virtual bool isClosed() const;
110 
111 protected:
112 
114  {
115  State_Closed = 0,
116  State_In_Transision = 1,
117  State_Open = 2
118  };
119 
121  virtual bool createPorts();
122 
128  virtual DtSwingingPartActuatorPSR* createPSR();
129 
131  virtual void setPositionAndRate(DtVector newPos, DtVector newRate);
132 
135  virtual bool angleWithinSlewArc(double angle, const DtSwingingPartActuatorAxisInfo& axisInfo);
136 
137  virtual DtPartState updateAxis(int axisNum, const DtSwingingPartActuatorAxisInfo& axisInfo, bool desiredOpen, DtVector& newPos, DtVector& newRate);
138 
139  virtual const DtSwingingPartActuatorAxisInfo& xAxisInfo() const;
140  virtual const DtSwingingPartActuatorAxisInfo& yAxisInfo() const;
141  virtual const DtSwingingPartActuatorAxisInfo& zAxisInfo() const;
142 
143 private:
149  const DtSwingingPartActuator & operator=(const
150  DtSwingingPartActuator & orig);
151 
152 protected:
153 
156 
161 
169 
172 
174 
178 
181 };
DtBooleanInputPort * myRequestedStateInputPort
Output Port Name: requested-state Output Port Description: The requested state for this swinging part...
Definition: swingingPartActuator.h:167
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
virtual bool postAddComponentsInit()
Called after all components have been created, initialized and added to the component manager...
Definition: simComponent.h:128
const DtActuatorComponent & operator=(const DtActuatorComponent &orig)
assignment operator
Definition: swingingPartActuatorPSR.h:21
virtual bool init()
Overridden to cache a pointer to the entity&#39;s radio in this class.
virtual void bindLuaFunctions(lua_State *)=0
Override to bind lua functions.
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
DtSwingingPartActuatorDescriptor is the descriptor for DtSwingingPartActuator components. It contains all parameters which can be specified in the OPD file for this component. For an example of using a swinging part actuator and how it is described in an OPD file see fixed-wing-fighter-jet.sysdef in the systems/movement folder.
Definition: swingingPartActuatorDescriptor.h:87
Definition: readerWriterRegistry.h:39
Definition: bindableLuaComponent.h:53
End User Description: DtActuator is the base class for all actuator model components. Developer Description: The DtActuator base class caches a pointer to the entity&#39;s radio for convenience. Derived classes may have articulated parts that are configured from the DtActuatorComponentDescriptor&#39;s DtSimArtPartDescriptorList. For each articulated part in the list a DtArticulatedPartStateRepository will be created to store the data for the part such as it&#39;s location, rotation and so forth. These are created in the entity&#39;s DtVrfObjectStateRepository createParts() function. This call creates all the attached parts for all the actuators. These articulated state repositories are managed by the DtAttachmentManager. They are cached by their partType which is the DIS Enumeration describing the part from the disEnums.h file and was specified in the actuator&#39;s DtActuatorComponentDescriptor as descriped above. The partType is used as the category of the DtObjectType used to look up articulated parts in the DtAttachementManager. When an actuator needs access to a particular articulated part it looks it up by the part&#39;s object type.
Definition: actuatorComponent.h:47
DtPartState
Definition: swingingPartActuator.h:113
virtual void reset()
For those reader/writer items that support it, resets the reader/writer value to original state Defau...
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
DtSwingingPartActuator is a simple actuator which controls the movement of an articulated part as it ...
Definition: swingingPartActuator.h:44
DtSwingingPartActuatorPSR * myProcessState
Container for state data associated with this component such as whether it is in the closed or opened...
Definition: swingingPartActuator.h:177
Contains class declarations for DtBooleanInputPort, DtBooleanOutputPort, and DtBooleanPortData.
Definition: boolIOPort.h:25
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
DtIntegerOutputPort * myCurrentStateOutputPort
Output Port Name: current-state Output Port Description: Nominal azimuth value. Output Port Range: 0:...
Definition: swingingPartActuator.h:160
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
const DtSwingingPartActuatorDescriptor * myDescriptor
Definition: swingingPartActuator.h:173
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:91
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Member to allow for access to platform specific data.
Definition: swingingPartActuator.h:180
The DtArticulatedPartStateRepository class is used to represent articulated parts for an entity...
Definition: articulatedPartStateRepository.h:40
Instances of DtIntegerOutputPort are output ports through which data producers can send integer value...
Definition: integerIOPort.h:45
makVrf::DtArticulatedPartStateRepository * myArtPartStateRep
The state repository that represents the swinging articulated part.
Definition: swingingPartActuator.h:171
virtual void bindLuaGlobals(lua_State *)=0
Override to bind lua globals.
Information for a particular axis of swinging.
Definition: swingingPartActuatorDescriptor.h:22
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)