gee_path_multiply.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_PATH_MULTIPLY_H
00021 #define GEE_PATH_MULTIPLY_H
00022 
00023 #include <gee_path_to_x.h>
00024 #include <gee_profile.h>
00025 
00026 #include <vee_reference_object.h>
00027 
00028 class GEE_PathMultiply : public GEE_PathToX
00029 {
00030 public:
00031   GEE_PathMultiply(GEE_id_t pathId = -1);
00032   virtual ~GEE_PathMultiply();
00033 
00034   virtual id_container * getExtraIds();
00035 
00036   virtual bool start(GEE_World *, const GEE_TimeStamp &);
00037   virtual bool stop(GEE_World *, const GEE_TimeStamp &);
00038 
00039   virtual bool read(GEE_Io *);
00040   virtual bool write(GEE_Io *);
00041   virtual const char * type();
00042 
00043   static GEE_Operator * create();
00044 
00045   void setProfile(const GEE_Profile &profile);  
00046 
00047   void setScale(float scale) { m_scale = scale; }
00048   void setThreshold(float t) { m_threshold = t; }
00049 
00050   void setAlignment(GEE_AlignMode m) { m_align = m; }
00051 
00052   uint pathCount() const { return m_profile.size(); }
00053   GEE_id_t pathId(int index);
00054 
00055   // void useNapra(bool withNapra) { m_withNapra = withNapra; }
00056 
00057   void setExtrude(const VEE_Vector3 & ext) { m_extrude = ext; }
00058 
00059 protected:
00060   virtual bool handleNewVertex(GEE_Path3D::iterator &);
00061 
00062   GEE_ParamWriter m_writer;
00063 
00064   VEE_Vector3 m_prevLoc;
00065   VEE_Vector3 m_dir;
00066   VEE_Vector3 m_extrude;
00067 
00068   float       m_scale;
00069   float       m_threshold;
00070   int         m_align;
00071   bool        m_newSegment;
00072   GEE_Profile m_profile;
00073 
00074   id_container m_ids;
00075 
00076   class Item
00077   {
00078   public:
00079     Item() : m_path (0) {}
00080 
00081     VEE_RefPtr<GEE_Geometry>    m_geo;
00082     GEE_Path3D                * m_path;
00083     VEE_Vector2                 m_vertex;
00084   };
00085 
00086   std::vector<Item> m_paths;
00087 };
00088 
00089 
00090 #endif
00091 

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