ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/brains/Snapshot.hpp
(Generate patch)

Comparing trunk/OOPSE-2.0/src/brains/Snapshot.hpp (file contents):
Revision 1639 by tim, Fri Oct 22 23:09:57 2004 UTC vs.
Revision 1642 by tim, Mon Oct 25 04:08:14 2004 UTC

# Line 43 | Line 43 | namespace oopse{
43  
44   namespace oopse{
45  
46 +    enum DataStorageLayout {
47 +        dslPosition = 1,
48 +        dslVelocity = 2,
49 +        dslAMat = 4,
50 +        dslAngularMomentum = 8,
51 +        dslUnitVector = 16,
52 +        dslZAngle = 32,
53 +        dslForce = 64,
54 +        dslTorque = 128
55 +    };
56      //forward declaration
57      class Snapshot;
58      class SnapshotManager;
59 <
59 >    class StuntDouble;
60 >    
61      /**
62 <     * @struct DataStorage
62 >     * @class DataStorage
63       * @brief
64 +     * @warning do not try to insert element into (or ease element from) private member data
65 +     * of DataStorage directly.
66       */
67      class DataStorage {
68          public:
69              DataStorage() {};
70              DataStorage(size_t size);
71 +
72 +            int size();
73              void resize(size_t size);
74              void reserve(size_t size);
75              
76 <        //friend Snapshot;
77 <        //friend SnapshotManager;
78 <        //private:
76 >            friend class Snapshot;
77 >            friend class StuntDouble;
78 >        private:
79              vector<Vector3d> position;               /** position array */
80              vector<Vector3d> velocity;               /** velocity array */
81 <            vector<RotMat3x3d> Amat;            /** rotation matrix array */
81 >            vector<RotMat3x3d> aMat;            /** rotation matrix array */
82              vector<Vector3d> angularMomentum;/** velocity array */
83 <            vector<Vector3d> ul;                /** the lab frame unit vector array*/
83 >            vector<Vector3d> unitVector;                /** the lab frame unit vector array*/
84              vector<double> zAngle;              /** z -angle array */        
85              vector<Vector3d> force;               /** force array */
86              vector<Vector3d> torque;               /** torque array */
# Line 83 | Line 98 | namespace oopse{
98      class Snapshot {
99          public:
100              
101 <            Snapshot() {}
102 <            Snapshot(int i) {
103 <
101 >            Snapshot(int nAtoms, int nRigidbodies) {
102 >                atomData.resize(nAtoms);
103 >                rigidbodyData.resize(nRigidbodies);
104              }
105  
106              Snapshot(const Snapshot& s);
# Line 121 | Line 136 | namespace oopse{
136                  assert(v.size() > 0);
137                  return &(v[0]);
138              }
124            
125            /** */
126            void resize(size_t size);
139  
140 <
141 <            /** */
142 <            void reserve(size_t size);
143 <
140 >            int getSize() {
141 >                return atomData.size() + rigidbodyData.size();
142 >            }
143 >            
144 >            int getSizeOfAtoms() {
145 >                return atomData.size();
146 >            }
147 >            
148 >            int getSizeOfRigidBodies() {
149 >                return rigidbodyData.size();
150 >            }
151 >            
152              DataStorage atomData;
153              DataStorage rigidbodyData;
154  
155 <            friend class SnapshotManager;
155 >            friend class StuntDouble;
156          private:
157  
158              int id_; /**< identification number of the snapshot */
159      };
160  
161 <    typedef DataStorage* (Snapshot::*DataStoragePointer);
161 >    typedef DataStorage (Snapshot::*DataStoragePointer);
162   }
163   #endif //BRAINS_SNAPSHOT_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines