Computer Assited Medical Intervention Tool Kit  version 3.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Reference.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2014 UJF-Grenoble 1, CNRS, TIMC-IMAG UMR 5525 (GMCAO)
6  *
7  * Visit http://camitk.imag.fr for more information
8  *
9  * This file is part of CamiTK.
10  *
11  * CamiTK is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * CamiTK is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License version 3 for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * $CAMITK_LICENCE_END$
24  ****************************************************************************/
25 
26 #ifndef REFRENCE_REFERENCE_H
27 #define REFRENCE_REFERENCE_H
28 
29 #include <string>
30 
32 
33 class Monitor;
34 
63 class Reference {
64 
65  public:
67  Reference(mml::Reference reference, MonitoringManager* monitoringManager);
69  virtual ~Reference();
70 
78  bool getNearest(double pos[3], double time, double ref[3]);
79 
88  bool getNearest(double pos[3], double ref[3]);
89 
104  bool getDistanceToTriangularMesh(double pos[3],double& dist);
105 
112  bool getMonitoredData(std::string type, double ref[]);
113 
123  bool getMonitoredData(std::string type, double time, double &realTime, double ref[]);
124 
134  bool getMonitoredData(std::string type, double time, int index, double &realTime, double ref[]);
135 
138 
139  private:
140 
142  struct timeStep{
143  double time;
144  std::multimap<std::string,Monitor*> monitorsMap;
145  };
146 
150  std::auto_ptr<mml::MonitoringOut> mmlOut;
159  std::vector<timeStep*> data;
162 
163 };
164 
165 #endif // REFRENCE_REFERENCE_H
Reference(mml::Reference reference, MonitoringManager *monitoringManager)
constructor
PhysicalModel * pml
pml of the reference
Definition: Reference.h:156
bool getNearest(double pos[3], double time, double ref[3])
get the nearest reference point in the "target" using "Position" monitor at given time ...
int CurrentIndex
current data index, stored to avoid search from beginning in the data vector
Definition: Reference.h:161
std::vector< timeStep * > data
vector which contain alls monitors for each time step
Definition: Reference.h:159
std::auto_ptr< mml::MonitoringOut > mmlOut
Object in the file generated by xsdcxx.
Definition: Reference.h:150
A monitor calculate and store followed data (ex:calculation between current position and references) ...
Definition: Monitor.h:46
Manager of the benchmark tests.
Definition: MonitoringManager.h:50
A reference is used to compare to simulated data.
Definition: Reference.h:63
private structure with monitors for a time step
Definition: Reference.h:142
virtual ~Reference()
destructor
bool getMonitoredData(std::string type, double ref[])
get the the values of a given monitor which do not depend of time or an atom (e.g.
MonitoringManager * monitoringManager
monitoring manager
Definition: Reference.h:152
std::string toString()
return a string relative to Reference type
This is the main class of this project.
Definition: PhysicalModel.h:74
std::string target
target
Definition: Reference.h:154
double time
Definition: Reference.h:143
std::string mmlOutFile
the mmlOut document
Definition: Reference.h:148
string(REGEX REPLACE"^.*-(.*)-.*""\\1"ARCH"${CAMITK_CONTINUOUS_INTEGRATION}") string(REGEX REPLACE"^.*-.*-(.*)""\\1"BUILDTYPE"$
Definition: continuous.cmake:34
std::multimap< std::string, Monitor * > monitorsMap
Definition: Reference.h:144
bool getDistanceToTriangularMesh(double pos[3], double &dist)
get distance to a triangular mesh, the target of the reference must contain triangles.