Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

cybweatherboxc.h

Go to the documentation of this file.
00001 /*
00002 Copyright (C) 2003 Malte Weiß
00003 
00004 Address:  FGAN Forschungsgesellschaft für Angewandte Naturwissenschaften e. V.
00005           Neuenahrer Str. 20
00006           D - 53343 Wachtberg
00007 
00008 Email:    winkelholz@fgan.de
00009 
00010 This program is free software; you can redistribute it and/or
00011 modify it under the terms of the GNU General Public License
00012 as published by the Free Software Foundation; either version 2
00013 of the License, or (at your option) any later version.
00014 
00015 This program is distributed in the hope that it will be useful,
00016 but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 GNU General Public License for more details.
00019 
00020 You should have received a copy of the GNU General Public License
00021 along with this program; if not, write to the Free Software
00022 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00023 */
00024 
00025 #ifndef CYBWEATHERBOXC_H
00026 #define CYBWEATHERBOXC_H
00027 
00028 #include "oaw/ctk/cybgeometryc.h"
00029 #include "oaw/ctk/cybwrlfields.h"
00030 #include "../oawconfig.h"
00031 
00032 OAW_BEGIN_NAMESPACE
00033 
00034 
00035 class OAW_DLLMAPPING CybWeatherBoxC : public CybGeometryC
00036 {
00037 public:
00038   CybWeatherBoxC(CybWorldC*);
00039   CybWeatherBoxC(const CybWeatherBoxC&);
00040   CybWeatherBoxC& operator=(const CybWeatherBoxC&);
00041 
00042 protected:
00043   virtual void CreateNewCopy(CybGeometryC*);
00044 
00045 public:
00046   virtual void LoadVRML(char*& iter, const char* iterEnd, long& znr);
00047   virtual void SetEvent(long srct, const void* pData, BaseI*);
00048   virtual long GetFieldDataType(long fieldID);
00049   virtual long GetFieldEventID(const char* str);
00050   virtual short GetFieldData(long nFieldID, void* dest);
00051 
00052   virtual void ToChannelDefault(CybChannelC* pV, long lFlag);
00053 
00054 protected:
00055   // Helper functions
00056   SFVec3f     GetNewParticle();
00057   SFBool      IsParticleDead(SFVec3f &v);
00058 
00059 public:
00060   void UpdateGeometry();
00061 
00062 protected:
00063   // Graphical data
00064   SFVec3f*    m_particles;      // Array of particles
00065   SFInt32     m_nNumParticles;  // Size of the particle array
00066 
00067 public:
00068   // Field data
00069   SFString    m_strType;
00070   SFVec3f     m_vSize;
00071   SFVec3f     m_vDirection;
00072   SFInt32     m_nMaxParticles;
00073   SFFloat     m_fParticleSize;
00074   SFFloat     m_fSpeedFactor;
00075 
00076 private:
00077   static char VRMLKeyStrList[][30];
00078 };
00079 
00080 OAW_END_NAMESPACE
00081 
00082 
00083 #endif

Generated on Tue Jul 29 14:24:14 2003 for Open ActiveWrl by doxygen1.3-rc2