Carna Registration API Version 1.16.0
D:/Documents/mediTEC Projects/CRA/master/include/CRA/Tool.h
00001 /*
00002  *  Copyright (C) 2010 - 2013 Leonid Kostrykin
00003  *
00004  *  Chair of Medical Engineering (mediTEC)
00005  *  RWTH Aachen University
00006  *  Pauwelsstr. 20
00007  *  52074 Aachen
00008  *  Germany
00009  *
00010  */
00011 
00012 #ifndef TOOL_H_2521354512
00013 #define TOOL_H_2521354512
00014 
00015 #include "cra_global.h"
00016 #include "Transformation.h"
00017 #include <string>
00018 #include <QObject>
00019 
00020 namespace CRA
00021 {
00022 
00023 
00024 
00025 // ----------------------------------------------------------------------------------
00026 // Tool
00027 // ----------------------------------------------------------------------------------
00028 
00036 class CRA_EXPORT Tool : public QObject
00037 {
00038 
00039     Q_OBJECT
00040 
00041 public:
00042 
00045     Tool( const std::string& name );
00046 
00047 
00050     const std::string& getName() const;
00051 
00059     const Vector& getOffset() const;
00060 
00061 
00066     virtual const Transformation& getOrientation() const = 0;
00067 
00070     virtual void computeRelativeOrientation( const Tool& reference
00071                                            , Transformation& out ) const;
00072 
00073 
00076     virtual bool isVisible() const = 0;
00077 
00078 
00079 public slots:
00080 
00083     void setName( const std::string& name );
00084     
00089     void setName( const QString& name );
00090 
00098     void setOffset( const Vector& offset );
00099 
00100 
00101 private:
00102 
00103     std::string name;
00104 
00105     Vector offset;
00106 
00107 
00108 signals:
00109 
00112     void renamed();
00113 
00116     void renamed( const std::string& newName );
00117 
00122     void renamed( const QString& newName );
00123 
00129     void offsetChanged();
00130 
00136     void offsetChanged( const Vector& offset );
00137 
00138 }; // Tool
00139 
00140 
00141 
00142 }  // namespace CRA
00143 
00144 #endif // TOOL_H_2521354512
 All Classes Functions Variables Enumerations Enumerator