VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
articulatedPartCollection.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
10 
11 #ifndef articulatedPartCollection_H_
12 #define articulatedPartCollection_H_
13 
14 #include <vlutil/vlMachineTypes.h>
15 
16 #include <map>
17 #include <set>
18 #include <vector>
19 #include <ostream>
20 
21 class DtArticulatedPart;
22 class DtClock;
23 
30 {
31 public:
32 
33  typedef std::map<unsigned int,DtArticulatedPart*> PartMap;
34  typedef PartMap::const_iterator const_iterator;
35  typedef std::set<unsigned int> PartTypeSet;
37  {
41  DtAttachFailCycle
42  };
43 
49 
56 
59 
61  virtual ~DtArticulatedPartCollection();
62 
63  bool operator==(const DtArticulatedPartCollection& other) const;
64  bool operator!=(const DtArticulatedPartCollection& other) const;
65 
69  virtual void getPartTypes(PartTypeSet& aSet);
70 
72  virtual DtArticulatedPart& getPart(unsigned int partType);
73 
75  virtual DtArticulatedPart* findPart(unsigned int partType);
81  virtual const DtArticulatedPart* findPart(unsigned int partType) const;
83 
86  virtual void removeAllParts();
87 
90  virtual void removePart(unsigned int partType);
91 
97  virtual bool attachPart(DtArticulatedPart* childPart, DtArticulatedPart* parentPart, DtAttachResult* attachResult=0);
98 
105  inline bool attachPart(unsigned int childPartType, unsigned int parentPartType, DtAttachResult* attachResult=0);
106 
110  virtual bool attachCreatesCycle(DtArticulatedPart* childPart,
111  DtArticulatedPart* parentPart);
112 
114  virtual unsigned int totalParameterCount() const;
115 
117  virtual unsigned int partCount() const;
118 
124  virtual DtArticulatedPart* createPart(DtArticulatedPart* copy = 0) const;
125 
127  const_iterator begin() const;
128 
130  const_iterator end() const;
131 
138  virtual void setClock(DtClock* clock, bool setForAllParts = true);
139 
141  DtClock* clock();
143  const DtClock* clock() const;
145 
148  bool partsApproximateByDefault() const;
149 
151  void setPartsApproximateByDefault(bool deadReckonByDefault);
152 
154  void printDataToStream(std::ostream& stream) const;
155 
157  const std::vector<DtArticulatedPart*>& getSortedList() const;
158 
159 protected:
160 
162  virtual void sortArtParts() const;
163 
166  virtual int calculatePartDistance(const DtArticulatedPart* part) const;
167 
170  virtual int fixPartAttachment(DtArticulatedPart* part);
171 
172 protected:
173 
177  mutable std::vector<DtArticulatedPart*> mySortedList;
178  mutable bool myNeedsSortingFlag;
179 };
180 
182  unsigned int childPartType, unsigned int parentPartType, DtArticulatedPartCollection::DtAttachResult* attachResult)
183 {
184  return attachPart(findPart(childPartType),findPart(parentPartType), attachResult);
185 }
186 
187 
188 #endif
const bool operator==(const DtU128 &lhs, const DtU128 &rhs)
virtual DtArticulatedPart * findPart(unsigned int partType)
Search for a particular part.
virtual bool attachPart(DtArticulatedPart *childPart, DtArticulatedPart *parentPart, DtAttachResult *attachResult=0)
Attach a child part to a parent part.
std::vector< DtArticulatedPart * > mySortedList
Definition: articulatedPartCollection.h:177
Used to set and maintain time in a simulation.
Definition: vlTime.h:25
Definition: articulatedPartCollection.h:39
DtClock * myClock
Definition: articulatedPartCollection.h:175
A DtArticulatedPartCollection is a collection of articulated parts typically of an entity...
Definition: articulatedPartCollection.h:29
Definition: articulatedPartCollection.h:40
std::map< unsigned int, DtArticulatedPart * > PartMap
Definition: articulatedPartCollection.h:33
#define DT_DLL_VLPROTIND
Definition: vlMachineTypes.h:110
DtAttachResult
Definition: articulatedPartCollection.h:36
bool myDefaultApproximatingFlag
Definition: articulatedPartCollection.h:176
const bool operator!=(const DtU128 &lhs, const DtU128 &rhs)
A single articulated part which has a number of parameters.
Definition: articulatedPart.h:30
PartMap myPartMap
Definition: articulatedPartCollection.h:174
PartMap::const_iterator const_iterator
Definition: articulatedPartCollection.h:34
bool myNeedsSortingFlag
Definition: articulatedPartCollection.h:178
Definition: articulatedPartCollection.h:38
This file contains typedefs for machine dependant types.
std::set< unsigned int > PartTypeSet
Definition: articulatedPartCollection.h:35

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)