editable.h

Go to the documentation of this file.
00001 /*
00002  Copyright (C) 2001-2006, William Joseph.
00003  All Rights Reserved.
00004 
00005  This file is part of GtkRadiant.
00006 
00007  GtkRadiant is free software; you can redistribute it and/or modify
00008  it under the terms of the GNU General Public License as published by
00009  the Free Software Foundation; either version 2 of the License, or
00010  (at your option) any later version.
00011 
00012  GtkRadiant is distributed in the hope that it will be useful,
00013  but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  GNU General Public License for more details.
00016 
00017  You should have received a copy of the GNU General Public License
00018  along with GtkRadiant; if not, write to the Free Software
00019  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00020  */
00021 
00022 #if !defined(INCLUDED_EDITABLE_H)
00023 #define INCLUDED_EDITABLE_H
00024 
00025 template<typename Element> class BasicVector3;
00026 typedef BasicVector3<float> Vector3;
00027 template<typename Element> class BasicVector4;
00028 typedef BasicVector4<float> Vector4;
00029 class Matrix4;
00030 typedef Vector4 Quaternion;
00031 
00032 #include "scenelib.h"
00033 
00034 class Editable
00035 {
00036     public:
00037         STRING_CONSTANT(Name, "Editable");
00038 
00039         virtual ~Editable ()
00040         {
00041         }
00042 
00043         virtual const Matrix4& getLocalPivot () const = 0;
00044 };
00045 
00046 inline Editable* Node_getEditable (scene::Node& node)
00047 {
00048     return dynamic_cast<Editable*> (&node);
00049 }
00050 
00051 class Snappable
00052 {
00053     public:
00054         STRING_CONSTANT(Name, "Snappable");
00055 
00056         virtual ~Snappable ()
00057         {
00058         }
00059 
00060         virtual void snapto (float snap) = 0;
00061 };
00062 
00063 inline Snappable* Node_getSnappable (scene::Node& node)
00064 {
00065     return dynamic_cast<Snappable*> (&node);
00066 }
00067 
00068 #endif

Generated by  doxygen 1.6.2