| 760 |  | */ | 
| 761 |  | void addTrq(const Vector3d& trq, int snapshotNo) { | 
| 762 |  | ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).torque[localIndex_] += trq; | 
| 763 | + | } | 
| 764 | + |  | 
| 765 | + |  | 
| 766 | + |  | 
| 767 | + | /** | 
| 768 | + | * Returns the previous particlePot of this stuntDouble | 
| 769 | + | * @return the particlePot of this stuntDouble | 
| 770 | + | */ | 
| 771 | + | RealType getPrevParticlePot() { | 
| 772 | + | return ((snapshotMan_->getPrevSnapshot())->*storage_).particlePot[localIndex_]; | 
| 773 | + | } | 
| 774 | + |  | 
| 775 | + | /** | 
| 776 | + | * Returns the current particlePot of this stuntDouble | 
| 777 | + | * @return the particlePot of this stuntDouble | 
| 778 | + | */ | 
| 779 | + | RealType getParticlePot() { | 
| 780 | + | return ((snapshotMan_->getCurrentSnapshot())->*storage_).particlePot[localIndex_]; | 
| 781 | + | } | 
| 782 | + |  | 
| 783 | + | /** | 
| 784 | + | * Returns the particlePot of this stuntDouble in specified snapshot | 
| 785 | + | * | 
| 786 | + | * @return the particlePot of this stuntDouble | 
| 787 | + | * @param snapshotNo | 
| 788 | + | */ | 
| 789 | + | RealType getParticlePot(int snapshotNo) { | 
| 790 | + | return ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).particlePot[localIndex_]; | 
| 791 | + | } | 
| 792 | + |  | 
| 793 | + | /** | 
| 794 | + | * Sets  the previous particlePot of this stuntDouble | 
| 795 | + | * | 
| 796 | + | * @param particlePot  new particlePot | 
| 797 | + | * @see #getParticlePot | 
| 798 | + | */ | 
| 799 | + | void setPrevParticlePot(const RealType& particlePot) { | 
| 800 | + | ((snapshotMan_->getPrevSnapshot())->*storage_).particlePot[localIndex_] = particlePot; | 
| 801 | + | } | 
| 802 | + |  | 
| 803 | + | /** | 
| 804 | + | * Sets  the current particlePot of this stuntDouble | 
| 805 | + | * @param particlePot  new particlePot | 
| 806 | + | */ | 
| 807 | + | void setParticlePot(const RealType& particlePot) { | 
| 808 | + | ((snapshotMan_->getCurrentSnapshot())->*storage_).particlePot[localIndex_] = particlePot; | 
| 809 | + | } | 
| 810 | + |  | 
| 811 | + | /** | 
| 812 | + | * Sets  the particlePot of this stuntDouble in specified snapshot | 
| 813 | + | * | 
| 814 | + | * @param particlePot particlePot to be set | 
| 815 | + | * @param snapshotNo | 
| 816 | + | * @see #getParticlePot | 
| 817 | + | */ | 
| 818 | + | void setParticlePot(const RealType& particlePot, int snapshotNo) { | 
| 819 | + | ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).particlePot[localIndex_] = particlePot; | 
| 820 | + | } | 
| 821 | + |  | 
| 822 | + | /** | 
| 823 | + | * Adds particlePot into the previous particlePot of this stuntDouble | 
| 824 | + | * | 
| 825 | + | * @param particlePot  new particlePot | 
| 826 | + | * @see #getParticlePot | 
| 827 | + | */ | 
| 828 | + | void addPrevParticlePot(const RealType& particlePot) { | 
| 829 | + | ((snapshotMan_->getPrevSnapshot())->*storage_).particlePot[localIndex_] += particlePot; | 
| 830 | + | } | 
| 831 | + |  | 
| 832 | + | /** | 
| 833 | + | * Adds particlePot into the current particlePot of this stuntDouble | 
| 834 | + | * @param particlePot  new particlePot | 
| 835 | + | */ | 
| 836 | + | void addParticlePot(const RealType& particlePot) { | 
| 837 | + | ((snapshotMan_->getCurrentSnapshot())->*storage_).particlePot[localIndex_] += particlePot; | 
| 838 | + | } | 
| 839 | + |  | 
| 840 | + | /** | 
| 841 | + | * Adds particlePot into the particlePot of this stuntDouble in specified snapshot | 
| 842 | + | * | 
| 843 | + | * @param particlePot particlePot to be add | 
| 844 | + | * @param snapshotNo | 
| 845 | + | * @see #getParticlePot | 
| 846 | + | */ | 
| 847 | + | void addParticlePot(const RealType& particlePot, int snapshotNo) { | 
| 848 | + | ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).particlePot[localIndex_] += particlePot; | 
| 849 |  | } | 
| 850 |  |  | 
| 851 |  |  | 
| 1008 |  |  | 
| 1009 |  | Vector3d body2Lab(const Vector3d& v, int frame){ | 
| 1010 |  | return getA(frame).transpose() * v; | 
| 925 | – | } | 
| 926 | – |  | 
| 927 | – | /** | 
| 928 | – | * Returns the previous particle potential of this stuntDouble | 
| 929 | – | * @return the particle potential of this stuntDouble | 
| 930 | – | */ | 
| 931 | – | RealType getPrevParticlePot() { | 
| 932 | – | return ((snapshotMan_->getPrevSnapshot())->*storage_).particlePot[localIndex_]; | 
| 933 | – | } | 
| 934 | – |  | 
| 935 | – | /** | 
| 936 | – | * Returns the current particle potential of this stuntDouble | 
| 937 | – | * @return the particle potential of this stuntDouble | 
| 938 | – | */ | 
| 939 | – | RealType getParticlePot() { | 
| 940 | – | return ((snapshotMan_->getCurrentSnapshot())->*storage_).particlePot[localIndex_]; | 
| 941 | – | } | 
| 942 | – |  | 
| 943 | – | /** | 
| 944 | – | * Returns the particle potential of this stuntDouble in specified snapshot | 
| 945 | – | * @return the particle potential of this stuntDouble | 
| 946 | – | * @param snapshotNo | 
| 947 | – | */ | 
| 948 | – | RealType getParticlePot(int snapshotNo) { | 
| 949 | – | return ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).particlePot[localIndex_]; | 
| 1011 |  | } | 
| 1012 |  |  | 
| 1013 |  | /** | 
| 953 | – | * Sets  the previous particle potential of this stuntDouble | 
| 954 | – | * @param po tnew particle potential | 
| 955 | – | * @see #getParticlePot | 
| 956 | – | */ | 
| 957 | – | void setPrevParticlePot(RealType pot) { | 
| 958 | – | ((snapshotMan_->getPrevSnapshot())->*storage_).particlePot[localIndex_] = pot; | 
| 959 | – | } | 
| 960 | – |  | 
| 961 | – | /** | 
| 962 | – | * Sets  the current velocity of this stuntDouble | 
| 963 | – | * @param vel  new velocity | 
| 964 | – | */ | 
| 965 | – | void setParticlePot(RealType pot) { | 
| 966 | – | ((snapshotMan_->getCurrentSnapshot())->*storage_).particlePot[localIndex_] = pot; | 
| 967 | – | } | 
| 968 | – |  | 
| 969 | – | /** | 
| 970 | – | * Sets  the particle potential of this stuntDouble in specified snapshot | 
| 971 | – | * @param pot potential to be set | 
| 972 | – | * @param snapshotNo | 
| 973 | – | * @see #getVel | 
| 974 | – | */ | 
| 975 | – | void setParticlePot(RealType pot, int snapshotNo) { | 
| 976 | – | ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).particlePot[localIndex_] = pot; | 
| 977 | – | } | 
| 978 | – |  | 
| 979 | – | /** | 
| 1014 |  | * <p> | 
| 1015 |  | * The purpose of the Visitor Pattern is to encapsulate an operation that you want to perform on | 
| 1016 |  | * the elements of a data structure. In this way, you can change the operation being performed |