Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HOpObjectClash.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2000 by Tech Soft 3D, LLC.
3 // The information contained herein is confidential and proprietary to
4 // Tech Soft 3D, LLC., and considered a trade secret as defined under
5 // civil and criminal statutes. Tech Soft 3D shall pursue its civil
6 // and criminal remedies in the event of unauthorized use or misappropriation
7 // of its trade secrets. Use of this information by anyone other than
8 // authorized employees of Tech Soft 3D, LLC. is granted only under a
9 // written non-disclosure agreement, expressly prescribing the scope and
10 // manner of such use.
11 //
12 // $Id: 977b83ce9ae0482ab7c5ebc99502cc263acc83d0 $
13 //
14 
15 // HOpObjectClash.h : interface of the HOpObjectClash class
16 // translate items in the selection list of the associated view
17 //
18 // currently supports translation of item if it is a segment
22 #ifndef _HOPOBJECTCLASH_H
23 #define _HOPOBJECTCLASH_H
24 
25 #ifdef H_PACK_8
26 #pragma pack(push)
27 #pragma pack(8)
28 #endif
29 
30 #include "HTools.h"
31 #include "HBaseOperator.h"
32 #include "HOpObjectTranslate.h"
33 
34 class HSelectionSet;
35 
56 class MVO_API HOpObjectClash : public HOpObjectTranslate
57 {
58 protected:
62  HOOC_World = 0x1,
63  HOOC_Screen = 0x2,
64  HOOC_Shell = 0x3,
65  HOOC_Enclosure = 0x4
66  };
69  enum HOOC_Result {
70  HOOC_Unknown = -1,
71  HOOC_In = 0x1,
72  HOOC_Out = 0x2,
73  HOOC_Clash = 0x3
74  };
75 
76 
77 protected:
83  int IntersectPolyline( HC_KEY key1, float *transformed_points1 );
84 
90  void ProcessSelectionResults( HC_KEY current_shell = INVALID_KEY, float *transformed_points = 0 );
91 
97  int TestEnclosure( HC_KEY current_shell_key, float *transformed_points );
98 
105  int GetScreenVolume( HC_KEY seg, HPoint &min, HPoint &max );
106 
112  virtual int SelectByScreenVolume( HSmartSelItem * sel_item );
113 
119  virtual int SelectByWorldVolume( HSmartSelItem * sel_item );
120 
126  virtual int SelectByEnclosure( HSmartSelItem * sel_item );
127 
133  virtual int SelectByShell( HSmartSelItem * sel_item );
134 
138  void SetSelectMode( int mode );
139 
146  int GetWorldVolume( HC_KEY seg, HPoint &min, HPoint &max );
147 
149  void GrabSelectionSet();
150 
152  void RestoreSelectionSet();
153 
156 
159 
162 
165 
168 
171  void ClashDetect (HEventInfo &hevent);
172 
173 public:
174 
180  HOpObjectClash (HBaseView* view, int DoRepeat=0, int DoCapture=1);
181 
183  virtual ~HOpObjectClash();
184 
188  virtual const char * GetName();
189 
197  virtual int OnLButtonDown (HEventInfo &hevent);
198 
204  virtual int OnLButtonDownAndMove(HEventInfo &hevent);
205 
211  virtual int OnLButtonUp (HEventInfo &hevent);
212 
234  virtual int OnKeyDown (HEventInfo &hevent);
235 
241  virtual HBaseOperator * Clone();
242 
246  virtual void UpdateKeyList(void * data);
247 
248 };
249 
250 
251 #ifdef H_PACK_8
252 #pragma pack(pop)
253 #endif
254 
255 #endif
256 
257 
258 
virtual void UpdateKeyList(void *data)
HOOC_Result
Definition: HOpObjectClash.h:69
bool m_save_spriting_mode
Definition: HOpObjectClash.h:155
virtual HBaseOperator * Clone()
#define HC_KEY
HOOC_SelectMode
Definition: HOpObjectClash.h:61
The HSelectionSet class manages a list of selected items.
Definition: HSelectionSet.h:71
virtual int OnLButtonDownAndMove(HEventInfo &hevent)
The HSmartSelItem - selection item which can handle instancing.
Definition: HSelectionItem.h:192
virtual int OnLButtonUp(HEventInfo &hevent)
virtual const char * GetName()
HC_KEY m_TempSegKey
Definition: HOpObjectClash.h:167
int m_IntersectPolylinesVisible
Definition: HOpObjectClash.h:164
Definition: HOpObjectClash.h:56
The HBaseOperator class serves as a base for classes which handle user input and operate on the scene...
Definition: HBaseOperator.h:65
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:126
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:337
int m_SelectMode
Definition: HOpObjectClash.h:161
The HEventInfo class stores and manages event information.
Definition: HEventInfo.h:214
virtual int OnKeyDown(HEventInfo &hevent)
virtual int OnLButtonDown(HEventInfo &hevent)
The HOpObjectTranslate class translates a selected object.
Definition: HOpObjectTranslate.h:46
HSelectionSet * m_pClashSelection
Definition: HOpObjectClash.h:158