HBaseView.h
Go to the documentation of this file.
1 // Copyright (c) Tech Soft 3D, Inc.
2 //
3 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc.,
4 // and considered a trade secret as defined under civil and criminal statutes.
5 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of
6 // unauthorized use or misappropriation of its trade secrets. Use of this information
7 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under
8 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use.
9 
13 #ifndef _HBASEVIEW_H
14 #define _HBASEVIEW_H
15 
16 #ifdef H_PACK_8
17 #pragma pack(push)
18 #pragma pack(8)
19 #endif
20 
21 #include "HTools.h"
22 #include "HTManager.h"
23 #include "HEventListener.h"
24 
25 class HDB;
26 class HBaseModel;
27 class HCamera;
28 class HEventInfo;
29 class HSelectionSet;
30 class HBaseOperator;
31 class HConstantFrameRate;
32 class HSharedKey;
33 class HImCuttingGeometry;
34 class HOutputHandler;
36 class HInputHandler;
39 class HMarkupManager;
40 class HShadow;
41 class HUndoManager;
42 class HEventManager;
43 class HObjectManager;
45 class HDebugZBuffer;
46 class HConstFRSimpType;
47 
48 
54 typedef bool(*HSignalNotifyFunction)(int signal, void *signal_data, void *user_data);
55 
56 
57 
62 {
72  HRenderPhong = 10,
87  HRenderUnknown = 0
88 };
89 
94 {
111 
116 
117  HViewFront,
118  HViewBack,
119  HViewRight,
120  HViewLeft,
121  HViewTop,
122  HViewBottom,
123 
125 };
126 
127 
132 {
136 };
137 
138 
148 {
152 };
160 {
165 };
166 
167 
168 
173 {
177 };
178 
179 
184 {
188 };
189 
194 {
195  MultiThreadingOff,
196  MultiThreadingBasic,
197  MultiThreadingFull
198 };
199 
204 {
208 };
209 
210 
213 {
218 };
219 
222 {
223  UpDirectionX = 0xFADE,
224  UpDirectionY,
225  UpDirectionZ
226 };
227 
228 
233 {
237 };
238 
239 
242 {
246 };
247 
250 {
253 };
254 
257 {
262 };
263 
264 
272 {
276 };
283 {
286 };
287 
288 
289 
296 typedef void(*HBaseViewEmitMessageFunction)(const char* message, unsigned int length, void * user_data);
297 
298 
300 
332 class MVO_API HBaseView : public HUpdateListener , public HMouseListener, public HObjectManipulationListener
333 {
334 
335 public:
336 
337 
367  HBaseView(HBaseModel *model,
368  const char * alias = 0,
369  const char * driver_type = 0,
370  const char * instance_name = 0,
371  void * window_handle = 0,
372  void * colormap = 0,
373  void * clip_override = 0,
374  void * window_handle_2 = 0,
375  const char * driver_path = 0);
376 
404  void RebindView(
405  const char * alias = 0,
406  const char * driver_type = 0,
407  const char * instance_name = 0,
408  void * window_handle = 0,
409  void * colormap = 0,
410  void * clip_override = 0,
411  void * window_handle_2 = 0,
412  int debug_flags = 0
413  );
414 
419  virtual ~HBaseView();
420 
425  virtual void Init();
426 
432  virtual void FitWorld(HPoint * center_out = 0);
433 
441  virtual void FitWorldExact(HPoint * center_out = 0);
442 
447  virtual void ZoomToExtents();
448 
452  virtual void ZoomToInitialCamera();
453 
454 
459  void FitSegment(HC_KEY seg_key);
460 
465  void FitSelection(HC_KEY key = INVALID_KEY, bool adjustToShellNormal = false);
466 
470  void FitItemByPath(HC_KEY key, int incl_count, HC_KEY * incl_path);
471 
473  void RenderAntialiasing();
474 
476  void InitAntialiasing();
477 
479  HUtilityAntialiasing * GetAntialiasing() { return m_pAntialiasing; }
480 
482  HMarkupManager * GetMarkupManager();
483 
485  bool HaveMarkupManager() {return (m_pMarkupManager != 0);}
486 
490  void SetMarkupManager( HMarkupManager* markup ) { m_pMarkupManager = markup; }
491 
493  void RenderWireframe();
494 
497  void RenderSilhouette();
498 
500  void RenderHiddenLine();
501 
503  void RenderHiddenLineFast();
504 
506  void RenderFlat();
507 
509  void RenderGooch();
510 
512  void RenderGouraud();
513 
515  void RenderPhong();
516 
518  void RenderWireframeWithSilhouette();
519 
521  void RenderShadedWireframe();
522 
524  void RenderVertices();
525 
527  void RenderShadedVertices();
528 
532  void RenderFakeHiddenLine();
533 
536  void RenderBRepHiddenLine();
537 
540  void RenderBRepHiddenLineFast();
541 
543  void RenderBRepWireframe();
544 
549  void RenderShaded();
550 
552  void RenderShadedWithLines();
553 
555  void RenderGouraudWithLines();
556 
558  void RenderLOD1();
560  void RenderLOD2();
561 
562 
564  void RemoveTransforms();
565 
572  virtual void Update();
573 
579  virtual void ForceUpdate();
580 
592  virtual HFileInputResult FileInput(const __wchar_t * FileName, HInputHandler * handler, HInputHandlerOptions * options = 0);
593 
605  virtual HFileInputResult FileInput(const char * FileName, HInputHandler * handler, HInputHandlerOptions * options = 0){
606  return FileInput((__wchar_t*)H_WCS(FileName).encodedText(), handler, options);
607  }
608 
620 #ifdef H_USHORT_OVERLOAD
621  virtual HFileInputResult FileInput(const unsigned short * FileName, HInputHandler * handler, HInputHandlerOptions * options = 0){
622  H_UTF16 utf16;
623  utf16.encodedText((utf16_char*)FileName);
624  return FileInput((__wchar_t*)H_WCS(utf16).encodedText(), handler, options);
625  }
626 #endif
627 
653  virtual HFileOutputResult FileOutput(const __wchar_t * FileName, HOutputHandler * handler, HOutputHandlerOptions * options = 0);
654 
680  virtual HFileOutputResult FileOutput(const char * FileName, HOutputHandler * handler, HOutputHandlerOptions * options = 0){
681  return FileOutput((__wchar_t*)H_WCS(FileName).encodedText(), handler, options);
682  }
683 
684  // accessors
685 
687  const char* GetDriverPath() { return m_sDriverPath; }
688 
690  const char* GetDriverType() { return m_sDriverType; }
691 
693  virtual void UpdateHighlighting();
694 
696  HSelectionSet* GetSelection() { return m_pSelection; }
697 
701  void SetSelection(HSelectionSet* selection) { m_pSelection = selection; }
702 
704  virtual HBaseModel * GetModel() { return m_pModel; }
705 
708  HC_KEY GetModelKey();
709 
711  HRenderMode GetRenderMode () { return m_RenderMode; }
712 
714  ViewMode GetViewMode () { return m_ViewMode; }
715 
722  virtual void SetViewMode (ViewMode mode, bool invert = false, bool fitWorld = true);
723 
725  bool GetCPLineVisibility() {return m_bCPLineVisibility; }
726 
728  bool GetCPFaceVisibility() {return m_bCPFaceVisibility; }
729 
737  void SetCPGeomVisibility(bool lines, bool faces=false);
738 
739 
745  bool GetCuttingPlanesExist(const char *plane = 0);
746 
750  void SetCuttingPlanesExist(bool state);
751 
753  bool GetCuttingPlanesVisibility() {return m_bCuttingPlanesVisibility; }
754 
758  void SetCuttingPlanesVisibility(bool visible);
759 
761  HConstantFrameRate* GetConstantFrameRateObject() { return m_pConstantFrameRate; }
762 
766  void SetConstantFrameRateObject(HConstantFrameRate* cf) { m_pConstantFrameRate = cf; }
767 
769  void SetEventCheckerCallback(void (* EventChecker)(HIC_Rendition const *nr));
770 
772  void SetKeyStateCallback(bool (* KeyState)(unsigned int, int &)) { m_pfKeyState = KeyState; }
773 
775  bool (*GetKeyStateCallback())(unsigned int, int &) { return m_pfKeyState; }
776 
778  void (*GetEventCheckerCallback())(HIC_Rendition const *nr) { return m_pfEventChecker; }
779 
780 
788  void SetOcclusionCullingMode(bool mode, bool UseOctree = true, int threshold = 50);
789 
790 
793  HandednessMode GetHandedness();
794 
805  virtual void SetHandedness(HandednessMode mode, bool emit_message=false);
806 
811  virtual void SetHandednessFromMessage(const char *in_data, unsigned int data_length);
812 
820  virtual bool SetHandednessFromModel(bool remove_handedness_from_model = true, bool emit_message = false);
821 
827  virtual void SetFontSize(const char *font_size, bool emit_message=false);
828 
833  virtual void SetFontSizeFromMessage(const char *in_data, unsigned int data_length);
834 
836  bool GetBackplaneCulling();
837 
844  void SetBackplaneCulling(bool cull);
845 
849  ProjMode GetProjMode();
850 
854  void SetProjMode(ProjMode mode);
855 
857  DisplayListType GetDisplayListType();
858 
862  void SetDisplayListType(DisplayListType type);
863 
865  bool GetDisplayListMode();
866 
870  void SetDisplayListMode(bool mode);
871 
873  HandednessMode GetPolygonHandednessMode();
874 
886  void SetPolygonHandednessMode(HandednessMode);
887 
890  bool GetLodMode();
891 
898  void SetLodMode(bool onoff);
899 
901  bool GetSpritingMode() { return m_bSpritingAllowed; }
902 
908  void SetSpritingMode(bool onoff) { m_bSpritingAllowed = onoff; }
909 
913  int GetLodThreshold();
914 
919  void SetLodThreshold(int val);
920 
922  HC_KEY GetViewKey() { return m_ViewKey; }
924  void SetViewKey( HC_KEY view_key ) { m_ViewKey = view_key; }
925 
927  HC_KEY GetIncludeLinkKey() { return m_lIncludeLinkKey; }
929  void SetIncludeLinkKey( HC_KEY link ) { m_lIncludeLinkKey = link; }
930 
932  HC_KEY GetSceneKey() { return m_SceneKey; }
933 
937  void SetSceneKey( HC_KEY scene_key ) { m_SceneKey = scene_key; }
938 
940  HC_KEY GetOverwriteKey() { return m_OverwriteKey; }
941 
943  HC_KEY GetShadowMapSegmentKey();
944 
946  HC_KEY GetLightsKey() { return m_LightsKey; }
947 
951  void SetLightsKey( HC_KEY lights_key ) { m_LightsKey = lights_key; }
952 
954  float GetZoomLimit() { return m_fZoomLimit; }
955 
959  void SetZoomLimit( float zoomLimit ) { m_fZoomLimit = zoomLimit; }
960 
962  virtual void SetZoomLimit();
963 
965  HC_KEY GetWindowspaceKey() { return m_WindowspaceKey; }
966 
970  void SetWindowspaceKey( HC_KEY winspace_key ) { m_WindowspaceKey = winspace_key; }
971 
973  HC_KEY GetConstructionKey() { return m_ConstructionKey; }
974 
978  void SetConstructionKey( HC_KEY construct_key ) { m_ConstructionKey = construct_key; }
979 
981  HC_KEY GetBBoxGeometryKey() { return m_BBoxGeometryKey; }
983  void SetBBoxGeometryKey( HC_KEY bbox_key ) { m_BBoxGeometryKey = bbox_key; }
984 
986  HC_KEY GetCuttingPlanesKey() { return m_CuttingPlanesKey; }
987 
991  void SetCuttingPlanesKey( HC_KEY cuttingplanes_key ) { m_CuttingPlanesKey = cuttingplanes_key; }
992 
994  HC_KEY GetCuttingPlaneGeomKey() { return m_CuttingPlaneGeomKey; }
995 
999  void SetCuttingPlaneGeomKey( HC_KEY cuttingplanegeom_key ) { m_CuttingPlaneGeomKey = cuttingplanegeom_key; }
1001  HC_KEY GetIntersectPolylinesKey() { return m_IntersectPolylinesKey; }
1002 
1006  void SetIntersectPolylinesKey( HC_KEY intersectpolylines_key ) { m_IntersectPolylinesKey = intersectpolylines_key; }
1007 
1009  HC_KEY GetProgressBarKey() { return m_ProgressBarKey; }
1014  void SetProgressBarKey( HC_KEY key ) { m_ProgressBarKey = key; }
1015 
1016 
1018  int GetUpdateInterrupted() { return m_UpdateInterrupted; }
1019 
1023  void SetUpdateInterrupted( int val ) { m_UpdateInterrupted = val; }
1024 
1026  float GetIdleTime();
1027 
1029  void ResetIdleTime();
1030 
1033  HQuickMovesMethod GetQuickMovesMethod () const;
1034 
1036  class HDebugZBuffer *GetDebugZBuffer() { return m_pDebugZBuffer; }
1037 
1040  void SetDebugZBuffer(HDebugZBuffer *dzb) { m_pDebugZBuffer = dzb; };
1041 
1043  AxisMode GetAxisMode() {return m_bAxisMode; }
1044 
1049  virtual void SetAxisMode(AxisMode mode);
1050 
1054  virtual void OnSetAxisMode( AxisMode mode );
1055 
1057  void UpdateAxisTriad() { SetAxisMode(GetAxisMode()); }
1058 
1064  virtual void AdjustAxisWindow( int axis_window_pixels_in = -1, HIntRectangle *rect_in=0 );
1065 
1067  static void AdjustAxisWindowCallback(int signal, void * signal_data, void * user_data);
1068 
1070  static void AdjustWindowCallback(int signal, void * signal_data, void * user_data);
1071 
1073  HShadowMode GetShadowMode() {return m_ShadowMode; }
1074 
1079  virtual void SetShadowMode (HShadowMode sm, bool saveMode = true);
1080 
1092  virtual void SetReflectionPlane(bool state, float opacity=0.5f, bool fading=true, bool attenuate=false,
1093  float hither=0.0f, float yon=1.0f, bool blur=false, int blur_level=1);
1094 
1096  HC_KEY GetDefaultLightKey(int which = 0) { return m_SceneLight[which]; }
1097 
1098 
1100  bool GetTransparentSelectionBoxMode() {return m_bTransparentSelectionBox; }
1101 
1105  void SetTransparentSelectionBoxMode(bool mode) { m_bTransparentSelectionBox = mode; }
1106 
1110  virtual void DeleteSelectionList(bool emit_message=false);
1111 
1118  void RotateOnUpdate(const char *sname);
1119 
1125  virtual void SetWindowColor(HPoint rgb, bool emit_message=false);
1126 
1135  virtual void SetWindowColor(HPoint rgbtop, HPoint rgbbottom, bool emit_message=false);
1136 
1146  virtual void SetWindowColorRange(HPoint rgbtop, HPoint rgbbottom, int percentage, bool emit_message=false);
1147 
1148 
1154  virtual void SetWindowMaterial(const char * name, bool emit_message=false);
1155 
1161  virtual void SetWindowColorFromMessage(const char *in_data, unsigned int data_length);
1162 
1166  void GetWindowColor(HPoint &color_out);
1167 
1172  void GetWindowColor(HPoint &color_top, HPoint &color_bottom);
1173 
1179  void GetWindowColor(HPoint &color_top, HPoint &color_bottom, int &percentage);
1180 
1185  void GetWindowMaterial(char * out_material, char * out_pattern);
1186 
1190  void SetOperator(HBaseOperator *NewOperator);
1191 
1192 
1194  void SetCurrentOperator(HBaseOperator *NewOperator) { SetOperator(NewOperator); }
1195 
1199  HBaseOperator* GetOperator() { return m_pOperator; }
1200 
1205  HBaseOperator* GetCurrentOperator() { return m_pOperator; }
1206 
1207 
1209  HC_KEY GetAxisTriadKey() {return m_AxisTriadKey;}
1210 
1212  bool GetHideOverlappedText(){ return m_bHideOverlappedText;}
1213 
1217  void SetHideOverlappedText(bool hide);
1218 
1222  void SetNavCube(bool onoff) { m_bNavCube = onoff;}
1223 
1225  bool GetSmoothTransition() { return m_bSmoothTransition;}
1226 
1230  void SetSmoothTransition(bool onoff) { m_bSmoothTransition = onoff;}
1231 
1235  void SetSmoothTransitionDuration(float duration) { m_SmoothTransitionDuration = duration;}
1236 
1238  float GetSmoothTransitionDuration() { return m_SmoothTransitionDuration;}
1239 
1241  bool IsLightFollowCamera(){return m_bLightFollowsCamera;}
1242 
1246  void SetLightFollowsCamera(bool onoroff);
1247 
1248  static const int MaxLights = 6;
1249 
1253  void SetLightCount(int count);
1254 
1258  int GetLightCount() { return m_LightCount; }
1259 
1267  virtual void CameraPositionChanged(bool emit_message=false, bool smooth_camera_transition=false);
1268 
1269 
1273  virtual void PrepareForCameraChange();
1274 
1275 
1285  virtual void SetCamera(HPoint pos, HPoint tar, HPoint up, float fieldx, float fieldy, const char *proj);
1286 
1296  virtual void SetInitialCamera(HPoint pos, HPoint tar, HPoint up, float fieldx, float fieldy, char const * proj);
1297 
1298 
1308  virtual void GetCamera(HPoint *pos, HPoint *tar, HPoint *up, float &fieldx, float &fieldy, char *proj);
1309 
1314  virtual void SetCamera(HCamera camera);
1315 
1320  virtual void GetCamera(HCamera *camera);
1321 
1327  virtual void SetCameraFromMessage(const char *data, unsigned int data_length);
1328 
1336  virtual void InsertHSFData(const char *segment, const char *in_data, unsigned int data_length, bool emit_message=false);
1337 
1344  virtual void InsertHSFDataFromMessage(const char *in_data, unsigned int data_length);
1345 
1352  virtual void EmitHSFData(const char *segment, const char *in_data, unsigned int data_length);
1353 
1359  virtual void SetRenderMode (HRenderMode NewRenderMode, bool emit_message=false);
1360 
1366  virtual void SetRenderModeFromMessage(const char *in_data, unsigned int data_length);
1367 
1371  virtual void EmitFlushMessage();
1372 
1380  virtual void FlushFromMessage(const char *in_data, unsigned int data_length);
1381 
1382 
1388  virtual void Flush(bool emit_message=false);
1389 
1397  HBaseViewEmitMessageFunction new_emit_message_function,
1398  void * user_data=0) {
1399  emit_message_function=new_emit_message_function;
1400  emit_message_function_user_data=user_data;};
1401 
1406  bool EmittingMessages() {return emit_message_function != 0;};
1407 
1411  HBaseViewEmitMessageFunction GetEmitMessageFunction() {return emit_message_function;};
1412 
1416  void * GetEmitMessageFunctionUserData() {return emit_message_function_user_data;};
1417 
1423  virtual void EmitSelectMessage(HC_KEY key, bool isSelect);
1424 
1430  virtual void SelectFromMessage(const char *in_data, unsigned int data_length);
1431 
1435  virtual void EmitDeSelectAllMessage();
1436 
1437 
1441  virtual void EmitDeleteSelectionListMessage();
1442 
1443 
1447  virtual void DeleteSelectionListFromMessage();
1448 
1449 
1453  virtual void DeSelectAllFromMessage();
1454 
1455 
1460  virtual void EmitSetModellingMatrixMessage(HC_KEY key);
1461 
1462 
1467  virtual void EmitSetModellingMatrixMessage();
1468 
1476  virtual void EmitSegment(HC_KEY key, bool emit_contents_only = false);
1477 
1482  virtual void EmitDeleteByKeyMessage(HC_KEY key);
1483 
1489  virtual void DeleteByKeyFromMessage(const char *in_data, unsigned int data_length);
1490 
1496  virtual void SetModellingMatrixFromMessage(const char *in_data, unsigned int data_length);
1497 
1501  HSharedKey * GetSharedKey() {return m_pSharedKey;};
1502 
1503 
1507  virtual void StartSharedKey();
1508 
1509 
1512  HAnimateScene = 0x00000001
1513  };
1514 
1515 
1523  virtual void Animate (int animation_steps = 30, HAnimateMode animate_flags = HAnimateScene, int MaxRotation = 360);
1524 
1527  virtual void SetGeometryChanged();
1528 
1532  bool GetSceneBoundingSet() { return m_bSceneBoundingSet; }
1533 
1538  void SetSceneBounding(HPoint &min, HPoint &max);
1539 
1541  void InvalidateSceneBounding() { m_bSceneBoundingSet = false; }
1542 
1546  void SetFastMarkerDrawing(bool b_fast);
1547 
1551  bool GetFastMarkerDrawing();
1552 
1558  void SetDoubleBuffering(bool double_buffer);
1559 
1561  virtual void ClearGeometryChanged() {m_bGeometryChanged = false; };
1562 
1564  virtual bool GeometryChanged() {return m_bGeometryChanged;};
1565 
1571  unsigned long SetSignalNotify( int signal, HSignalNotifyFunction callback, void *user_data );
1572 
1575  void UnSetSignalNotify( unsigned long cookie );
1576 
1581  void SetColorInterpolation(bool onoff);
1582 
1588  void SetColorIndexInterpolation(bool onoff, bool isolines = false);
1589 
1595  bool GetColorIndexInterpolation(char * option = 0);
1596 
1605  bool GetFrameBufferEffectsOptions(char * options = 0, int *border = 0);
1606 
1612  void Notify(int signal, void * signal_data = 0);
1613 
1620  int UpdateEvent(bool antialias = false, bool forceUpdate = false);
1624  bool GetUpdateRequested() { return m_bUpdateRequested; }
1628  void RequestUpdate() { m_bUpdateRequested = true; }
1632  void ClearUpdateRequest() { m_bUpdateRequested = false; }
1633 
1639  void SetSuppressUpdate(bool suppress) {
1640  suppress?m_SuppressUpdate++:m_SuppressUpdate--;
1641  if (m_SuppressUpdate<0)
1642  m_SuppressUpdate = 0;
1643  }
1644 
1649  bool GetSuppressUpdate() { return m_SuppressUpdate > 0; }
1650 
1656  void SetSuppressUpdateTick(bool suppress) {
1657  suppress?m_SuppressUpdateTick++:m_SuppressUpdateTick--;
1658  if (m_SuppressUpdateTick<0)
1659  m_SuppressUpdateTick = 0;
1660  }
1661 
1666  bool GetSuppressUpdateTick() { return m_SuppressUpdateTick > 0; }
1667 
1683  void SetViewUpdateMode(ViewUpdateMode mode, float rate = 0.01f);
1684 
1688  ViewUpdateMode GetViewUpdateMode() { return m_ViewUpdateMode; }
1689 
1697  static bool UpdateTick(float request_time, float actual_time, void * user_data);
1698 
1706  static bool StreamProgressCallback(unsigned long so_far, unsigned long expected, void * user_data);
1707 
1709  void FlushProgressBar();
1710 
1712  HUndoManager *GetUndoManager();
1713 
1715  HEventManager *GetEventManager();
1716 
1718  HObjectManager *GetHObjectManager();
1719 
1721  bool GetDynamicHighlighting() { return m_bDynamicHighlighting; }
1722 
1726  void SetDynamicHighlighting(bool state);
1727 
1733  virtual int OnNoButtonDownAndMove(HEventInfo &hevent);
1734 
1739  virtual int OnLButtonDownAndMove(HEventInfo &hevent);
1740 
1746  virtual int OnLButtonDblClk(HEventInfo &hevent);
1747 
1752  virtual int OnRButtonDownAndMove(HEventInfo &hevent);
1757  virtual int OnMButtonDownAndMove(HEventInfo &hevent);
1762  virtual int OnLRButtonDownAndMove(HEventInfo &hevent);
1763 
1768  virtual int OnLButtonDown(HEventInfo &hevent);
1769 
1774  virtual int OnMouseMove(HEventInfo &hevent);
1775 
1781  virtual int OnLButtonUp(HEventInfo &hevent);
1782 
1783 #if 0
1784 
1788  virtual int OnMouseWheel(HEventInfo &hevent);
1789 #else
1790 
1794  virtual int OnMouseWheel(HEventInfo &hevent);
1795 
1798  virtual bool ComputeReasonableTarget(HPoint & new_tar, HPoint const & mouse_win, HPoint const & tar_orig);
1799 
1800  /* This method adjusts the old field to the new target so the picture on the screen won't change. */
1801  void ComputeNewField(float & width, float & height, HPoint const & new_tar,
1802  HCamera const & old_camera);
1803 #endif
1804 
1806  virtual int OnKeyDown(HEventInfo &hevent);
1807 
1809  virtual int OnKeyUp(HEventInfo &hevent);
1810 
1813  virtual void SetShadowColor(HPoint color);
1814 
1819  virtual void SetShadowLightDirection(bool explicit_light, HPoint const * direction = 0);
1820 
1825  virtual bool GetShadowLightDirection(HPoint * direction = 0);
1826 
1830  virtual void SetShadowIgnoresTransparency(bool ignore);
1831 
1835  virtual bool GetShadowIgnoresTransparency();
1836 
1839  virtual void DoDynamicHighlighting(HPoint mouse_pos);
1840 
1843  virtual void SetShadowResolution(int res);
1844 
1847  virtual void SetShadowBlurring(int blur);
1848 
1850  virtual void InternalUpdate();
1851 
1855  virtual void SetShadowRegenerationMode(bool onoff) { m_bShadowRegeneration = onoff; }
1856 
1859  virtual void SetShadowRegenerationToggle() { m_bShadowRegenerationToggle = true; m_bShadowRegeneration = false; }
1860 
1863  bool GetCuttingPlaneRegenerationMode() { return m_bCuttingPlaneRegeneration; }
1864 
1869  virtual void SetCuttingPlaneRegenerationMode(bool onoff) { m_bCuttingPlaneRegeneration = onoff; }
1870 
1874  bool GetShadowRegenerationMode() { return m_bShadowRegeneration; }
1875 
1879  virtual void SetCameraChanged( bool val=true ) { m_bCameraChanged = val; if(val) ResetIdleTime(); }
1880 
1882  virtual bool GetCameraChanged() { return m_bCameraChanged; }
1883 
1887  virtual void SetInvertMouseWheelZoom( bool val=true ) { m_bInvertMouseWheelZoom = val;}
1888 
1890  virtual bool GetInvertMouseWheelZoom() { return m_bInvertMouseWheelZoom; }
1891 
1892 
1896  virtual void SetAxisManipulateOperator(HOpCameraManipulate *op);
1897 
1902  virtual void SetVisibilitySelectionMode(bool onoff);
1903 
1905  virtual bool GetVisibilitySelectionMode();
1906 
1909  virtual void SetRelatedSelectionLimit(int limit);
1910 
1912  virtual int GetRelatedSelectionLimit();
1913 
1918  virtual void SetDetailSelection(bool onoff);
1919 
1921  virtual bool GetDetailSelectionMode();
1922 
1926  virtual void SetRespectSelectionCulling(bool onoff);
1928  virtual bool GetRespectSelectionCulling();
1929 
1937  virtual void SmartFilterCircumcuboid(const char *segment, const char *defaults, HPoint *bottomfrontleft, HPoint *topbackright);
1938 
1945  int SetupHandlesEvent(HBaseView *view, HC_KEY key, bool complex);
1946 
1948  virtual bool GetHasObjects() { return m_bHasObjects; }
1949 
1953  virtual void SetHasObjects(bool hasobjects);
1954 
1955 
1959  virtual void SetHandleOperator(HBaseOperator *op) { m_pHandleOperator = op; }
1960 
1964  virtual HBaseOperator *GetHandleOperator() { return m_pHandleOperator; }
1965 
1969  virtual float GetDefaultSelectionProximity() { return m_DefaultSelectionProximity; }
1973  virtual void SetDefaultSelectionProximity(float selectionproximity);
1974 
1978  return m_bAllowInteractiveShadows;
1979  }
1980 
1986  void SetAllowInteractiveShadows(bool onoff) {
1987  m_bAllowInteractiveShadows = onoff;
1988  }
1989 
1992  HShadowRenderingMode GetShadowRenderingMode();
1993 
1998  void SetShadowRenderingMode(HShadowRenderingMode mode);
1999 
2002  bool GetAllowInteractiveCutGeometry() { return m_bAllowInteractiveCutGeometry; }
2003 
2009  m_bAllowInteractiveCutGeometry = onoff;
2010  }
2011 
2014  HCutGeometryVisibility GetCutGeometryVisibility();
2015 
2019  void SetCutGeometryVisibility(HCutGeometryVisibility visibility);
2020 
2021 
2024  void * GetWindowHandle() { return m_pWindowHandle; }
2025 
2029  bool GetInitialCameraSet() { return m_bInitialCameraSet; }
2030 
2031 
2032 
2039  int ObjectMovedEvent(HBaseView *view, HC_KEY key, HPoint *pos);
2040 
2044  void SetRecordCamera(bool rc);
2045 
2047  bool GetRecordMode() { return m_bRecordCamera; }
2048 
2052  void InjectEvent(HEventInfo const & hevent);
2053 
2054 
2059  void SetForceFastHiddenLine(bool force) { m_bForceFastHiddenLine = force; }
2060 
2062  bool GetForceFastHiddenLine() { return m_bForceFastHiddenLine; }
2063 
2069  void SetTransparency(char const * text, bool fast_z_sort=false);
2070 
2075  void SetLineAntialiasing( bool onoff );
2076 
2078  bool GetLineAntialiasing() { return m_bLineAntialiasing; }
2079 
2083  void SetTextAntialiasing( bool onoff );
2084 
2089  void SetDepthOfField(bool onoff, float strength = 1.0f);
2090 
2095  void SetDepthOfFieldRange(float near=0.0f, float far=0.0f);
2096 
2098  bool GetTextAntialiasing() { return m_bTextAntialiasing; }
2099 
2103  void SetIsoDefault(ViewMode vm) { m_IsoDefault = vm; }\
2104 
2106  ViewMode GetIsoDefault() { return m_IsoDefault; }
2107 
2114  void SetCullingThreshold(int cullingthreshold);
2115 
2119  int GetCullingThreshold();
2120 
2127  void SetHardExtent(int cutoff);
2128 
2132  int GetHardExtent();
2133 
2138  void BeginShellSelection();
2139 
2142  void EndShellSelection();
2143 
2145  HSelectionSet * GetHighlightSelection() { return m_pHighlight; }
2146 
2153  void SetViewAxis(HVector *front_axis, HVector *top_axis) { m_FrontAxis = front_axis; m_TopAxis = top_axis; }
2158  void GetViewAxis(HVector *front_axis, HVector *top_axis) { *front_axis = m_FrontAxis; *top_axis = m_TopAxis; }
2159 
2163  void SetDefaultHSRA();
2164 
2165 
2169  void SetMaximumUpdateTime(float mut) { m_MaximumUpdateTime = mut; }
2170 
2174  float GetMaximumUpdateTime() { return m_MaximumUpdateTime; }
2175 
2179  virtual HSelectionHighlightMode GetHighlightMode() { return m_HighlightMode; }
2180 
2185  virtual void SetHighlightMode(HSelectionHighlightMode m);
2186 
2190  virtual void SetReferenceSelection(bool use_ref);
2191 
2198  bool GetKeyState(unsigned int key, int &flags);
2199 
2201  void ResetKeyState();
2202 
2206  void SetFastFitWorld(bool fw) { m_bFastFitWorld = fw; }
2207 
2211  void SetDetailedFitWorld(bool fw) { m_bDetailedFitWorld = fw; }
2212 
2216  bool GetFastFitWorld() { return m_bFastFitWorld; }
2217 
2221  bool GetDetailedFitWorld() { return m_bDetailedFitWorld; }
2222 
2228  void GetSceneExtents(HPoint &min, HPoint &max);
2229 
2233  void SetLightScaling(float sv);
2234 
2235  void SetXYSizeOverride(int x,int y) { m_XSize_override = x, m_YSize_override = y; }
2236 
2237 
2239  int GetXSize() {return m_XSize;}
2240 
2242  int GetYSize() {return m_YSize;}
2243 
2245  HViewSelectionLevel GetViewSelectionLevel();
2246 
2255  void SetViewSelectionLevel(HViewSelectionLevel level);
2256 
2265  void EnableTargetFrameRate(bool enable=true, int target=100, int threshold=10, int steps=5);
2266 
2271  float GetFramerate();
2272 
2274  FramerateMode GetFramerateMode();
2275 
2277  int GetFramerateCullingThreshold();
2278 
2283  int GetFramerateSteps();
2284 
2286  bool IsFramerateLodEnabled();
2287 
2301  void SetFramerateMode(FramerateMode mode, float framerate = 0.1f, int cullingthreshold = 150,
2302  bool enableLods = false, int steps = 20, int cutoff = 1);
2303 
2305  bool IsFrameRateEnabled();
2306 
2308  bool GetViewActive();
2309 
2311  void cleanupSimpList();
2312 
2316  void SetAnnotationResize(bool value);
2317 
2319  bool GetAnnotationResize() { return m_AnnotationCookie==0?false:true; }
2320 
2322  bool GetFirstUpdate() { return m_bFirstUpdate; }
2323 
2325  void SetDisplayHandlesOnDblClk(bool dh) { m_bDisplayHandlesOnDblClk = dh; }
2326 
2328  bool HasInitialView() { return m_has_initial_view; }
2329 
2331  void HasInitialView(bool does_it) { m_has_initial_view=does_it; }
2332 
2334  void ExhaustiveUpdate();
2335 
2337  bool GetUpdateNotFinished() { return m_bUpdateNotFinished; }
2338 
2340  void SetUpdateNotFinished(bool NotFinished) { m_bUpdateNotFinished = NotFinished; }
2341 
2342  /* This method sets the mousewheel sensitivity which is used to control the apparent sensitivity of the mousewheel for MVO operators.
2343  \param sensitivity value is strictly positive float. */
2344  void SetMouseWheelSensitivity(float sensitivity) {
2345  if (sensitivity > 0)
2346  m_MouseWheelSensitivity = sensitivity;
2347  }
2348  /* Use this in an operator to modify the return value of HEventInfo::GetMouseWheelDelta()
2349  \return value of the operator mousewheel sensitivity, a strictly positive value. */
2350  float GetMouseWheelSensitivity() { return m_MouseWheelSensitivity; }
2351 
2353  void SetSplatRendering(bool onoff);
2354 
2356  bool GetSplatRendering() { return m_bSplatRendering; };
2357 
2359  void SetSplatSize(int splat_size);
2360 
2362  int GetSplatSize() { return m_SplatSize; };
2363 
2365  void SetSplatSymbol(SplatSymbol symbol);
2366 
2368  SplatSymbol GetSplatSymbol() {return m_SplatSymbol;};
2369 
2370 
2374  void UpdateFakeHLRColor(HPoint paper_color);
2375 
2377  void SetHardwareAntialiasing(int antialiasinglevel) { m_HardwareAntialiasing = antialiasinglevel; }
2378 
2380  int GetHardwareAntialiasing() { return m_HardwareAntialiasing; }
2381 
2385  static void StaticForceUpdateRequest(void * view_pointer);
2386 
2387  /*
2388  This method can be used to visualize the internal bounding stored on segments
2389  and some types of geometry. The bounding is drawn outside of the model so it does not
2390  interfere with static trees. It is semi-transparent with a color that indicates the
2391  bounding density: blue is very dense, red is sparse, green is somewhere in between.
2392  \param draw_something If this value is false, any existing bounding geometry will simply
2393  be discarded. If it is true, a new bounding geometry will also be generated.
2394  \param key The key of the segment or geometry whose bounding should be visualized.
2395  \param incl_count The number of keys in the incl_path array.
2396  \param incl_path This array of keys should be structured for a PShow. That is, the leaf
2397  as the first entry followed by a series of include keys mapping a path to the view.
2398  */
2399  void VisualizeBounding(bool draw_something, HC_KEY key=INVALID_KEY, int incl_count=0, HC_KEY * incl_path=0);
2400 
2401 
2402  /*
2403  Retrieves the color set by an earlier call to SetFakeHLRColor.
2404  \return the color as an rgb triplet with values from 0.0 to 1.0.
2405  */
2406  HPoint GetFakeHLRColor();
2407 
2408  /*
2409  Sets the color to be used in fake hidden-line render mode.
2410  \param color An rgb triplet with values from 0.0 to 1.0.
2411  */
2412  void SetFakeHLRColor(HPoint color);
2413 
2414  /*
2415  Orients the camera to point at selected geometry and sets depth-of-field to keep it in focus.
2416  \param onoff passing true will focus on the selected geometry, passing false will remove an earlier depth-of-field setting.
2417  */
2418  void FocusOnSelection(bool onoff = true);
2419 
2420  /*
2421  \return true if the view is currently focused on a selection via a previous call to FocusOnSelection(), false otherwise.
2422  */
2423  bool GetFocusOnSelection() { return m_FocusedOnSelection; }
2424 
2426  HTouchManager *GetTouchManager() { return m_TouchManager; }
2427 
2428 protected:
2433  int m_CPMode;
2444  bool m_bDisplayHandlesOnDblClk;
2445  bool m_has_initial_view;
2446 
2449  int m_HardwareAntialiasing;
2457  HPoint m_SceneBoundingMin;
2458  HPoint m_SceneBoundingMax;
2459  bool m_bSceneBoundingSet;
2460  bool m_bFastFitWorld;
2461  bool m_bDetailedFitWorld;
2467  bool m_bNavCube;
2476  HC_KEY m_ViewKey;
2478  HC_KEY m_SceneKey;
2497 
2498 
2499  HC_KEY m_InfoTextKey;
2500 
2503  HC_KEY m_LightsKey;
2504  HC_KEY m_SceneLight[MaxLights];
2516  void (* m_pfEventChecker)(HIC_Rendition const *nr);
2517  bool (* m_pfKeyState)(unsigned int, int &);
2531  float m_IdleTime;
2543  unsigned long m_AnnotationCookie;
2544  unsigned long m_AxisResizeCookie;
2545  FramerateMode m_FramerateMode;
2546  bool m_bSplatRendering;
2547  int m_SplatSize;
2548  SplatSymbol m_SplatSymbol;
2549  bool m_FocusedOnSelection;
2550 
2557  void ComputeShadowParams(HPlane& shadow_plane, HPoint& light_pos);
2558 
2564  void AdjustShadowPlane(HPlane& shadow_plane, HPoint const & light_pos);
2565 
2571  void SetShadowParams(const HPlane& shadow_plane, const HPoint& light_pos,
2572  const HPoint* color = 0, const char * filter = 0);
2573 
2580  virtual void SetShadowParams(HShadow* shadowObj);
2581 
2584  void RefreshViewSize();
2585 
2591  void QueryDeviceCapabilities();
2592 
2601  virtual void UpdateInternal(bool antialias = false, bool force_update = false);
2602 
2603 
2608  virtual void SetupLights();
2609 
2610 private:
2611  float m_LastRecordTime;
2613  char * m_sDriverPath; // fully rooted pathname of driver instance
2614  char * m_sDriverType; // driver type; e.g. msw, opengl, x11
2615  char * m_sAlias;
2616  void * m_pWindowHandle;
2617  void * m_pColormap;
2618  void * m_pClipOverride;
2619  void * m_pWindowHandle2;
2620  struct vlist_s *m_SignalRequestsList;
2621  HBaseViewEmitMessageFunction emit_message_function;
2622  void * emit_message_function_user_data;
2623  HTClient * m_pUpdateTimerClient;
2624  bool m_bPrevBackplaneCullMode; // this caches backplane cull mode (which is switched off when capping planes are turned off with cutting planes on )
2625  bool m_bHasObjects;
2626  float m_fZoomLimit;
2627  int m_SuppressUpdate;
2628  int m_SuppressUpdateTick;
2629  bool m_bDynamicHighlighting;
2630  int m_XSize;
2631  int m_YSize;
2632  int m_XSize_override;
2633  int m_YSize_override;
2634  float m_LastMouseWheelTime;
2635  float m_MouseWheelSensitivity;
2636  bool m_KeyMap[256];
2637  int m_KeyFlags;
2638  bool m_bOwnDriver;
2639  bool m_bUpdateNotFinished;
2640  int m_NotFinishedCounter;
2641  HPoint m_FakeHLRColor;
2642  HConstFRSimpType **SimpList;
2643  int simpListLength;
2644  int m_OldCullingThreshold;
2645  float *m_pTempClipArray;
2646  ViewUpdateMode m_OldViewUpdateMode;
2647  bool m_UseExplicitShadowLight;
2648  HPoint m_ExplicitShadowLightDirection;
2649  int m_LightCount;
2650 
2651  //no default constructor
2652  HBaseView() {;};
2653 
2654  //obsolete
2655  HBaseView(HBaseModel *model, char const * alias, char const * driver_type,char const * instance_name, long window_handle, long colormap) {
2656  UNREFERENCED(model);
2657  UNREFERENCED(alias);
2658  UNREFERENCED(driver_type);
2659  UNREFERENCED(instance_name);
2660  UNREFERENCED(window_handle);
2661  UNREFERENCED(colormap);
2662  }
2663 
2664  //obsolete
2665  void RebindView(HBaseModel *model, char const * alias, char const * driver_type,char const * instance_name, long window_handle, long colormap) {
2666  UNREFERENCED(model);
2667  UNREFERENCED(alias);
2668  UNREFERENCED(driver_type);
2669  UNREFERENCED(instance_name);
2670  UNREFERENCED(window_handle);
2671  UNREFERENCED(colormap);
2672  }
2673 
2674 };
2675 
2676 
2677 #ifdef H_PACK_8
2678 #pragma pack(pop)
2679 #endif
2680 
2681 #endif
self-explanatory
Definition: HBaseView.h:99
bool GetFirstUpdate()
Definition: HBaseView.h:2322
HBaseOperator * m_pOperator
Definition: HBaseView.h:2507
bool GetAllowInteractiveCutGeometry()
Definition: HBaseView.h:2002
void SetKeyStateCallback(bool(*KeyState)(unsigned int, int &))
Definition: HBaseView.h:772
HUndoManager * m_pUndoManager
Definition: HBaseView.h:2521
SplatSymbol
Definition: HBaseView.h:282
no handedness; only applies to polygon-handedness
Definition: HBaseView.h:176
bool m_bUpdateRequested
Definition: HBaseView.h:2519
void ClearUpdateRequest()
Definition: HBaseView.h:1632
bool m_bBeginShellSelection
Definition: HBaseView.h:2443
bool GetShadowRegenerationMode()
Definition: HBaseView.h:1874
The HConstantFrameRate class provides support for maintaining a constant framerate when rendering...
Definition: HConstantFrameRate.h:494
void SetConstructionKey(HC_KEY construct_key)
Definition: HBaseView.h:978
self-explanatory
Definition: HBaseView.h:101
HC_KEY GetOverwriteKey()
Definition: HBaseView.h:940
same as HReanderShaded but with lines visible
Definition: HBaseView.h:79
bool GetSpritingMode()
Definition: HBaseView.h:901
bool GetCPFaceVisibility()
Definition: HBaseView.h:728
float m_SmoothTransitionDuration
Definition: HBaseView.h:2469
FramerateMode
Definition: HBaseView.h:147
MultiThreadingType
Definition: HBaseView.h:193
void InvalidateSceneBounding()
Definition: HBaseView.h:1541
void SetCuttingPlaneGeomKey(HC_KEY cuttingplanegeom_key)
Definition: HBaseView.h:999
HC_KEY m_ViewKey
Definition: HBaseView.h:2476
HShadowRenderingMode
Definition: HBaseView.h:241
ViewMode GetViewMode()
Definition: HBaseView.h:714
bool m_bCPFaceVisibility
Definition: HBaseView.h:2432
opengl p-buffer shadow generation
Definition: HBaseView.h:244
bool m_bAllowInteractiveShadows
Definition: HBaseView.h:2534
HUtilityAntialiasing * GetAntialiasing()
Definition: HBaseView.h:479
simulate hidden line (regular hardware z-buffer, with faces set to window background color) ...
Definition: HBaseView.h:68
HBaseModel * m_pModel
Definition: HBaseView.h:2475
ViewUpdateMode
Definition: HBaseView.h:232
bool m_bShadowRegeneration
Definition: HBaseView.h:2527
bool IsLightFollowCamera()
Definition: HBaseView.h:1241
opengl software shadow generation
Definition: HBaseView.h:245
void SetViewKey(HC_KEY view_key)
Definition: HBaseView.h:924
negative X, positive Y, positive Z
Definition: HBaseView.h:106
const char * GetDriverPath()
Definition: HBaseView.h:687
HBaseOperator * GetOperator()
Definition: HBaseView.h:1199
HUtilityAntialiasing * m_pAntialiasing
Definition: HBaseView.h:2463
void SetSmoothTransitionDuration(float duration)
Definition: HBaseView.h:1235
Definition: HMarkupManager.h:28
void SetMarkupManager(HMarkupManager *markup)
Definition: HBaseView.h:490
edges and non-lit faces
Definition: HBaseView.h:64
HC_KEY GetViewKey()
Definition: HBaseView.h:922
negative X, positive Y, positive Z
Definition: HBaseView.h:108
HC_KEY m_FakeHLRStyle
Definition: HBaseView.h:2429
ViewUpdateMode GetViewUpdateMode()
Definition: HBaseView.h:1688
void HasInitialView(bool does_it)
Definition: HBaseView.h:2331
self-explanatory
Definition: HBaseView.h:135
unknown mode
Definition: HBaseView.h:161
HC_KEY GetDefaultLightKey(int which=0)
Definition: HBaseView.h:1096
void SetCurrentOperator(HBaseOperator *NewOperator)
Definition: HBaseView.h:1194
bool m_bMouseMove
Definition: HBaseView.h:2525
bool GetUpdateNotFinished()
Definition: HBaseView.h:2337
fake hidden line
Definition: HBaseView.h:86
No display lists.
Definition: HBaseView.h:185
virtual void SetCuttingPlaneRegenerationMode(bool onoff)
Definition: HBaseView.h:1869
The HObjectManager class keeps track of generic MVO objects.
Definition: HEventManager.h:137
bool(* HSignalNotifyFunction)(int signal, void *signal_data, void *user_data)
Definition: HBaseView.h:54
int GetXSize()
Definition: HBaseView.h:2239
self-explanatory
Definition: HBaseView.h:96
HConstantFrameRate * m_pConstantFrameRate
Definition: HBaseView.h:2511
DisplayListType m_DisplayListType
Definition: HBaseView.h:2452
bool m_bCuttingPlaneRegeneration
Definition: HBaseView.h:2529
bool m_bFirstUpdate
Definition: HBaseView.h:2532
bool GetSmoothTransition()
Definition: HBaseView.h:1225
void SetZoomLimit(float zoomLimit)
Definition: HBaseView.h:959
void UpdateAxisTriad()
Definition: HBaseView.h:1057
HC_KEY m_CuttingPlanesKey
Definition: HBaseView.h:2488
self-explanatory
Definition: HBaseView.h:150
phong shading
Definition: HBaseView.h:72
gouraud (smooth) shading with edges turned on
Definition: HBaseView.h:71
void SetLightsKey(HC_KEY lights_key)
Definition: HBaseView.h:951
bool m_bAxisTriadTransparencyAllowed
Definition: HBaseView.h:2437
bool GetForceFastHiddenLine()
Definition: HBaseView.h:2062
virtual void SetShadowRegenerationToggle()
Definition: HBaseView.h:1859
int GetSplatSize()
Definition: HBaseView.h:2362
quick-moved geometry was last drawn as overlay, meaning that colors are correct, but that the quick-m...
Definition: HBaseView.h:260
This tells the MVO framework to implicitly perform continuous updates by polling for posted update ev...
Definition: HBaseView.h:235
gouraud (smooth) shading
Definition: HBaseView.h:70
HInputHandler an abstract base class for model and image input.
Definition: HIOManager.h:671
HSelectionSet * m_pHighlight
Definition: HBaseView.h:2510
The HCamera class is the data type of a HOOPS Camera Attribute.
Definition: HUtility.h:540
bool GetDetailedFitWorld()
Definition: HBaseView.h:2221
void SetEmitMessageFunction(HBaseViewEmitMessageFunction new_emit_message_function, void *user_data=0)
Definition: HBaseView.h:1396
HImCuttingGeometry * m_pHImCuttingGeometry
Definition: HBaseView.h:2462
bool GetTransparentSelectionBoxMode()
Definition: HBaseView.h:1100
The represented size of an object doesn&#39;t depend on how close or far it is—this can be handy in arch...
Definition: HBaseView.h:163
bool m_bAllowInteractiveCutGeometry
Definition: HBaseView.h:2535
virtual bool GetHasObjects()
Definition: HBaseView.h:1948
bool m_bLButtonDown
Definition: HBaseView.h:2524
void SetUpdateInterrupted(int val)
Definition: HBaseView.h:1023
clamps to LOD1
Definition: HBaseView.h:80
void SetAllowInteractiveCutGeometry(bool onoff)
Definition: HBaseView.h:2008
HSelectionSet * GetHighlightSelection()
Definition: HBaseView.h:2145
self-explanatory
Definition: HBaseView.h:174
bool GetCPLineVisibility()
Definition: HBaseView.h:725
float GetSmoothTransitionDuration()
Definition: HBaseView.h:1238
self-explanatory
Definition: HBaseView.h:175
HC_KEY m_IntersectPolylinesKey
Definition: HBaseView.h:2492
Definition: HImCuttingGeometry.h:119
This tells the MVO framework not to implicitly perform updates. They will be explicity made by calls ...
Definition: HBaseView.h:234
void SetIsoDefault(ViewMode vm)
Definition: HBaseView.h:2103
Fast hidden line.
Definition: HBaseView.h:206
HVector m_TopAxis
Definition: HBaseView.h:2473
const char * GetDriverType()
Definition: HBaseView.h:690
bool m_bCuttingPlanesVisibility
Definition: HBaseView.h:2435
bool GetTextAntialiasing()
Definition: HBaseView.h:2098
brep wireframe
Definition: HBaseView.h:84
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:110
wireframe, with shaded lines
Definition: HBaseView.h:76
bool m_bNavCube
Definition: HBaseView.h:2467
void SetBBoxGeometryKey(HC_KEY bbox_key)
Definition: HBaseView.h:983
HLRMode
Definition: HBaseView.h:203
bool m_bCPLineVisibility
Definition: HBaseView.h:2431
HandednessMode
Definition: HBaseView.h:172
virtual void SetShadowRegenerationMode(bool onoff)
Definition: HBaseView.h:1855
In a "stretched" view, an orthographic projection is made, and then the view is "stretched" to fit ex...
Definition: HBaseView.h:164
HObjectManager * m_pObjectManager
Definition: HBaseView.h:2522
The HSelectionSet class manages a list of selected items.
Definition: HSelectionSet.h:66
AxisMode m_bAxisMode
Definition: HBaseView.h:2465
HOutputHandler an abstract base class for model and image output.
Definition: HIOManager.h:1269
HSelectionHighlightMode
Definition: HGlobals.h:549
bool m_bTransparentSelectionBox
Definition: HBaseView.h:2541
Definition: HGlobals.h:312
Definition: HTManager.h:157
void SetFastFitWorld(bool fw)
Definition: HBaseView.h:2206
Analytic hidden line.
Definition: HBaseView.h:205
HEventManager * m_pEventManager
Definition: HBaseView.h:2520
HC_KEY m_ProgressBarKey
Definition: HBaseView.h:2496
HC_KEY m_OverwriteKey
Definition: HBaseView.h:2480
self-explanatory
Definition: HBaseView.h:97
HC_KEY GetIncludeLinkKey()
Definition: HBaseView.h:927
void SetSpritingMode(bool onoff)
Definition: HBaseView.h:908
HC_KEY m_WindowspaceKey
Definition: HBaseView.h:2484
virtual bool GetCameraChanged()
Definition: HBaseView.h:1882
void SetUpdateNotFinished(bool NotFinished)
Definition: HBaseView.h:2340
void(*)(HIC_Rendition const *nr) GetEventCheckerCallback()
Definition: HBaseView.h:778
float m_IdleTime
Definition: HBaseView.h:2531
class HPoint HVector
The HVector class is the data type of a three-dimensional vector.
Definition: HGlobals.h:328
int m_CPMode
Definition: HBaseView.h:2433
star bloom
Definition: HBaseView.h:252
unknown view mode
Definition: HBaseView.h:124
virtual void SetInvertMouseWheelZoom(bool val=true)
Definition: HBaseView.h:1887
Geometry-level display lists.
Definition: HBaseView.h:186
bool GetDynamicHighlighting()
Definition: HBaseView.h:1721
HSelectionHighlightMode m_HighlightMode
Definition: HBaseView.h:2451
bool GetSceneBoundingSet()
Definition: HBaseView.h:1532
ViewUpdateMode m_ViewUpdateMode
Definition: HBaseView.h:2518
class HDebugZBuffer * m_pDebugZBuffer
Definition: HBaseView.h:2523
void SetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2153
bool GetFastFitWorld()
Definition: HBaseView.h:2216
same as HViewIsoxYz
Definition: HBaseView.h:115
bool EmittingMessages()
Definition: HBaseView.h:1406
unknown mode
Definition: HBaseView.h:133
void SetSuppressUpdateTick(bool suppress)
Definition: HBaseView.h:1656
HCutGeometryVisibility
Definition: HGlobals.h:102
HEventInfo * m_pEvent
Definition: HBaseView.h:2508
bool m_bTextAntialiasing
Definition: HBaseView.h:2442
currently does nothing
Definition: HBaseView.h:67
bool GetAnnotationResize()
Definition: HBaseView.h:2319
void SetHardwareAntialiasing(int antialiasinglevel)
Definition: HBaseView.h:2377
Objects which are close to the eye appear large, and objects which are far away appear small...
Definition: HBaseView.h:162
Like AxisOn, but without the planes.
Definition: HBaseView.h:215
The HEventManager class dispatches arbitrary events.
Definition: HEventManager.h:44
vertices only (shaded)
Definition: HBaseView.h:78
The driver returns geometry objects from selections.
Definition: HBaseView.h:273
void SetProgressBarKey(HC_KEY key)
Definition: HBaseView.h:1014
bool GetCuttingPlaneRegenerationMode()
Definition: HBaseView.h:1863
void SetDisplayHandlesOnDblClk(bool dh)
Definition: HBaseView.h:2325
bool m_bSmoothTransition
Definition: HBaseView.h:2468
virtual HSelectionHighlightMode GetHighlightMode()
Definition: HBaseView.h:2179
the driver is unable to quick move at all
Definition: HBaseView.h:258
HBloomShape
Definition: HBaseView.h:249
HSelectionSet * GetSelection()
Definition: HBaseView.h:696
same as HReanderShaded but with lines visible
Definition: HBaseView.h:74
HC_KEY m_BBoxGeometryKey
Definition: HBaseView.h:2482
bool m_bLineAntialiasing
Definition: HBaseView.h:2441
AxisMode GetAxisMode()
Definition: HBaseView.h:1043
The HDB class serves as a wrapper/utility class to manage an instance of the HOOPS/3dGS scene-graph...
Definition: HDB.h:32
HRenderMode
Definition: HBaseView.h:61
self-explanatory
Definition: HBaseView.h:134
bool GetHideOverlappedText()
Definition: HBaseView.h:1212
ViewMode
Definition: HBaseView.h:93
HRenderMode m_RenderMode
Definition: HBaseView.h:2505
HSelectionSet * m_pSelection
Definition: HBaseView.h:2509
LightingIntMode
Definition: HBaseView.h:131
self-explanatory
Definition: HBaseView.h:151
void RequestUpdate()
Definition: HBaseView.h:1628
void SetNavCube(bool onoff)
Definition: HBaseView.h:1222
HC_KEY GetAxisTriadKey()
Definition: HBaseView.h:1209
bool(*)(unsigned int, int &) GetKeyStateCallback()
Definition: HBaseView.h:775
The HBaseModel class is used to store and manage model information.
Definition: HBaseModel.h:47
bool m_bLightFollowsCamera
Definition: HBaseView.h:2470
The HBaseOperator class serves as a base for classes which handle user input and operate on the scene...
Definition: HBaseOperator.h:60
quick-moved geometry was last drawn as spriting, color-correct and depth-mixed with the rest of the s...
Definition: HBaseView.h:261
hidden line-ish removal
Definition: HBaseView.h:83
wireframe + silhouette
Definition: HBaseView.h:75
bool GetRecordMode()
Definition: HBaseView.h:2047
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:121
The HUtilityAntialiasing class contains a set of function for software based image antialiasing...
Definition: HUtilityAntialiasing.h:30
void SetForceFastHiddenLine(bool force)
Definition: HBaseView.h:2059
negative X, positive Y, positive Z
Definition: HBaseView.h:105
This class has been deprecated.
Definition: HUtilityShadow.h:93
HQuickMovesMethod
Definition: HBaseView.h:256
HBaseOperator * GetCurrentOperator()
Definition: HBaseView.h:1205
float GetMaximumUpdateTime()
Definition: HBaseView.h:2174
bool GetAllowInteractiveShadows()
Definition: HBaseView.h:1977
DisplayListType
Definition: HBaseView.h:183
Definition: HIOManager.h:908
HC_KEY m_AxisTriadKey
Definition: HBaseView.h:2494
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:332
HRenderMode GetRenderMode()
Definition: HBaseView.h:711
self-explanatory
Definition: HBaseView.h:98
void * GetEmitMessageFunctionUserData()
Definition: HBaseView.h:1416
virtual HBaseModel * GetModel()
Definition: HBaseView.h:704
none view mode
Definition: HBaseView.h:95
void SetDetailedFitWorld(bool fw)
Definition: HBaseView.h:2211
bool HasInitialView()
Definition: HBaseView.h:2328
HAnimateMode
Definition: HBaseView.h:1511
HC_KEY m_FakeHLRSource
Definition: HBaseView.h:2430
bool m_bCuttingPlanesExist
Definition: HBaseView.h:2434
virtual float GetDefaultSelectionProximity()
Definition: HBaseView.h:1969
void SetCuttingPlanesKey(HC_KEY cuttingplanes_key)
Definition: HBaseView.h:991
bool m_bSpritingAllowed
Definition: HBaseView.h:2436
HBaseOperator * m_pHandleOperator
Definition: HBaseView.h:2533
bool m_bGeometryChanged
Definition: HBaseView.h:2456
bool GetSuppressUpdateTick()
Definition: HBaseView.h:1666
Segment-level display lists.
Definition: HBaseView.h:187
HMarkupManager * m_pMarkupManager
Definition: HBaseView.h:2464
edges/lines only
Definition: HBaseView.h:63
Square.
Definition: HBaseView.h:285
HVector m_FrontAxis
Definition: HBaseView.h:2472
bool m_bInvertMouseWheelZoom
Definition: HBaseView.h:2542
ViewMode m_ViewMode
Definition: HBaseView.h:2506
image driver shadow generation
Definition: HBaseView.h:243
int m_AxisWindowSize
Definition: HBaseView.h:2438
HSharedKey * GetSharedKey()
Definition: HBaseView.h:1501
bool GetCuttingPlanesVisibility()
Definition: HBaseView.h:753
void * GetWindowHandle()
Definition: HBaseView.h:2024
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:103
void SetAllowInteractiveShadows(bool onoff)
Definition: HBaseView.h:1986
Definition: HConstantFrameRate.h:79
HCamera m_InitialCamera
Definition: HBaseView.h:2538
int m_InUpdateInternal
Definition: HBaseView.h:2515
ViewMode m_IsoDefault
Definition: HBaseView.h:2450
bool GetSuppressUpdate()
Definition: HBaseView.h:1649
unknown mode
Definition: HBaseView.h:149
The HEventInfo class stores and manages event information.
Definition: HEventInfo.h:207
bool m_bForceFastHiddenLine
Definition: HBaseView.h:2440
indicates shaded rendering; underlying code will use phong if hardware accel is avialable, otherwise gouraud will be used
Definition: HBaseView.h:73
virtual void ClearGeometryChanged()
Definition: HBaseView.h:1561
void SetSelection(HSelectionSet *selection)
Definition: HBaseView.h:701
float m_DefaultSelectionProximity
Definition: HBaseView.h:2536
UpDirection
Definition: HBaseView.h:221
Gooch Shaded.
Definition: HBaseView.h:85
HShadowMode
Definition: HGlobals.h:92
HC_KEY m_SceneKey
Definition: HBaseView.h:2478
void SetMaximumUpdateTime(float mut)
Definition: HBaseView.h:2169
HSharedKey * m_pSharedKey
Definition: HBaseView.h:2513
HShadowMode m_ShadowMode
Definition: HBaseView.h:2512
negative X, positive Y, positive Z
Definition: HBaseView.h:107
This tells the MVO framework to implicitly perform continuous culled, timed updates drawing culled it...
Definition: HBaseView.h:236
hidden line-ish removal
Definition: HBaseView.h:82
HBaseViewEmitMessageFunction GetEmitMessageFunction()
Definition: HBaseView.h:1411
Definition: HUndoManager.h:168
quick-moved geometry was last drawn as XOR (exclusive OR), meaning that colors are often inverted or ...
Definition: HBaseView.h:259
bool GetUpdateRequested()
Definition: HBaseView.h:1624
ProjMode
Definition: HBaseView.h:159
void SetSuppressUpdate(bool suppress)
Definition: HBaseView.h:1639
self-explanatory
Definition: HBaseView.h:217
HOpCameraManipulate * m_pManipulateOperator
Definition: HBaseView.h:2526
bool m_bCameraChanged
Definition: HBaseView.h:2530
self-explanatory
Definition: HBaseView.h:100
bool GetSplatRendering()
Definition: HBaseView.h:2356
bool m_bInitialCameraSet
Definition: HBaseView.h:2539
virtual bool GetInvertMouseWheelZoom()
Definition: HBaseView.h:1890
void SetIntersectPolylinesKey(HC_KEY intersectpolylines_key)
Definition: HBaseView.h:1006
void(* HBaseViewEmitMessageFunction)(const char *message, unsigned int length, void *user_data)
Definition: HBaseView.h:296
int m_UpdateInterrupted
Definition: HBaseView.h:2514
virtual void SetCameraChanged(bool val=true)
Definition: HBaseView.h:1879
The HTouchManager class stores and manages touch input.
Definition: HEventInfo.h:135
same as HViewIsoXYZ and HViewISO
Definition: HBaseView.h:112
clamps to LOD2
Definition: HBaseView.h:81
HC_KEY m_LightsKey
Definition: HBaseView.h:2503
int GetYSize()
Definition: HBaseView.h:2242
Definition: HIOManager.h:246
AxisMode
Definition: HBaseView.h:212
The HOpCameraManipulate class combines the Orbit, Pan and Zoom Operators.
Definition: HOpCameraManipulate.h:42
bool m_bHideOverlappedText
Definition: HBaseView.h:2466
Like AxisOn, but centered differently.
Definition: HBaseView.h:216
bool m_bShadowRegenerationToggle
Definition: HBaseView.h:2528
HC_KEY m_lIncludeLinkKey
Definition: HBaseView.h:2502
shell/mesh silhouette edges
Definition: HBaseView.h:65
self-explanatory
Definition: HBaseView.h:214
void SetDebugZBuffer(HDebugZBuffer *dzb)
Definition: HBaseView.h:1040
hidden line removal
Definition: HBaseView.h:66
ViewMode GetIsoDefault()
Definition: HBaseView.h:2106
The HPlane class is the data type of a plane.
Definition: HGlobals.h:335
void SetConstantFrameRateObject(HConstantFrameRate *cf)
Definition: HBaseView.h:766
int GetHardwareAntialiasing()
Definition: HBaseView.h:2380
SplatSymbol GetSplatSymbol()
Definition: HBaseView.h:2368
bool GetInitialCameraSet()
Definition: HBaseView.h:2029
negative X, positive Y, positive Z
Definition: HBaseView.h:104
void SetIncludeLinkKey(HC_KEY link)
Definition: HBaseView.h:929
The driver returns segment trees from selections.
Definition: HBaseView.h:275
radial bloom
Definition: HBaseView.h:251
vertices only
Definition: HBaseView.h:77
void SetWindowspaceKey(HC_KEY winspace_key)
Definition: HBaseView.h:970
Round.
Definition: HBaseView.h:284
Fake hidden line.
Definition: HBaseView.h:207
Definition: HDebugZBuffer.h:29
HTouchManager * GetTouchManager()
Definition: HBaseView.h:2426
HTouchManager * m_TouchManager
Definition: HBaseView.h:2447
The driver returns segment objects from selections.
Definition: HBaseView.h:274
HC_KEY GetBBoxGeometryKey()
Definition: HBaseView.h:981
HC_KEY m_CuttingPlaneGeomKey
Definition: HBaseView.h:2490
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:109
int m_WindowColorPercentage
Definition: HBaseView.h:2471
flat shading
Definition: HBaseView.h:69
bool HaveMarkupManager()
Definition: HBaseView.h:485
float m_MaximumUpdateTime
Definition: HBaseView.h:2537
HC_KEY m_ConstructionKey
Definition: HBaseView.h:2486
bool m_bRecordCamera
Definition: HBaseView.h:2540
same as HViewIsoXYz
Definition: HBaseView.h:114
HShadowMode GetShadowMode()
Definition: HBaseView.h:1073
self-explanatory
Definition: HBaseView.h:102
virtual bool GeometryChanged()
Definition: HBaseView.h:1564
HC_KEY GetProgressBarKey()
Definition: HBaseView.h:1009
same as HViewIsoxYZ
Definition: HBaseView.h:113
bool GetLineAntialiasing()
Definition: HBaseView.h:2078
int GetLightCount()
Definition: HBaseView.h:1258
virtual HBaseOperator * GetHandleOperator()
Definition: HBaseView.h:1964
Definition: HSharedKey.h:80
virtual void SetHandleOperator(HBaseOperator *op)
Definition: HBaseView.h:1959
void GetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2158
HConstantFrameRate * GetConstantFrameRateObject()
Definition: HBaseView.h:761
HViewSelectionLevel
Definition: HBaseView.h:271
void SetSceneKey(HC_KEY scene_key)
Definition: HBaseView.h:937
void SetTransparentSelectionBoxMode(bool mode)
Definition: HBaseView.h:1105