1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#include <BALL/STRUCTURE/geometricTransformations.h>
namespace BALL
{
// TranslationProcessor
//=============================
TranslationProcessor::TranslationProcessor()
: translation_(0, 0, 0)
{
}
TranslationProcessor::TranslationProcessor(const Vector3& translation)
: translation_(translation)
{
}
void TranslationProcessor::setTranslation(const Vector3& translation)
{
translation_ = translation;
}
const Vector3& TranslationProcessor::getTranslation() const
{
return translation_;
}
Processor::Result TranslationProcessor::operator () (Atom& atom)
{
atom.setPosition(atom.getPosition() + translation_);
return Processor::CONTINUE;
}
// TransformationProcessor
//================================
TransformationProcessor::TransformationProcessor()
:
transformation_(1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1)
{
}
TransformationProcessor::TransformationProcessor(const Matrix4x4& transformation)
:
transformation_(transformation)
{
}
void TransformationProcessor::setTransformation(const Matrix4x4& transformation)
{
transformation_ = transformation;
}
const Matrix4x4& TransformationProcessor::getTransformation() const
{
return transformation_;
}
Processor::Result TransformationProcessor::operator () (Atom& atom)
{
atom.setPosition(transformation_ * atom.getPosition());
return Processor::CONTINUE;
}
} // namespace BALL
|