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 1630 by tim, Thu Oct 21 21:31:39 2004 UTC vs.
Revision 1639 by tim, Fri Oct 22 23:09:57 2004 UTC

# Line 30 | Line 30
30    * @time 23:56am
31    * @version 1.0
32    */
33 +  
34   #ifndef BRAINS_SNAPSHOT_HPP
35   #define BRAINS_SNAPSHOT_HPP
36  
# Line 42 | Line 43 | namespace oopse{
43  
44   namespace oopse{
45  
46 +    //forward declaration
47 +    class Snapshot;
48 +    class SnapshotManager;
49 +
50      /**
51 +     * @struct DataStorage
52 +     * @brief
53 +     */
54 +    class DataStorage {
55 +        public:
56 +            DataStorage() {};
57 +            DataStorage(size_t size);
58 +            void resize(size_t size);
59 +            void reserve(size_t size);
60 +            
61 +        //friend Snapshot;
62 +        //friend SnapshotManager;
63 +        //private:
64 +            vector<Vector3d> position;               /** position array */
65 +            vector<Vector3d> velocity;               /** velocity array */
66 +            vector<RotMat3x3d> Amat;            /** rotation matrix array */
67 +            vector<Vector3d> angularMomentum;/** velocity array */
68 +            vector<Vector3d> ul;                /** the lab frame unit vector array*/
69 +            vector<double> zAngle;              /** z -angle array */        
70 +            vector<Vector3d> force;               /** force array */
71 +            vector<Vector3d> torque;               /** torque array */
72 +
73 +    };
74 +
75 +    /**
76       * @class Snapshot Snapshot.hpp "brains/Snapshot.hpp"
77       * @brief Snapshot class is a repository class for storing dynamic data during
78       *  Simulation
79 +     * Every snapshot class will contain one DataStorage  for atoms and one DataStorage
80 +     *  for rigid bodies.
81       * @see SimData
82       */
83      class Snapshot {
84          public:
85 <
85 >            
86 >            Snapshot() {}
87              Snapshot(int i) {
88  
89              }
# Line 69 | Line 102 | namespace oopse{
102                  id_ = id;
103              }
104  
72            /** */
73            Snapshot* clone() {
74                return new Snapshot(*this);
75            }
76
77
105              //template<typename T>
106              //static typename T::ElemPointerType getArrayPointer(vector<T>& v) {
107              //    return v[0]->getArrayPointer();
108              //}
109  
110              static double* getArrayPointer(vector<Vector3d>& v) {
111 +                assert(v.size() > 0);
112                  return v[0].getArrayPointer();
113              }
114              
115              static double* getArrayPointer(vector<RotMat3x3d>& v) {
116 +                assert(v.size() > 0);
117                  return v[0].getArrayPointer();
118              }
119              
# Line 93 | Line 122 | namespace oopse{
122                  return &(v[0]);
123              }
124              
125 <            vector<Vector3d> pos;
126 <            vector<Vector3d> vel;
127 <            vector<Vector3d> frc;
128 <            vector<Vector3d> trq;
129 <            vector<RotMat3x3d> Amat;
130 <            vector<Vector3d> mu;
131 <            vector<Vector3d> ul;
132 <            vector<double> zAngle;
133 <            
125 >            /** */
126 >            void resize(size_t size);
127 >
128 >
129 >            /** */
130 >            void reserve(size_t size);
131 >
132 >            DataStorage atomData;
133 >            DataStorage rigidbodyData;
134 >
135 >            friend class SnapshotManager;
136          private:
137  
138              int id_; /**< identification number of the snapshot */
139      };
140  
141 +    typedef DataStorage* (Snapshot::*DataStoragePointer);
142   }
143   #endif //BRAINS_SNAPSHOT_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines