00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_STRUCTURE_GEOMETRICTRANSFORMATIONS_H
00008 #define BALL_STRUCTURE_GEOMETRICTRANSFORMATIONS_H
00009
00010 #ifndef BALL_COMMON_H
00011 # include <BALL/common.h>
00012 #endif
00013
00014 #ifndef BALL_KERNEL_ATOM_H
00015 # include <BALL/KERNEL/atom.h>
00016 #endif
00017
00018 #ifndef BALL_MATHS_VECTOR3_H
00019 # include <BALL/MATHS/vector3.h>
00020 #endif
00021
00022 #ifndef BALL_MATHS_MATRIX44_H
00023 # include <BALL/MATHS/matrix44.h>
00024 #endif
00025
00026 #ifndef BALL_CONCEPT_PROCESSOR_H
00027 # include <BALL/CONCEPT/processor.h>
00028 #endif
00029
00030 namespace BALL
00031 {
00035
00043 class BALL_EXPORT TranslationProcessor
00044 : public UnaryProcessor<Atom>
00045 {
00046 public:
00047
00052 TranslationProcessor();
00053
00059 TranslationProcessor(const Vector3& translation);
00060
00064 void setTranslation(const Vector3& translation);
00065
00069 const Vector3& getTranslation() const;
00070
00072 virtual Processor::Result operator()(Atom& atom);
00073
00074
00075 private:
00076
00077 Vector3 translation_;
00078 };
00079
00080
00089 class BALL_EXPORT TransformationProcessor
00090 :public UnaryProcessor<Atom>
00091 {
00092 public:
00093
00107 TransformationProcessor();
00108
00114 TransformationProcessor(const Matrix4x4& transformation);
00115
00119 void setTransformation(const Matrix4x4& transformation);
00120
00124 const Matrix4x4& getTransformation() const;
00125
00127 virtual Processor::Result operator()(Atom& atom);
00128
00129
00130 protected:
00131
00132 Matrix4x4 transformation_;
00133 };
00134
00135
00137
00138 }
00139
00140 #endif // BALL_STRUCTURE_GEOMETRICTRANSFORMATIONS_H