Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
SceneCoordinateFrame.hh
1 /*
2  This file is part of the BIAS library (Basic ImageAlgorithmS).
3 
4  Copyright (C) 2003, 2004 (see file CONTACTS for details)
5  Multimediale Systeme der Informationsverarbeitung
6  Institut fuer Informatik
7  Christian-Albrechts-Universitaet Kiel
8 
9 
10  BIAS is free software; you can redistribute it and/or modify
11  it under the terms of the GNU Lesser General Public License as published by
12  the Free Software Foundation; either version 2.1 of the License, or
13  (at your option) any later version.
14 
15  BIAS 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 for more details.
19 
20  You should have received a copy of the GNU Lesser General Public License
21  along with BIAS; if not, write to the Free Software
22  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24 
25 #ifndef __SCENECOORDINATEFRAME_HH_
26 #define __SCENECOORDINATEFRAME_HH_
27 
28 #include <bias_config.h>
29 
30 #include <Geometry/RMatrix.hh>
31 #include <GLviewer/Scenes/SceneBase.hh>
32 
33 namespace BIAS
34 {
35  /**
36  @class SceneCoordinateFrame
37  @brief Display axes of a local coordinate frame.
38  @author esquivel
39  @ingroup g_glviewer
40  */
41  class BIASGLviewer_EXPORT SceneCoordinateFrame : public BIAS::SceneBase
42  {
43  public:
44 
45  /** @brief Create a coordinate frame with the given origin, orientation,
46  and scale. By default the canonical coordinate frame is used. */
48  = BIAS::Vector3<double>(0, 0, 0),
49  const BIAS::RMatrix &orientation
51  const double scale = 1.0);
52 
54 
55  /** @brief Set origin, orientation and scale of coordinate frame. */
56  void SetCoordinateFrame(const BIAS::Vector3<double> &origin,
57  const BIAS::RMatrix &orientation,
58  const double scale = 1.0);
59 
60  /** @brief Implementation of the SceneBase Draw method. */
61  virtual void Draw();
62 
63  /** @brief Implementation of the SceneBase GetBoundingBox method. */
64  virtual void GetBoundingBox(BIAS::Vector3<double> &minVal,
65  BIAS::Vector3<double> &maxVal);
66 
67  protected:
68 
70  BIAS::Vector3<float> axisX_, axisY_, axisZ_;
71 
74 
75  };
76 
77 }
78 
79 #endif // __SCENECOORDINATEFRAME_HH_
BIAS::Vector3< double > boundingBoxMin_
BIAS::Vector3< double > boundingBoxMax_
3D rotation matrix
Definition: RMatrix.hh:49
Base class for all scenes.
Definition: SceneBase.hh:68
BIAS::Vector3< float > axisZ_
Display axes of a local coordinate frame.
BIAS::Vector3< float > origin_