Frapper  1.0a
TransformNode.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of FRAPPER
4 research.animationsinstitut.de
5 sourceforge.net/projects/frapper
6 
7 Copyright (c) 2008-2009 Filmakademie Baden-Wuerttemberg, Institute of Animation
8 
9 This program is free software; you can redistribute it and/or modify it under
10 the terms of the GNU Lesser General Public License as published by the Free Software
11 Foundation; version 2.1 of the License.
12 
13 This program is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16 
17 You should have received a copy of the GNU Lesser General Public License along with
18 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
20 http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
21 -----------------------------------------------------------------------------
22 */
23 
32 
33 #ifndef TRANSFORMNODE_H
34 #define TRANSFORMNODE_H
35 
36 #include "ViewNode.h"
37 #include "OgreContainer.h"
38 #include "InstanceCounterMacros.h"
39 
40 // OGRE
41 #include <Ogre.h>
42 #if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32)
43 #include <windows.h>
44 #endif
45 
46 namespace TransformNode {
47 using namespace Frapper;
48 
52 class TransformNode : public ViewNode
53 {
54 
55  Q_OBJECT
57 
58 protected: // static constants
59 
63  static const QString InputGeometryParameterName;
64 
68  static const QString InputLightsParameterName;
69 
73  static const QString InputCamerasParameterName;
74 
78  static const QString OutputGeometryParameterName;
79 
83  static const QString OutputLightsParameterName;
84 
88  static const QString OutputCamerasParameterName;
89 
90 public: // constructors and destructors
91 
98  TransformNode ( const QString &name, ParameterGroup *parameterRoot );
99 
107  virtual ~TransformNode ();
108 
109 public: // functions
110 
117  virtual Ogre::SceneNode * getSceneNode ();
118 
124  virtual double getBoundingSphereRadius ();
125 
131  virtual void evaluateConnection ( Connection *connection );
132 
133 public slots: //
134 
138  void processOutputGeometry ();
139 
143  void processOutputLights ();
144 
148  void processOutputCameras ();
149 
152  //void applyTransform ();
153 
157  void applyTranslation ();
158 
162  void applyRotation ();
163 
167  void applyScale ();
168 
172  void resetTransformation ();
173 
174 private: // variables
175 
179  Ogre::SceneManager *m_sceneManager;
180 
185 
190 
195 
200 
205 
210 
211 };
212 
213 } // namespace TransformNode
214 
215 #endif