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

cybselectvolumec.h

Go to the documentation of this file.
00001 /*
00002 Copyright (C) 1999  Carsten Winkelholz
00003 
00004 Address:  FGAN Forschungsgesellschaft fr 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 CYBSELECTVOLUMEC_H
00026 #define CYBSELECTVOLUMEC_H
00027 
00028 #include "oaw/misc/vectorc.h"
00029 #include "cybwrlfields.h"
00030 #include "../oawconfig.h"
00031 
00032 OAW_BEGIN_NAMESPACE
00033 
00034 
00035 class CybTouchSensorC;
00036 class CybGroupC;
00037 class CybWorldC;
00038 class CybViewC;
00039 
00040 class OAW_DLLMAPPING CybSelectVolumeC{
00041 public:
00042   enum FrustumType{BOX,VIEW2D};
00043   struct SelStruct{
00044     CybTouchSensorC* m_pNode;
00045     VectorC   m_hitPoint;
00046     double    m_zMax;
00047     double    m_zMin;
00048   };
00049 public:
00050   CybSelectVolumeC(){}
00051   virtual ~CybSelectVolumeC(){}
00052   virtual void SetFrustumType(CybSelectVolumeC::FrustumType);
00053   virtual void SetView2DCursorPos(double, double);
00054   virtual void SetView2DCursorSize(double);
00055   virtual void SetBoxSize(const VectorC& s);
00056   virtual void SetBoxTransform(const Matrix4C&);
00057   virtual ArrayC<SelStruct> GetSelection()=0;
00058   virtual void Process(CybGroupC*,short flag)=0;
00059 protected:
00060   VectorC m_base;
00061   VectorC m_direction;
00062   FrustumType m_type;
00063 
00064   VectorC m_boxSize;
00065   Matrix4C m_boxTransform;
00066   double m_viewCursorPos_X;
00067   double m_viewCursorPos_Y;
00068   double m_viewCursorSize;
00069   CybViewC* m_pViewFrustumView;
00070 };
00071 
00072 OAW_END_NAMESPACE
00073 
00074 
00075 #endif
00076 
00077 
00078 
00079 
00080 

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