src/biu/NeighborVector.hh
Go to the documentation of this file.00001 #ifndef NEIGHBORVECTOR_HH_
00002 #define NEIGHBORVECTOR_HH_
00003
00004
00005 #include <biu/SquareMatrix.hh>
00006 #include "biu/Point.hh"
00007 #include "biu/Alphabet.hh"
00008
00009 namespace biu
00010 {
00012 typedef biu::SquareMatrix<int,3> Automorphism;
00013
00015 typedef std::vector<Automorphism> AutomorphismVec;
00016
00018 typedef Alphabet MoveAlphabet;
00019
00021 typedef MoveAlphabet::AlphElem Move;
00022
00024 typedef MoveAlphabet::Sequence MoveSequence;
00025
00026
00034 class NeighborVector : public IntPoint {
00035 private:
00036 Move move;
00037
00039 Automorphism rel2absRotation;
00040
00042 Automorphism abs2relRotation;
00043
00044
00045 public :
00046 NeighborVector(const int x, const int y, const int z,
00047 const Move _move,
00048 const Automorphism& rel2absRot,
00049 const Automorphism& abs2relRot)
00050 : IntPoint(x,y,z), move(_move), rel2absRotation(rel2absRot),
00051 abs2relRotation(abs2relRot)
00052 {}
00053
00054 NeighborVector(const IntPoint& point) : IntPoint(point), move(0)
00055 {}
00056
00057 virtual ~NeighborVector()
00058 {}
00059
00060 const Move& getMove() const {
00061 return move;
00062 }
00063
00064 const Automorphism& getRel2AbsRotation() const {
00065 return rel2absRotation;
00066 }
00067 const Automorphism& getAbs2RelRotation() const {
00068 return abs2relRotation;
00069 }
00070
00071 };
00072
00074 typedef std::set<NeighborVector> NeighSet;
00075
00076
00077
00078 }
00079
00080 #endif