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 1648 by tim, Tue Oct 26 22:19:22 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  
37   #include <vector>
38  
39 < #include "math/Vector3.hpp"
39 < #include "math/SquareMatrix3.hpp"
39 > #include "brains/DataStorage.hpp"
40  
41   using namespace std;
42  
43   namespace oopse{
44  
45 +    class StuntDouble;
46 +    
47      /**
48       * @class Snapshot Snapshot.hpp "brains/Snapshot.hpp"
49       * @brief Snapshot class is a repository class for storing dynamic data during
50       *  Simulation
51 +     * Every snapshot class will contain one DataStorage  for atoms and one DataStorage
52 +     *  for rigid bodies.
53       * @see SimData
54       */
55      class Snapshot {
56          public:
57 <
58 <            Snapshot(int i) {
59 <
57 >            
58 >            Snapshot(int nAtoms, int nRigidbodies) {
59 >                atomData.resize(nAtoms);
60 >                rigidbodyData.resize(nRigidbodies);
61              }
62  
63              Snapshot(const Snapshot& s);
# Line 69 | Line 74 | namespace oopse{
74                  id_ = id;
75              }
76  
72            /** */
73            Snapshot* clone() {
74                return new Snapshot(*this);
75            }
76
77
77              //template<typename T>
78              //static typename T::ElemPointerType getArrayPointer(vector<T>& v) {
79              //    return v[0]->getArrayPointer();
80              //}
81  
82 <            static double* getArrayPointer(vector<Vector3d>& v) {
83 <                return v[0].getArrayPointer();
82 >            int getSize() {
83 >                return atomData.getSize() + rigidbodyData.getSize();
84              }
85 <            
86 <            static double* getArrayPointer(vector<RotMat3x3d>& v) {
87 <                return v[0].getArrayPointer();
85 >
86 >            /** Returns the number of atoms */
87 >            int getNumberOfAtoms() {
88 >                return atomData.getSize();
89              }
90 <            
91 <            static double* getArrayPointer(vector<double>& v) {
92 <                assert(v.size() > 0);
93 <                return &(v[0]);
90 >
91 >            /** Returns the number of rigid bodies */
92 >            int getNumberOfRigidBodies() {
93 >                return rigidbodyData.getSize();
94              }
95 +
96 +            /** Returns the H-Matrix */
97 +            Mat3x3d getHmat() {
98 +                return hmat_;
99 +            }
100 +
101 +            /** Sets the H-Matrix */
102 +            void setHamt(const Mat3x3d& m) {
103 +                hmat_ = m;
104 +                invHmat_ = hmat_.inverse();
105 +            }
106 +
107 +            /** Returns the inverse H-Matrix */
108 +            Mat3x3d getInvHmat() {
109 +                return invHmat_
110 +            }
111 +
112 +            double getTimeStamp() {
113 +                return timeStamp_;
114 +            }
115 +
116 +            void setTimeStamp(double timeStamp) {
117 +                timeStamp_ =timeStamp;
118 +            }
119 +
120 +
121 +            DataStorage atomData;
122 +            DataStorage rigidbodyData;
123              
124 <            vector<Vector3d> pos;
97 <            vector<Vector3d> vel;
98 <            vector<Vector3d> frc;
99 <            vector<Vector3d> trq;
100 <            vector<RotMat3x3d> Amat;
101 <            vector<Vector3d> mu;
102 <            vector<Vector3d> ul;
103 <            vector<double> zAngle;
124 >            friend class StuntDouble;
125              
126          private:
127 <
127 >            double timeStamp_;
128 >            Mat3x3d hmat_;
129 >            Mat3x3d invHmat_;
130              int id_; /**< identification number of the snapshot */
131      };
132  
133 +    typedef DataStorage (Snapshot::*DataStoragePointer);
134   }
135   #endif //BRAINS_SNAPSHOT_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines