TransformationVisitor.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef SOFA_SIMULATION_INSTRUMENTACTION_H
00026 #define SOFA_SIMULATION_INSTRUMENTACTION_H
00027
00028 #if !defined(__GNUC__) || (__GNUC__ > 3 || (_GNUC__ == 3 && __GNUC_MINOR__ > 3))
00029 #pragma once
00030 #endif
00031
00032 #include <sofa/simulation/common/Visitor.h>
00033 #include <sofa/defaulttype/Vec.h>
00034 #include <sofa/defaulttype/Quat.h>
00035 #include <sofa/core/VisualModel.h>
00036
00037 namespace sofa
00038 {
00039
00040 namespace simulation
00041 {
00042 using namespace sofa::defaulttype;
00043
00044 class TransformationVisitor : public Visitor
00045 {
00046 public:
00047 TransformationVisitor()
00048 {
00049 translation = Vector3();
00050 rotation = Vector3();
00051 scale = (SReal)1.0;
00052 }
00053
00054 void setTranslation(SReal dx, SReal dy, SReal dz){ translation = Vector3(dx,dy,dz);}
00055 void setRotation(SReal rx, SReal ry, SReal rz){ rotation=Vector3(rx,ry,rz); }
00056 void setScale(SReal s){scale = s;}
00057
00058
00059 void processVisualModel(simulation::Node* node, core::VisualModel* v);
00060 void processMechanicalState(simulation::Node* node, core::componentmodel::behavior::BaseMechanicalState* m);
00061 virtual Result processNodeTopDown(simulation::Node* node);
00062
00064 virtual bool isThreadSafe() const { return true; }
00065
00068 virtual const char* getCategoryName() const { return "instrument"; }
00069
00070 protected:
00071 Vector3 translation;
00072 Vector3 rotation;
00073 SReal scale;
00074 };
00075
00076 }
00077
00078 }
00079
00080 #endif