geometricTransformations.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: geometricTransformations.h,v 1.16.18.1 2007/03/25 21:25:26 oliver Exp $
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 } // namespace BALL
00139 
00140 #endif // BALL_STRUCTURE_GEOMETRICTRANSFORMATIONS_H