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
1.3-rc2