cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
prmTransformationBase.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Rajesh Kumar, Anton Deguet
7  Created on: 2008-03-03
8 
9  (C) Copyright 2007-2008 Johns Hopkins University (JHU), All Rights
10  Reserved.
11 
12 --- begin cisst license - do not edit ---
13 
14 This software is provided "as is" under an open source license, with
15 no warranty. The complete license can be found in license.txt and
16 http://www.cisst.org/cisst/license.txt.
17 
18 --- end cisst license ---
19 */
20 
21 
27 #ifndef _prmTransformationBase_h
28 #define _prmTransformationBase_h
29 
30 
34 
37 
38 // probably best to include streams
39 #include <iostream>
40 #include <list>
41 #include <algorithm>
42 
43 // Always include last
45 
46 
47 typedef prmTransformationBase* prmTransformationBasePtr; //convenience type for base class
48 
49 // typedef std::list<prmTransformationBasePtr> prmTransformationNodeList; //list of nodes in the tree
50 
51 
70 {
73 
74 public:
75  typedef std::list<prmTransformationBasePtr> NodeListType;
76 
77 private:
80  bool Visited;
81 
86  bool IsLinked(const prmTransformationBasePtr & him) const;
87 
92  bool IsChildOf(const prmTransformationBasePtr & him) const;
93 
98  bool IsParentOf(const prmTransformationBasePtr & him) const;
99 
100 protected:
101 
103  std::string Name;
104 
107 
110 
111 public:
112 
117  inline prmTransformationBase(void):
118  Name("Undefined"),
119  Parent(NULL),
120  Children()
121  {
122  /* RK: No longer attaches itsself to the world by default, parent is NULL, until reference frame is set.
123  */
124  }
125 
127  inline prmTransformationBase(const std::string & name):
128  Name(name),
129  Parent(NULL),
130  Children()
131  {
132  /* RK: No longer attaches itsself to the world by default, parent is NULL until reference frame is set.
133  */
134  }
135 
141  virtual ~prmTransformationBase();
142 
143  prmTransformationBasePtr WorldFrame(void);
144 
152  bool SetReferenceFrame(const prmTransformationBasePtr & newReference);
153  bool SetReferenceFrame(const std::string & parentName);
154 
157  {
158  return Parent;
159  }
160 
163  inline const std::string & GetName(void) const
164  {
165  return this->Name;
166  }
167 
168  inline void SetName(const std::string & name)
169  {
170  this->Name = name;
171  }
173 
175  virtual vctFrm3 WRTReference(void) const = 0;
176 
177 }; //prmTransformationBase
178 
179 
181 
182 
183 #endif // _prmTransformationBase_h
184 
Defines the command interfaces.
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
prmTransformationBasePtr Parent
Definition: prmTransformationBase.h:106
Class registration macros.
Typedef for different transformations.
prmTransformationBase * prmTransformationBasePtr
Support classes for transformation manager.
Definition: prmTransformationBase.h:47
const std::string & GetName(void) const
Definition: prmTransformationBase.h:163
void SetName(const std::string &name)
Definition: prmTransformationBase.h:168
#define CMN_DECLARE_SERVICES(hasDynamicCreation, lod)
Definition: cmnClassRegisterMacros.h:116
CMN_DECLARE_SERVICES_INSTANTIATION(prmTransformationBase)
std::string Name
Definition: prmTransformationBase.h:103
std::list< prmTransformationBasePtr > NodeListType
Definition: prmTransformationBase.h:75
Transformation base class.
Definition: prmTransformationBase.h:69
static vctFrm3 WRTReference(const prmTransformationBasePtr &tipFrame, const prmTransformationBasePtr &refFrame)
NodeListType Children
Definition: prmTransformationBase.h:109
Forward declarations for cisstParameterTypes.
Definition: prmTransformationManager.h:80
prmTransformationBase(void)
Definition: prmTransformationBase.h:117
const int CMN_NO_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:328
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76
prmTransformationBasePtr GetReferenceFrame(void) const
Definition: prmTransformationBase.h:156
prmTransformationBase(const std::string &name)
Definition: prmTransformationBase.h:127