gee_scale_around_path.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 
00003 /* COPYRIGHT
00004  *
00005  * This file is part of the Visual Effects Engine - VEE
00006  *
00007  * Read the "VEE-LICENSE" file for the license.
00008  *
00009  * Authors & Copyright:   
00010  *
00011  * Tommi Ilmonen, Tuukka Heikura, Marko Myllymaa and 
00012  * Janne Kontkanen 2001-2004
00013  *
00014  * Additional copyrights: Tekes 2003-2004
00015  *
00016  * firstname.lastname@hut.fi
00017  *
00018  */
00019 
00020 #ifndef GEE_SCALE_AROUND_PATHS_H
00021 #define GEE_SCALE_AROUND_PATHS_H
00022 
00023 #include <gee_path_to_x.h>
00024 
00025 #include <vector>
00026 
00027 class GEE_ScaleAroundPaths : public GEE_PathToX
00028 {
00029 public:
00030   GEE_ScaleAroundPaths(GEE_id_t pathId1 = -1, 
00031            GEE_id_t pathId2 = -1, 
00032            GEE_id_t geoId = -1, 
00033            bool uniform = true);
00034   virtual ~GEE_ScaleAroundPaths();
00035   
00036   virtual id_container * getExtraIds();
00037 
00038   virtual bool act(GEE_World *, const GEE_TimeStamp &);
00039 
00040   virtual bool read(GEE_Io *);
00041   virtual bool write(GEE_Io *);
00042   virtual const char * type();
00043   static GEE_Operator * create();
00044 
00045   void addGeometryId(GEE_id_t geoId) { m_geoIds.insert(geoId); }
00046 
00047 protected:
00048 
00049   virtual bool handleNewVertices(GEE_Path3D::iterator &, 
00050          GEE_Path3D::iterator &);
00051 
00052   virtual void doScale(GEE_World *);
00053 
00054   class Scale
00055   {
00056   public:
00057     // Locations of the hands:
00058     VEE_Vector3 m_move, m_center, m_size, m_prevSize;
00059   };
00060 
00061   VEE_Vector3          m_curLoc;
00062   VEE_Vector3          m_curSize;
00063   VEE_Vector3          m_grabDirection;
00064 
00065   std::vector<Scale>    m_scales;
00066 
00068   id_container m_geoIds;
00069   bool     m_uniform;
00070 };
00071 
00072 
00073 #endif

Generated on Mon Mar 12 21:09:00 2007 for VEE - The Visual Effects Engine by  doxygen 1.4.6