30 |
|
* @version 1.0 |
31 |
|
*/ |
32 |
|
|
33 |
< |
#ifndef _STUNTDOUBLE_HPP_ |
34 |
< |
#define _STUNTDOUBLE_HPP_ |
33 |
> |
#ifndef PRIMITIVES_STUNTDOUBLE_HPP |
34 |
> |
#define PRIMITIVES_STUNTDOUBLE_HPP |
35 |
|
|
36 |
|
#include <vector> |
37 |
|
|
40 |
|
#include "math/SquareMatrix3.hpp" |
41 |
|
#include "math/Vector3.hpp" |
42 |
|
#include "utils/PropertyMap.hpp" |
43 |
+ |
#include "brains/Snapshot.hpp" |
44 |
|
#include "brains/SnapshotManager.hpp" |
45 |
|
namespace oopse{ |
46 |
|
|
56 |
|
* provides an interface for the Integrators and Minimizers to use, |
57 |
|
* and does some preliminary sanity checking so that the program |
58 |
|
* doesn't try to do something stupid like torque an Atom |
59 |
< |
* @note the dynamoc data of stuntdouble will be stored outside of the class |
59 |
> |
* @note the dynamic data of stuntdouble will be stored outside of the class |
60 |
|
*/ |
61 |
|
class StuntDouble{ |
62 |
|
public: |
99 |
|
*/ |
100 |
|
void setLocalIndex(int index) { |
101 |
|
localIndex_ = index; |
102 |
+ |
} |
103 |
+ |
|
104 |
+ |
/** |
105 |
+ |
* Sets the Snapshot Manager of this stuntdouble |
106 |
+ |
*/ |
107 |
+ |
void setSnapshotManager(SnapshotManager* sman) { |
108 |
+ |
snapshotMan_ = sman; |
109 |
|
} |
110 |
|
|
111 |
|
/** |
461 |
|
* Returns the previous unit vectors of this stuntdouble |
462 |
|
* @return the unit vectors of this stuntdouble |
463 |
|
*/ |
464 |
< |
Vector3d getPrevUnitVector() { |
465 |
< |
return ((snapshotMan_->getPrevSnapshot())->*storage_).unitVector[localIndex_]; |
464 |
> |
RotMat3x3d getPrevElectroFrame() { |
465 |
> |
return ((snapshotMan_->getPrevSnapshot())->*storage_).electroFrame[localIndex_]; |
466 |
|
} |
467 |
|
|
468 |
|
/** |
469 |
|
* Returns the current unit vectors of this stuntdouble |
470 |
|
* @return the unit vectors of this stuntdouble |
471 |
|
*/ |
472 |
< |
Vector3d getUnitVector() { |
473 |
< |
return ((snapshotMan_->getCurrentSnapshot())->*storage_).unitVector[localIndex_]; |
472 |
> |
RotMat3x3d getElectroFrame() { |
473 |
> |
return ((snapshotMan_->getCurrentSnapshot())->*storage_).electroFrame[localIndex_]; |
474 |
|
} |
475 |
|
|
476 |
|
/** |
479 |
|
* @return the unit vectors of this stuntdouble |
480 |
|
* @param snapshotNo |
481 |
|
*/ |
482 |
< |
Vector3d getUnitVector(int snapshotNo) { |
483 |
< |
return ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).unitVector[localIndex_]; |
482 |
> |
RotMat3x3d getElectroFrame(int snapshotNo) { |
483 |
> |
return ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).electroFrame[localIndex_]; |
484 |
|
} |
485 |
|
|
486 |
|
/** |
867 |
|
|
868 |
|
int globalIndex_; |
869 |
|
int localIndex_; |
870 |
+ |
|
871 |
+ |
|
872 |
+ |
double mass_; |
873 |
|
|
874 |
|
private: |
875 |
|
|
876 |
|
std::string name_; |
866 |
– |
|
867 |
– |
double mass_; |
877 |
|
|
878 |
|
PropertyMap properties_; |
879 |
|
}; |
880 |
|
|
881 |
|
}//end namespace oopse |
882 |
< |
#endif //ifndef _STUNTDOUBLE_HPP_ |
882 |
> |
#endif //PRIMITIVES_STUNTDOUBLE_HPP |