Introduction

Getting Started

Programming Guides

API Reference

Additional Resources

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 
93 enum ViewMode
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 };
159 enum ProjMode
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 
212 enum AxisMode
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 
806  virtual void SetHandedness(HandednessMode mode, bool emit_message=false);
807 
812  virtual void SetHandednessFromMessage(const char *in_data, unsigned int data_length);
813 
822  virtual bool SetHandednessFromModel(bool remove_handedness_from_model = true, bool emit_message = false);
823 
830  virtual void SetFontSize(const char *font_size, bool emit_message=false);
831 
836  virtual void SetFontSizeFromMessage(const char *in_data, unsigned int data_length);
837 
839  bool GetBackplaneCulling();
840 
847  void SetBackplaneCulling(bool cull);
848 
852  ProjMode GetProjMode();
853 
857  void SetProjMode(ProjMode mode);
858 
860  DisplayListType GetDisplayListType();
861 
865  void SetDisplayListType(DisplayListType type);
866 
868  bool GetDisplayListMode();
869 
873  void SetDisplayListMode(bool mode);
874 
876  HandednessMode GetPolygonHandednessMode();
877 
889  void SetPolygonHandednessMode(HandednessMode);
890 
893  bool GetLodMode();
894 
901  void SetLodMode(bool onoff);
902 
904  bool GetSpritingMode() { return m_bSpritingAllowed; }
905 
911  void SetSpritingMode(bool onoff) { m_bSpritingAllowed = onoff; }
912 
916  int GetLodThreshold();
917 
922  void SetLodThreshold(int val);
923 
925  HC_KEY GetViewKey() { return m_ViewKey; }
927  void SetViewKey( HC_KEY view_key ) { m_ViewKey = view_key; }
928 
930  HC_KEY GetIncludeLinkKey() { return m_lIncludeLinkKey; }
932  void SetIncludeLinkKey( HC_KEY link ) { m_lIncludeLinkKey = link; }
933 
935  HC_KEY GetSceneKey() { return m_SceneKey; }
936 
940  void SetSceneKey( HC_KEY scene_key ) { m_SceneKey = scene_key; }
941 
943  HC_KEY GetOverwriteKey() { return m_OverwriteKey; }
944 
946  HC_KEY GetShadowMapSegmentKey();
947 
949  HC_KEY GetLightsKey() { return m_LightsKey; }
950 
954  void SetLightsKey( HC_KEY lights_key ) { m_LightsKey = lights_key; }
955 
957  float GetZoomLimit() { return m_fZoomLimit; }
958 
962  void SetZoomLimit( float zoomLimit ) { m_fZoomLimit = zoomLimit; }
963 
965  virtual void SetZoomLimit();
966 
968  HC_KEY GetWindowspaceKey() { return m_WindowspaceKey; }
969 
973  void SetWindowspaceKey( HC_KEY winspace_key ) { m_WindowspaceKey = winspace_key; }
974 
976  HC_KEY GetConstructionKey() { return m_ConstructionKey; }
977 
981  void SetConstructionKey( HC_KEY construct_key ) { m_ConstructionKey = construct_key; }
982 
984  HC_KEY GetBBoxGeometryKey() { return m_BBoxGeometryKey; }
986  void SetBBoxGeometryKey( HC_KEY bbox_key ) { m_BBoxGeometryKey = bbox_key; }
987 
989  HC_KEY GetCuttingPlanesKey() { return m_CuttingPlanesKey; }
990 
994  void SetCuttingPlanesKey( HC_KEY cuttingplanes_key ) { m_CuttingPlanesKey = cuttingplanes_key; }
995 
997  HC_KEY GetCuttingPlaneGeomKey() { return m_CuttingPlaneGeomKey; }
998 
1002  void SetCuttingPlaneGeomKey( HC_KEY cuttingplanegeom_key ) { m_CuttingPlaneGeomKey = cuttingplanegeom_key; }
1004  HC_KEY GetIntersectPolylinesKey() { return m_IntersectPolylinesKey; }
1005 
1009  void SetIntersectPolylinesKey( HC_KEY intersectpolylines_key ) { m_IntersectPolylinesKey = intersectpolylines_key; }
1010 
1012  HC_KEY GetProgressBarKey() { return m_ProgressBarKey; }
1017  void SetProgressBarKey( HC_KEY key ) { m_ProgressBarKey = key; }
1018 
1019 
1021  int GetUpdateInterrupted() { return m_UpdateInterrupted; }
1022 
1026  void SetUpdateInterrupted( int val ) { m_UpdateInterrupted = val; }
1027 
1029  float GetIdleTime();
1030 
1032  void ResetIdleTime();
1033 
1036  HQuickMovesMethod GetQuickMovesMethod () const;
1037 
1039  class HDebugZBuffer *GetDebugZBuffer() { return m_pDebugZBuffer; }
1040 
1043  void SetDebugZBuffer(HDebugZBuffer *dzb) { m_pDebugZBuffer = dzb; };
1044 
1046  AxisMode GetAxisMode() {return m_bAxisMode; }
1047 
1052  virtual void SetAxisMode(AxisMode mode);
1053 
1057  virtual void OnSetAxisMode( AxisMode mode );
1058 
1060  void UpdateAxisTriad() { SetAxisMode(GetAxisMode()); }
1061 
1067  virtual void AdjustAxisWindow( int axis_window_pixels_in = -1, HIntRectangle *rect_in=0 );
1068 
1070  static void AdjustAxisWindowCallback(int signal, void * signal_data, void * user_data);
1071 
1073  static void AdjustWindowCallback(int signal, void * signal_data, void * user_data);
1074 
1076  HShadowMode GetShadowMode() {return m_ShadowMode; }
1077 
1082  virtual void SetShadowMode (HShadowMode sm, bool saveMode = true);
1083 
1095  virtual void SetReflectionPlane(bool state, float opacity=0.5f, bool fading=true, bool attenuate=false,
1096  float hither=0.0f, float yon=1.0f, bool blur=false, int blur_level=1);
1097 
1099  HC_KEY GetDefaultLightKey(int which = 0) { return m_SceneLight[which]; }
1100 
1101 
1103  bool GetTransparentSelectionBoxMode() {return m_bTransparentSelectionBox; }
1104 
1108  void SetTransparentSelectionBoxMode(bool mode) { m_bTransparentSelectionBox = mode; }
1109 
1115  virtual void DeleteSelectionList(bool emit_message=false);
1116 
1123  void RotateOnUpdate(const char *sname);
1124 
1132  virtual void SetWindowColor(HPoint rgb, bool emit_message=false);
1133 
1144  virtual void SetWindowColor(HPoint rgbtop, HPoint rgbbottom, bool emit_message=false);
1145 
1157  virtual void SetWindowColorRange(HPoint rgbtop, HPoint rgbbottom, int percentage, bool emit_message=false);
1158 
1159 
1167  virtual void SetWindowMaterial(const char * name, bool emit_message=false);
1168 
1174  virtual void SetWindowColorFromMessage(const char *in_data, unsigned int data_length);
1175 
1179  void GetWindowColor(HPoint &color_out);
1180 
1185  void GetWindowColor(HPoint &color_top, HPoint &color_bottom);
1186 
1192  void GetWindowColor(HPoint &color_top, HPoint &color_bottom, int &percentage);
1193 
1198  void GetWindowMaterial(char * out_material, char * out_pattern);
1199 
1203  void SetOperator(HBaseOperator *NewOperator);
1204 
1205 
1207  void SetCurrentOperator(HBaseOperator *NewOperator) { SetOperator(NewOperator); }
1208 
1212  HBaseOperator* GetOperator() { return m_pOperator; }
1213 
1218  HBaseOperator* GetCurrentOperator() { return m_pOperator; }
1219 
1220 
1222  HC_KEY GetAxisTriadKey() {return m_AxisTriadKey;}
1223 
1225  bool GetHideOverlappedText(){ return m_bHideOverlappedText;}
1226 
1230  void SetHideOverlappedText(bool hide);
1231 
1235  void SetNavCube(bool onoff) { m_bNavCube = onoff;}
1236 
1238  bool GetSmoothTransition() { return m_bSmoothTransition;}
1239 
1243  void SetSmoothTransition(bool onoff) { m_bSmoothTransition = onoff;}
1244 
1248  void SetSmoothTransitionDuration(float duration) { m_SmoothTransitionDuration = duration;}
1249 
1251  float GetSmoothTransitionDuration() { return m_SmoothTransitionDuration;}
1252 
1254  bool IsLightFollowCamera(){return m_bLightFollowsCamera;}
1255 
1259  void SetLightFollowsCamera(bool onoroff);
1260 
1261  static const int MaxLights = 6;
1262 
1266  void SetLightCount(int count);
1267 
1271  int GetLightCount() { return m_LightCount; }
1272 
1281  virtual void CameraPositionChanged(bool emit_message=false, bool smooth_camera_transition=false);
1282 
1283 
1287  virtual void PrepareForCameraChange();
1288 
1289 
1299  virtual void SetCamera(HPoint pos, HPoint tar, HPoint up, float fieldx, float fieldy, const char *proj);
1300 
1310  virtual void SetInitialCamera(HPoint pos, HPoint tar, HPoint up, float fieldx, float fieldy, char const * proj);
1311 
1312 
1322  virtual void GetCamera(HPoint *pos, HPoint *tar, HPoint *up, float &fieldx, float &fieldy, char *proj);
1323 
1328  virtual void SetCamera(HCamera camera);
1329 
1334  virtual void GetCamera(HCamera *camera);
1335 
1341  virtual void SetCameraFromMessage(const char *data, unsigned int data_length);
1342 
1350  virtual void InsertHSFData(const char *segment, const char *in_data, unsigned int data_length, bool emit_message=false);
1351 
1357  virtual void InsertHSFDataFromMessage(const char *in_data, unsigned int data_length);
1358 
1365  virtual void EmitHSFData(const char *segment, const char *in_data, unsigned int data_length);
1366 
1372  virtual void SetRenderMode (HRenderMode NewRenderMode, bool emit_message=false);
1373 
1379  virtual void SetRenderModeFromMessage(const char *in_data, unsigned int data_length);
1380 
1384  virtual void EmitFlushMessage();
1385 
1393  virtual void FlushFromMessage(const char *in_data, unsigned int data_length);
1394 
1395 
1401  virtual void Flush(bool emit_message=false);
1402 
1410  HBaseViewEmitMessageFunction new_emit_message_function,
1411  void * user_data=0) {
1412  emit_message_function=new_emit_message_function;
1413  emit_message_function_user_data=user_data;};
1414 
1419  bool EmittingMessages() {return emit_message_function != 0;};
1420 
1424  HBaseViewEmitMessageFunction GetEmitMessageFunction() {return emit_message_function;};
1425 
1429  void * GetEmitMessageFunctionUserData() {return emit_message_function_user_data;};
1430 
1436  virtual void EmitSelectMessage(HC_KEY key, bool isSelect);
1437 
1443  virtual void SelectFromMessage(const char *in_data, unsigned int data_length);
1444 
1448  virtual void EmitDeSelectAllMessage();
1449 
1450 
1454  virtual void EmitDeleteSelectionListMessage();
1455 
1456 
1460  virtual void DeleteSelectionListFromMessage();
1461 
1462 
1466  virtual void DeSelectAllFromMessage();
1467 
1468 
1473  virtual void EmitSetModellingMatrixMessage(HC_KEY key);
1474 
1475 
1480  virtual void EmitSetModellingMatrixMessage();
1481 
1489  virtual void EmitSegment(HC_KEY key, bool emit_contents_only = false);
1490 
1495  virtual void EmitDeleteByKeyMessage(HC_KEY key);
1496 
1502  virtual void DeleteByKeyFromMessage(const char *in_data, unsigned int data_length);
1503 
1509  virtual void SetModellingMatrixFromMessage(const char *in_data, unsigned int data_length);
1510 
1514  HSharedKey * GetSharedKey() {return m_pSharedKey;};
1515 
1516 
1520  virtual void StartSharedKey();
1521 
1522 
1525  HAnimateScene = 0x00000001
1526  };
1527 
1528 
1536  virtual void Animate (int animation_steps = 30, HAnimateMode animate_flags = HAnimateScene, int MaxRotation = 360);
1537 
1540  virtual void SetGeometryChanged();
1541 
1545  bool GetSceneBoundingSet() { return m_bSceneBoundingSet; }
1546 
1551  void SetSceneBounding(HPoint &min, HPoint &max);
1552 
1554  void InvalidateSceneBounding() { m_bSceneBoundingSet = false; }
1555 
1559  void SetFastMarkerDrawing(bool b_fast);
1560 
1564  bool GetFastMarkerDrawing();
1565 
1571  void SetDoubleBuffering(bool double_buffer);
1572 
1574  virtual void ClearGeometryChanged() {m_bGeometryChanged = false; };
1575 
1577  virtual bool GeometryChanged() {return m_bGeometryChanged;};
1578 
1584  unsigned long SetSignalNotify( int signal, HSignalNotifyFunction callback, void *user_data );
1585 
1588  void UnSetSignalNotify( unsigned long cookie );
1589 
1594  void SetColorInterpolation(bool onoff);
1595 
1601  void SetColorIndexInterpolation(bool onoff, bool isolines = false);
1602 
1608  bool GetColorIndexInterpolation(char * option = 0);
1609 
1618  bool GetFrameBufferEffectsOptions(char * options = 0, int *border = 0);
1619 
1625  void Notify(int signal, void * signal_data = 0);
1626 
1633  int UpdateEvent(bool antialias = false, bool forceUpdate = false);
1637  bool GetUpdateRequested() { return m_bUpdateRequested; }
1641  void RequestUpdate() { m_bUpdateRequested = true; }
1645  void ClearUpdateRequest() { m_bUpdateRequested = false; }
1646 
1652  void SetSuppressUpdate(bool suppress) {
1653  suppress?m_SuppressUpdate++:m_SuppressUpdate--;
1654  if (m_SuppressUpdate<0)
1655  m_SuppressUpdate = 0;
1656  }
1657 
1662  bool GetSuppressUpdate() { return m_SuppressUpdate > 0; }
1663 
1669  void SetSuppressUpdateTick(bool suppress) {
1670  suppress?m_SuppressUpdateTick++:m_SuppressUpdateTick--;
1671  if (m_SuppressUpdateTick<0)
1672  m_SuppressUpdateTick = 0;
1673  }
1674 
1679  bool GetSuppressUpdateTick() { return m_SuppressUpdateTick > 0; }
1680 
1696  void SetViewUpdateMode(ViewUpdateMode mode, float rate = 0.01f);
1697 
1701  ViewUpdateMode GetViewUpdateMode() { return m_ViewUpdateMode; }
1702 
1710  static bool UpdateTick(float request_time, float actual_time, void * user_data);
1711 
1719  static bool StreamProgressCallback(unsigned long so_far, unsigned long expected, void * user_data);
1720 
1722  void FlushProgressBar();
1723 
1725  HUndoManager *GetUndoManager();
1726 
1728  HEventManager *GetEventManager();
1729 
1731  HObjectManager *GetHObjectManager();
1732 
1734  bool GetDynamicHighlighting() { return m_bDynamicHighlighting; }
1735 
1739  void SetDynamicHighlighting(bool state);
1740 
1746  virtual int OnNoButtonDownAndMove(HEventInfo &hevent);
1747 
1752  virtual int OnLButtonDownAndMove(HEventInfo &hevent);
1753 
1759  virtual int OnLButtonDblClk(HEventInfo &hevent);
1760 
1765  virtual int OnRButtonDownAndMove(HEventInfo &hevent);
1770  virtual int OnMButtonDownAndMove(HEventInfo &hevent);
1775  virtual int OnLRButtonDownAndMove(HEventInfo &hevent);
1776 
1781  virtual int OnLButtonDown(HEventInfo &hevent);
1782 
1787  virtual int OnMouseMove(HEventInfo &hevent);
1788 
1794  virtual int OnLButtonUp(HEventInfo &hevent);
1795 
1796 #if 0
1797 
1801  virtual int OnMouseWheel(HEventInfo &hevent);
1802 #else
1803 
1807  virtual int OnMouseWheel(HEventInfo &hevent);
1808 
1811  virtual bool ComputeReasonableTarget(HPoint & new_tar, HPoint const & mouse_win, HPoint const & tar_orig);
1812 
1813  /* This method adjusts the old field to the new target so the picture on the screen won't change. */
1814  void ComputeNewField(float & width, float & height, HPoint const & new_tar,
1815  HCamera const & old_camera);
1816 #endif
1817 
1819  virtual int OnKeyDown(HEventInfo &hevent);
1820 
1822  virtual int OnKeyUp(HEventInfo &hevent);
1823 
1826  virtual void SetShadowColor(HPoint color);
1827 
1832  virtual void SetShadowLightDirection(bool explicit_light, HPoint const * direction = 0);
1833 
1838  virtual bool GetShadowLightDirection(HPoint * direction = 0);
1839 
1843  virtual void SetShadowIgnoresTransparency(bool ignore);
1844 
1848  virtual bool GetShadowIgnoresTransparency();
1849 
1852  virtual void DoDynamicHighlighting(HPoint mouse_pos);
1853 
1856  virtual void SetShadowResolution(int res);
1857 
1860  virtual void SetShadowBlurring(int blur);
1861 
1863  virtual void InternalUpdate();
1864 
1868  virtual void SetShadowRegenerationMode(bool onoff) { m_bShadowRegeneration = onoff; }
1869 
1872  virtual void SetShadowRegenerationToggle() { m_bShadowRegenerationToggle = true; m_bShadowRegeneration = false; }
1873 
1876  bool GetCuttingPlaneRegenerationMode() { return m_bCuttingPlaneRegeneration; }
1877 
1882  virtual void SetCuttingPlaneRegenerationMode(bool onoff) { m_bCuttingPlaneRegeneration = onoff; }
1883 
1887  bool GetShadowRegenerationMode() { return m_bShadowRegeneration; }
1888 
1892  virtual void SetCameraChanged( bool val=true ) { m_bCameraChanged = val; if(val) ResetIdleTime(); }
1893 
1895  virtual bool GetCameraChanged() { return m_bCameraChanged; }
1896 
1900  virtual void SetInvertMouseWheelZoom( bool val=true ) { m_bInvertMouseWheelZoom = val;}
1901 
1903  virtual bool GetInvertMouseWheelZoom() { return m_bInvertMouseWheelZoom; }
1904 
1905 
1909  virtual void SetAxisManipulateOperator(HOpCameraManipulate *op);
1910 
1915  virtual void SetVisibilitySelectionMode(bool onoff);
1916 
1918  virtual bool GetVisibilitySelectionMode();
1919 
1922  virtual void SetRelatedSelectionLimit(int limit);
1923 
1925  virtual int GetRelatedSelectionLimit();
1926 
1931  virtual void SetDetailSelection(bool onoff);
1932 
1934  virtual bool GetDetailSelectionMode();
1935 
1939  virtual void SetRespectSelectionCulling(bool onoff);
1941  virtual bool GetRespectSelectionCulling();
1942 
1950  virtual void SmartFilterCircumcuboid(const char *segment, const char *defaults, HPoint *bottomfrontleft, HPoint *topbackright);
1951 
1958  int SetupHandlesEvent(HBaseView *view, HC_KEY key, bool complex);
1959 
1961  virtual bool GetHasObjects() { return m_bHasObjects; }
1962 
1966  virtual void SetHasObjects(bool hasobjects);
1967 
1968 
1972  virtual void SetHandleOperator(HBaseOperator *op) { m_pHandleOperator = op; }
1973 
1977  virtual HBaseOperator *GetHandleOperator() { return m_pHandleOperator; }
1978 
1982  virtual float GetDefaultSelectionProximity() { return m_DefaultSelectionProximity; }
1986  virtual void SetDefaultSelectionProximity(float selectionproximity);
1987 
1991  return m_bAllowInteractiveShadows;
1992  }
1993 
1999  void SetAllowInteractiveShadows(bool onoff) {
2000  m_bAllowInteractiveShadows = onoff;
2001  }
2002 
2005  HShadowRenderingMode GetShadowRenderingMode();
2006 
2011  void SetShadowRenderingMode(HShadowRenderingMode mode);
2012 
2015  bool GetAllowInteractiveCutGeometry() { return m_bAllowInteractiveCutGeometry; }
2016 
2022  m_bAllowInteractiveCutGeometry = onoff;
2023  }
2024 
2027  HCutGeometryVisibility GetCutGeometryVisibility();
2028 
2032  void SetCutGeometryVisibility(HCutGeometryVisibility visibility);
2033 
2034 
2037  void * GetWindowHandle() { return m_pWindowHandle; }
2038 
2042  bool GetInitialCameraSet() { return m_bInitialCameraSet; }
2043 
2044 
2045 
2052  int ObjectMovedEvent(HBaseView *view, HC_KEY key, HPoint *pos);
2053 
2057  void SetRecordCamera(bool rc);
2058 
2060  bool GetRecordMode() { return m_bRecordCamera; }
2061 
2065  void InjectEvent(HEventInfo const & hevent);
2066 
2067 
2072  void SetForceFastHiddenLine(bool force) { m_bForceFastHiddenLine = force; }
2073 
2075  bool GetForceFastHiddenLine() { return m_bForceFastHiddenLine; }
2076 
2082  void SetTransparency(char const * text, bool fast_z_sort=false);
2083 
2088  void SetLineAntialiasing( bool onoff );
2089 
2091  bool GetLineAntialiasing() { return m_bLineAntialiasing; }
2092 
2096  void SetTextAntialiasing( bool onoff );
2097 
2102  void SetDepthOfField(bool onoff, float strength = 1.0f);
2103 
2108  void SetDepthOfFieldRange(float near=0.0f, float far=0.0f);
2109 
2111  bool GetTextAntialiasing() { return m_bTextAntialiasing; }
2112 
2116  void SetIsoDefault(ViewMode vm) { m_IsoDefault = vm; }\
2117 
2119  ViewMode GetIsoDefault() { return m_IsoDefault; }
2120 
2127  void SetCullingThreshold(int cullingthreshold);
2128 
2132  int GetCullingThreshold();
2133 
2140  void SetHardExtent(int cutoff);
2141 
2145  int GetHardExtent();
2146 
2151  void BeginShellSelection();
2152 
2155  void EndShellSelection();
2156 
2158  HSelectionSet * GetHighlightSelection() { return m_pHighlight; }
2159 
2166  void SetViewAxis(HVector *front_axis, HVector *top_axis) { m_FrontAxis = front_axis; m_TopAxis = top_axis; }
2171  void GetViewAxis(HVector *front_axis, HVector *top_axis) { *front_axis = m_FrontAxis; *top_axis = m_TopAxis; }
2172 
2176  void SetDefaultHSRA();
2177 
2178 
2182  void SetMaximumUpdateTime(float mut) { m_MaximumUpdateTime = mut; }
2183 
2187  float GetMaximumUpdateTime() { return m_MaximumUpdateTime; }
2188 
2192  virtual const HSelectionHighlightMode GetHighlightMode() { return m_HighlightMode; }
2193 
2198  virtual void SetHighlightMode(HSelectionHighlightMode m);
2199 
2203  virtual void SetReferenceSelection(bool use_ref);
2204 
2211  bool GetKeyState(unsigned int key, int &flags);
2212 
2214  void ResetKeyState();
2215 
2219  void SetFastFitWorld(bool fw) { m_bFastFitWorld = fw; }
2220 
2224  void SetDetailedFitWorld(bool fw) { m_bDetailedFitWorld = fw; }
2225 
2229  bool GetFastFitWorld() { return m_bFastFitWorld; }
2230 
2234  bool GetDetailedFitWorld() { return m_bDetailedFitWorld; }
2235 
2241  void GetSceneExtents(HPoint &min, HPoint &max);
2242 
2246  void SetLightScaling(float sv);
2247 
2248  void SetXYSizeOverride(int x,int y) { m_XSize_override = x, m_YSize_override = y; }
2249 
2250 
2252  int GetXSize() {return m_XSize;}
2253 
2255  int GetYSize() {return m_YSize;}
2256 
2258  HViewSelectionLevel GetViewSelectionLevel();
2259 
2268  void SetViewSelectionLevel(HViewSelectionLevel level);
2269 
2278  void EnableTargetFrameRate(bool enable=true, int target=100, int threshold=10, int steps=5);
2279 
2284  float GetFramerate();
2285 
2287  FramerateMode GetFramerateMode();
2288 
2290  int GetFramerateCullingThreshold();
2291 
2296  int GetFramerateSteps();
2297 
2299  bool IsFramerateLodEnabled();
2300 
2314  void SetFramerateMode(FramerateMode mode, float framerate = 0.1f, int cullingthreshold = 150,
2315  bool enableLods = false, int steps = 20, int cutoff = 1);
2316 
2318  bool IsFrameRateEnabled();
2319 
2321  bool GetViewActive();
2322 
2324  void cleanupSimpList();
2325 
2329  void SetAnnotationResize(bool value);
2330 
2332  bool GetAnnotationResize() { return m_AnnotationCookie==0?false:true; }
2333 
2335  bool GetFirstUpdate() { return m_bFirstUpdate; }
2336 
2338  void SetDisplayHandlesOnDblClk(bool dh) { m_bDisplayHandlesOnDblClk = dh; }
2339 
2341  bool HasInitialView() { return m_has_initial_view; }
2342 
2344  void HasInitialView(bool does_it) { m_has_initial_view=does_it; }
2345 
2347  void ExhaustiveUpdate();
2348 
2350  bool GetUpdateNotFinished() { return m_bUpdateNotFinished; }
2351 
2353  void SetUpdateNotFinished(bool NotFinished) { m_bUpdateNotFinished = NotFinished; }
2354 
2355  /* This method sets the mousewheel sensitivity which is used to control the apparent sensitivity of the mousewheel for MVO operators.
2356  \param sensitivity value is strictly positive float. */
2357  void SetMouseWheelSensitivity(float sensitivity) {
2358  if (sensitivity > 0)
2359  m_MouseWheelSensitivity = sensitivity;
2360  }
2361  /* Use this in an operator to modify the return value of HEventInfo::GetMouseWheelDelta()
2362  \return value of the operator mousewheel sensitivity, a strictly positive value. */
2363  float GetMouseWheelSensitivity() { return m_MouseWheelSensitivity; }
2364 
2366  void SetSplatRendering(bool onoff);
2367 
2369  bool GetSplatRendering() { return m_bSplatRendering; };
2370 
2372  void SetSplatSize(int splat_size);
2373 
2375  int GetSplatSize() { return m_SplatSize; };
2376 
2378  void SetSplatSymbol(SplatSymbol symbol);
2379 
2381  SplatSymbol GetSplatSymbol() {return m_SplatSymbol;};
2382 
2383 
2387  void UpdateFakeHLRColor(HPoint paper_color);
2388 
2390  void SetHardwareAntialiasing(int antialiasinglevel) { m_HardwareAntialiasing = antialiasinglevel; }
2391 
2393  int GetHardwareAntialiasing() { return m_HardwareAntialiasing; }
2394 
2398  static void StaticForceUpdateRequest(void * view_pointer);
2399 
2400  /*
2401  This method can be used to visualize the internal bounding stored on segments
2402  and some types of geometry. The bounding is drawn outside of the model so it does not
2403  interfere with static trees. It is semi-transparent with a color that indicates the
2404  bounding density: blue is very dense, red is sparse, green is somewhere in between.
2405  \param draw_something If this value is false, any existing bounding geometry will simply
2406  be discarded. If it is true, a new bounding geometry will also be generated.
2407  \param key The key of the segment or geometry whose bounding should be visualized.
2408  \param incl_count The number of keys in the incl_path array.
2409  \param incl_path This array of keys should be structured for a PShow. That is, the leaf
2410  as the first entry followed by a series of include keys mapping a path to the view.
2411  */
2412  void VisualizeBounding(bool draw_something, HC_KEY key=INVALID_KEY, int incl_count=0, HC_KEY * incl_path=0);
2413 
2414 
2415  /*
2416  Retrieves the color set by an earlier call to SetFakeHLRColor.
2417  \return the color as an rgb triplet with values from 0.0 to 1.0.
2418  */
2419  HPoint GetFakeHLRColor();
2420 
2421  /*
2422  Sets the color to be used in fake hidden-line render mode.
2423  \param color An rgb triplet with values from 0.0 to 1.0.
2424  */
2425  void SetFakeHLRColor(HPoint color);
2426 
2427  /*
2428  Orients the camera to point at selected geometry and sets depth-of-field to keep it in focus.
2429  \param onoff passing true will focus on the selected geometry, passing false will remove an earlier depth-of-field setting.
2430  */
2431  void FocusOnSelection(bool onoff = true);
2432 
2433  /*
2434  \return true if the view is currently focused on a selection via a previous call to FocusOnSelection(), false otherwise.
2435  */
2436  bool GetFocusOnSelection() { return m_FocusedOnSelection; }
2437 
2439  HTouchManager *GetTouchManager() { return m_TouchManager; }
2440 
2441 protected:
2446  int m_CPMode;
2457  bool m_bDisplayHandlesOnDblClk;
2458  bool m_has_initial_view;
2459 
2462  int m_HardwareAntialiasing;
2470  HPoint m_SceneBoundingMin;
2471  HPoint m_SceneBoundingMax;
2472  bool m_bSceneBoundingSet;
2473  bool m_bFastFitWorld;
2474  bool m_bDetailedFitWorld;
2480  bool m_bNavCube;
2510 
2511 
2512  HC_KEY m_InfoTextKey;
2513 
2517  HC_KEY m_SceneLight[MaxLights];
2529  void (* m_pfEventChecker)(HIC_Rendition const *nr);
2530  bool (* m_pfKeyState)(unsigned int, int &);
2544  float m_IdleTime;
2556  unsigned long m_AnnotationCookie;
2557  unsigned long m_AxisResizeCookie;
2558  FramerateMode m_FramerateMode;
2559  bool m_bSplatRendering;
2560  int m_SplatSize;
2561  SplatSymbol m_SplatSymbol;
2562  bool m_FocusedOnSelection;
2563 
2570  void ComputeShadowParams(HPlane& shadow_plane, HPoint& light_pos);
2571 
2577  void AdjustShadowPlane(HPlane& shadow_plane, HPoint const & light_pos);
2578 
2584  void SetShadowParams(const HPlane& shadow_plane, const HPoint& light_pos,
2585  const HPoint* color = 0, const char * filter = 0);
2586 
2593  virtual void SetShadowParams(HShadow* shadowObj);
2594 
2597  void RefreshViewSize();
2598 
2604  void QueryDeviceCapabilities();
2605 
2614  virtual void UpdateInternal(bool antialias = false, bool force_update = false);
2615 
2616 
2621  virtual void SetupLights();
2622 
2623 private:
2624  float m_LastRecordTime;
2626  char * m_sDriverPath; // fully rooted pathname of driver instance
2627  char * m_sDriverType; // driver type; e.g. msw, opengl, x11
2628  char * m_sAlias;
2629  void * m_pWindowHandle;
2630  void * m_pColormap;
2631  void * m_pClipOverride;
2632  void * m_pWindowHandle2;
2633  struct vlist_s *m_SignalRequestsList;
2634  HBaseViewEmitMessageFunction emit_message_function;
2635  void * emit_message_function_user_data;
2636  HTClient * m_pUpdateTimerClient;
2637  bool m_bPrevBackplaneCullMode; // this caches backplane cull mode (which is switched off when capping planes are turned off with cutting planes on )
2638  bool m_bHasObjects;
2639  float m_fZoomLimit;
2640  int m_SuppressUpdate;
2641  int m_SuppressUpdateTick;
2642  bool m_bDynamicHighlighting;
2643  int m_XSize;
2644  int m_YSize;
2645  int m_XSize_override;
2646  int m_YSize_override;
2647  float m_LastMouseWheelTime;
2648  float m_MouseWheelSensitivity;
2649  bool m_KeyMap[256];
2650  int m_KeyFlags;
2651  bool m_bOwnDriver;
2652  bool m_bUpdateNotFinished;
2653  int m_NotFinishedCounter;
2654  HPoint m_FakeHLRColor;
2655  HConstFRSimpType **SimpList;
2656  int simpListLength;
2657  int m_OldCullingThreshold;
2658  float *m_pTempClipArray;
2659  ViewUpdateMode m_OldViewUpdateMode;
2660  bool m_UseExplicitShadowLight;
2661  HPoint m_ExplicitShadowLightDirection;
2662  int m_LightCount;
2663 
2664  //no default constructor
2665  HBaseView() {;};
2666 
2667  //obsolete
2668  HBaseView(HBaseModel *model, char const * alias, char const * driver_type,char const * instance_name, long window_handle, long colormap) {
2669  UNREFERENCED(model);
2670  UNREFERENCED(alias);
2671  UNREFERENCED(driver_type);
2672  UNREFERENCED(instance_name);
2673  UNREFERENCED(window_handle);
2674  UNREFERENCED(colormap);
2675  }
2676 
2677  //obsolete
2678  void RebindView(HBaseModel *model, char const * alias, char const * driver_type,char const * instance_name, long window_handle, long colormap) {
2679  UNREFERENCED(model);
2680  UNREFERENCED(alias);
2681  UNREFERENCED(driver_type);
2682  UNREFERENCED(instance_name);
2683  UNREFERENCED(window_handle);
2684  UNREFERENCED(colormap);
2685  }
2686 
2687 };
2688 
2689 
2690 #ifdef H_PACK_8
2691 #pragma pack(pop)
2692 #endif
2693 
2694 #endif
self-explanatory
Definition: HBaseView.h:99
bool GetFirstUpdate()
Definition: HBaseView.h:2335
HBaseOperator * m_pOperator
Definition: HBaseView.h:2520
bool GetAllowInteractiveCutGeometry()
Definition: HBaseView.h:2015
void SetKeyStateCallback(bool(*KeyState)(unsigned int, int &))
Definition: HBaseView.h:772
HUndoManager * m_pUndoManager
Definition: HBaseView.h:2534
SplatSymbol
Definition: HBaseView.h:282
no handedness; only applies to polygon-handedness
Definition: HBaseView.h:176
bool m_bUpdateRequested
Definition: HBaseView.h:2532
void ClearUpdateRequest()
Definition: HBaseView.h:1645
void(* HBaseViewEmitMessageFunction)(const char *message, unsigned int length, void *user_data)
Definition: HBaseView.h:296
bool m_bBeginShellSelection
Definition: HBaseView.h:2456
bool GetShadowRegenerationMode()
Definition: HBaseView.h:1887
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:981
self-explanatory
Definition: HBaseView.h:101
HC_KEY GetOverwriteKey()
Definition: HBaseView.h:943
same as HReanderShaded but with lines visible
Definition: HBaseView.h:79
bool GetSpritingMode()
Definition: HBaseView.h:904
bool GetCPFaceVisibility()
Definition: HBaseView.h:728
float m_SmoothTransitionDuration
Definition: HBaseView.h:2482
FramerateMode
Definition: HBaseView.h:147
MultiThreadingType
Definition: HBaseView.h:193
void InvalidateSceneBounding()
Definition: HBaseView.h:1554
void SetCuttingPlaneGeomKey(HC_KEY cuttingplanegeom_key)
Definition: HBaseView.h:1002
HC_KEY m_ViewKey
Definition: HBaseView.h:2489
virtual HFileOutputResult FileOutput(const char *FileName, HOutputHandler *handler, HOutputHandlerOptions *options=0)
Definition: HBaseView.h:680
HShadowRenderingMode
Definition: HBaseView.h:241
ViewMode GetViewMode()
Definition: HBaseView.h:714
bool m_bCPFaceVisibility
Definition: HBaseView.h:2445
opengl p-buffer shadow generation
Definition: HBaseView.h:244
bool m_bAllowInteractiveShadows
Definition: HBaseView.h:2547
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:2488
ViewUpdateMode
Definition: HBaseView.h:232
bool m_bShadowRegeneration
Definition: HBaseView.h:2540
bool IsLightFollowCamera()
Definition: HBaseView.h:1254
opengl software shadow generation
Definition: HBaseView.h:245
void SetViewKey(HC_KEY view_key)
Definition: HBaseView.h:927
negative X, positive Y, positive Z
Definition: HBaseView.h:106
const char * GetDriverPath()
Definition: HBaseView.h:687
HBaseOperator * GetOperator()
Definition: HBaseView.h:1212
HUtilityAntialiasing * m_pAntialiasing
Definition: HBaseView.h:2476
void SetSmoothTransitionDuration(float duration)
Definition: HBaseView.h:1248
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:925
negative X, positive Y, positive Z
Definition: HBaseView.h:108
HC_KEY m_FakeHLRStyle
Definition: HBaseView.h:2442
ViewUpdateMode GetViewUpdateMode()
Definition: HBaseView.h:1701
void HasInitialView(bool does_it)
Definition: HBaseView.h:2344
self-explanatory
Definition: HBaseView.h:135
unknown mode
Definition: HBaseView.h:161
HC_KEY GetDefaultLightKey(int which=0)
Definition: HBaseView.h:1099
void SetCurrentOperator(HBaseOperator *NewOperator)
Definition: HBaseView.h:1207
bool m_bMouseMove
Definition: HBaseView.h:2538
bool GetUpdateNotFinished()
Definition: HBaseView.h:2350
fake hidden line
Definition: HBaseView.h:86
No display lists.
Definition: HBaseView.h:185
virtual void SetCuttingPlaneRegenerationMode(bool onoff)
Definition: HBaseView.h:1882
The HObjectManager class keeps track of generic MVO objects.
Definition: HEventManager.h:137
int GetXSize()
Definition: HBaseView.h:2252
self-explanatory
Definition: HBaseView.h:96
HConstantFrameRate * m_pConstantFrameRate
Definition: HBaseView.h:2524
DisplayListType m_DisplayListType
Definition: HBaseView.h:2465
bool m_bCuttingPlaneRegeneration
Definition: HBaseView.h:2542
bool m_bFirstUpdate
Definition: HBaseView.h:2545
bool GetSmoothTransition()
Definition: HBaseView.h:1238
void SetZoomLimit(float zoomLimit)
Definition: HBaseView.h:962
void UpdateAxisTriad()
Definition: HBaseView.h:1060
bool(* HSignalNotifyFunction)(int signal, void *signal_data, void *user_data)
Definition: HBaseView.h:54
HC_KEY m_CuttingPlanesKey
Definition: HBaseView.h:2501
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:954
virtual HFileInputResult FileInput(const char *FileName, HInputHandler *handler, HInputHandlerOptions *options=0)
Definition: HBaseView.h:605
bool m_bAxisTriadTransparencyAllowed
Definition: HBaseView.h:2450
bool GetForceFastHiddenLine()
Definition: HBaseView.h:2075
virtual void SetShadowRegenerationToggle()
Definition: HBaseView.h:1872
int GetSplatSize()
Definition: HBaseView.h:2375
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:642
HSelectionSet * m_pHighlight
Definition: HBaseView.h:2523
The HCamera class is the data type of a HOOPS Camera Attribute.
Definition: HUtility.h:540
bool GetDetailedFitWorld()
Definition: HBaseView.h:2234
void SetEmitMessageFunction(HBaseViewEmitMessageFunction new_emit_message_function, void *user_data=0)
Definition: HBaseView.h:1409
HImCuttingGeometry * m_pHImCuttingGeometry
Definition: HBaseView.h:2475
bool GetTransparentSelectionBoxMode()
Definition: HBaseView.h:1103
The represented size of an object doesn'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:2548
virtual bool GetHasObjects()
Definition: HBaseView.h:1961
bool m_bLButtonDown
Definition: HBaseView.h:2537
void SetUpdateInterrupted(int val)
Definition: HBaseView.h:1026
clamps to LOD1
Definition: HBaseView.h:80
void SetAllowInteractiveCutGeometry(bool onoff)
Definition: HBaseView.h:2021
HSelectionSet * GetHighlightSelection()
Definition: HBaseView.h:2158
self-explanatory
Definition: HBaseView.h:174
bool GetCPLineVisibility()
Definition: HBaseView.h:725
float GetSmoothTransitionDuration()
Definition: HBaseView.h:1251
self-explanatory
Definition: HBaseView.h:175
HC_KEY m_IntersectPolylinesKey
Definition: HBaseView.h:2505
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:2116
Fast hidden line.
Definition: HBaseView.h:206
HVector m_TopAxis
Definition: HBaseView.h:2486
const char * GetDriverType()
Definition: HBaseView.h:690
bool m_bCuttingPlanesVisibility
Definition: HBaseView.h:2448
bool GetTextAntialiasing()
Definition: HBaseView.h:2111
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:2480
void SetBBoxGeometryKey(HC_KEY bbox_key)
Definition: HBaseView.h:986
HLRMode
Definition: HBaseView.h:203
bool m_bCPLineVisibility
Definition: HBaseView.h:2444
HandednessMode
Definition: HBaseView.h:172
virtual void SetShadowRegenerationMode(bool onoff)
Definition: HBaseView.h:1868
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:2535
The HSelectionSet class manages a list of selected items.
Definition: HSelectionSet.h:66
AxisMode m_bAxisMode
Definition: HBaseView.h:2478
#define HC_KEY
HOutputHandler an abstract base class for model and image output.
Definition: HIOManager.h:1234
HSelectionHighlightMode
Definition: HGlobals.h:547
bool m_bTransparentSelectionBox
Definition: HBaseView.h:2554
Definition: HGlobals.h:310
Definition: HTManager.h:157
void SetFastFitWorld(bool fw)
Definition: HBaseView.h:2219
Analytic hidden line.
Definition: HBaseView.h:205
HEventManager * m_pEventManager
Definition: HBaseView.h:2533
HC_KEY m_ProgressBarKey
Definition: HBaseView.h:2509
HC_KEY m_OverwriteKey
Definition: HBaseView.h:2493
self-explanatory
Definition: HBaseView.h:97
HC_KEY GetIncludeLinkKey()
Definition: HBaseView.h:930
void SetSpritingMode(bool onoff)
Definition: HBaseView.h:911
virtual const HSelectionHighlightMode GetHighlightMode()
Definition: HBaseView.h:2192
HC_KEY m_WindowspaceKey
Definition: HBaseView.h:2497
virtual bool GetCameraChanged()
Definition: HBaseView.h:1895
void SetUpdateNotFinished(bool NotFinished)
Definition: HBaseView.h:2353
void(*)(HIC_Rendition const *nr) GetEventCheckerCallback()
Definition: HBaseView.h:778
float m_IdleTime
Definition: HBaseView.h:2544
class HPoint HVector
The HVector class is the data type of a three-dimensional vector.
Definition: HGlobals.h:326
int m_CPMode
Definition: HBaseView.h:2446
star bloom
Definition: HBaseView.h:252
unknown view mode
Definition: HBaseView.h:124
virtual void SetInvertMouseWheelZoom(bool val=true)
Definition: HBaseView.h:1900
Geometry-level display lists.
Definition: HBaseView.h:186
bool GetDynamicHighlighting()
Definition: HBaseView.h:1734
HSelectionHighlightMode m_HighlightMode
Definition: HBaseView.h:2464
bool GetSceneBoundingSet()
Definition: HBaseView.h:1545
ViewUpdateMode m_ViewUpdateMode
Definition: HBaseView.h:2531
class HDebugZBuffer * m_pDebugZBuffer
Definition: HBaseView.h:2536
void SetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2166
bool GetFastFitWorld()
Definition: HBaseView.h:2229
same as HViewIsoxYz
Definition: HBaseView.h:115
bool EmittingMessages()
Definition: HBaseView.h:1419
unknown mode
Definition: HBaseView.h:133
void SetSuppressUpdateTick(bool suppress)
Definition: HBaseView.h:1669
HCutGeometryVisibility
Definition: HGlobals.h:102
HEventInfo * m_pEvent
Definition: HBaseView.h:2521
bool m_bTextAntialiasing
Definition: HBaseView.h:2455
currently does nothing
Definition: HBaseView.h:67
bool GetAnnotationResize()
Definition: HBaseView.h:2332
void SetHardwareAntialiasing(int antialiasinglevel)
Definition: HBaseView.h:2390
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:1017
bool GetCuttingPlaneRegenerationMode()
Definition: HBaseView.h:1876
void SetDisplayHandlesOnDblClk(bool dh)
Definition: HBaseView.h:2338
bool m_bSmoothTransition
Definition: HBaseView.h:2481
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:2495
bool m_bLineAntialiasing
Definition: HBaseView.h:2454
AxisMode GetAxisMode()
Definition: HBaseView.h:1046
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:1225
ViewMode
Definition: HBaseView.h:93
HRenderMode m_RenderMode
Definition: HBaseView.h:2518
HSelectionSet * m_pSelection
Definition: HBaseView.h:2522
LightingIntMode
Definition: HBaseView.h:131
self-explanatory
Definition: HBaseView.h:151
void RequestUpdate()
Definition: HBaseView.h:1641
void SetNavCube(bool onoff)
Definition: HBaseView.h:1235
HC_KEY GetAxisTriadKey()
Definition: HBaseView.h:1222
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:2483
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:2060
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:2072
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:1218
float GetMaximumUpdateTime()
Definition: HBaseView.h:2187
bool GetAllowInteractiveShadows()
Definition: HBaseView.h:1990
DisplayListType
Definition: HBaseView.h:183
Definition: HIOManager.h:879
HC_KEY m_AxisTriadKey
Definition: HBaseView.h:2507
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:1429
virtual HBaseModel * GetModel()
Definition: HBaseView.h:704
none view mode
Definition: HBaseView.h:95
void SetDetailedFitWorld(bool fw)
Definition: HBaseView.h:2224
bool HasInitialView()
Definition: HBaseView.h:2341
HAnimateMode
Definition: HBaseView.h:1524
HC_KEY m_FakeHLRSource
Definition: HBaseView.h:2443
bool m_bCuttingPlanesExist
Definition: HBaseView.h:2447
virtual float GetDefaultSelectionProximity()
Definition: HBaseView.h:1982
void SetCuttingPlanesKey(HC_KEY cuttingplanes_key)
Definition: HBaseView.h:994
bool m_bSpritingAllowed
Definition: HBaseView.h:2449
HBaseOperator * m_pHandleOperator
Definition: HBaseView.h:2546
bool m_bGeometryChanged
Definition: HBaseView.h:2469
bool GetSuppressUpdateTick()
Definition: HBaseView.h:1679
Segment-level display lists.
Definition: HBaseView.h:187
HMarkupManager * m_pMarkupManager
Definition: HBaseView.h:2477
edges/lines only
Definition: HBaseView.h:63
Square.
Definition: HBaseView.h:285
HVector m_FrontAxis
Definition: HBaseView.h:2485
bool m_bInvertMouseWheelZoom
Definition: HBaseView.h:2555
ViewMode m_ViewMode
Definition: HBaseView.h:2519
image driver shadow generation
Definition: HBaseView.h:243
int m_AxisWindowSize
Definition: HBaseView.h:2451
HSharedKey * GetSharedKey()
Definition: HBaseView.h:1514
bool GetCuttingPlanesVisibility()
Definition: HBaseView.h:753
void * GetWindowHandle()
Definition: HBaseView.h:2037
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:103
void SetAllowInteractiveShadows(bool onoff)
Definition: HBaseView.h:1999
Definition: HConstantFrameRate.h:79
HCamera m_InitialCamera
Definition: HBaseView.h:2551
int m_InUpdateInternal
Definition: HBaseView.h:2528
ViewMode m_IsoDefault
Definition: HBaseView.h:2463
bool GetSuppressUpdate()
Definition: HBaseView.h:1662
unknown mode
Definition: HBaseView.h:149
The HEventInfo class stores and manages event information.
Definition: HEventInfo.h:207
bool m_bForceFastHiddenLine
Definition: HBaseView.h:2453
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:1574
void SetSelection(HSelectionSet *selection)
Definition: HBaseView.h:701
float m_DefaultSelectionProximity
Definition: HBaseView.h:2549
UpDirection
Definition: HBaseView.h:221
Gooch Shaded.
Definition: HBaseView.h:85
HShadowMode
Definition: HGlobals.h:92
HC_KEY m_SceneKey
Definition: HBaseView.h:2491
void SetMaximumUpdateTime(float mut)
Definition: HBaseView.h:2182
HSharedKey * m_pSharedKey
Definition: HBaseView.h:2526
HShadowMode m_ShadowMode
Definition: HBaseView.h:2525
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:1424
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:1637
ProjMode
Definition: HBaseView.h:159
void SetSuppressUpdate(bool suppress)
Definition: HBaseView.h:1652
self-explanatory
Definition: HBaseView.h:217
HOpCameraManipulate * m_pManipulateOperator
Definition: HBaseView.h:2539
bool m_bCameraChanged
Definition: HBaseView.h:2543
self-explanatory
Definition: HBaseView.h:100
bool GetSplatRendering()
Definition: HBaseView.h:2369
bool m_bInitialCameraSet
Definition: HBaseView.h:2552
virtual bool GetInvertMouseWheelZoom()
Definition: HBaseView.h:1903
void SetIntersectPolylinesKey(HC_KEY intersectpolylines_key)
Definition: HBaseView.h:1009
int m_UpdateInterrupted
Definition: HBaseView.h:2527
virtual void SetCameraChanged(bool val=true)
Definition: HBaseView.h:1892
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:2516
int GetYSize()
Definition: HBaseView.h:2255
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:2479
Like AxisOn, but centered differently.
Definition: HBaseView.h:216
bool m_bShadowRegenerationToggle
Definition: HBaseView.h:2541
HC_KEY m_lIncludeLinkKey
Definition: HBaseView.h:2515
shell/mesh silhouette edges
Definition: HBaseView.h:65
self-explanatory
Definition: HBaseView.h:214
void SetDebugZBuffer(HDebugZBuffer *dzb)
Definition: HBaseView.h:1043
hidden line removal
Definition: HBaseView.h:66
ViewMode GetIsoDefault()
Definition: HBaseView.h:2119
The HPlane class is the data type of a plane.
Definition: HGlobals.h:333
void SetConstantFrameRateObject(HConstantFrameRate *cf)
Definition: HBaseView.h:766
int GetHardwareAntialiasing()
Definition: HBaseView.h:2393
SplatSymbol GetSplatSymbol()
Definition: HBaseView.h:2381
bool GetInitialCameraSet()
Definition: HBaseView.h:2042
negative X, positive Y, positive Z
Definition: HBaseView.h:104
void SetIncludeLinkKey(HC_KEY link)
Definition: HBaseView.h:932
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:973
Round.
Definition: HBaseView.h:284
Fake hidden line.
Definition: HBaseView.h:207
Definition: HDebugZBuffer.h:29
HTouchManager * GetTouchManager()
Definition: HBaseView.h:2439
HTouchManager * m_TouchManager
Definition: HBaseView.h:2460
The driver returns segment objects from selections.
Definition: HBaseView.h:274
HC_KEY GetBBoxGeometryKey()
Definition: HBaseView.h:984
HC_KEY m_CuttingPlaneGeomKey
Definition: HBaseView.h:2503
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:109
int m_WindowColorPercentage
Definition: HBaseView.h:2484
flat shading
Definition: HBaseView.h:69
bool HaveMarkupManager()
Definition: HBaseView.h:485
float m_MaximumUpdateTime
Definition: HBaseView.h:2550
HC_KEY m_ConstructionKey
Definition: HBaseView.h:2499
bool m_bRecordCamera
Definition: HBaseView.h:2553
same as HViewIsoXYz
Definition: HBaseView.h:114
HShadowMode GetShadowMode()
Definition: HBaseView.h:1076
self-explanatory
Definition: HBaseView.h:102
virtual bool GeometryChanged()
Definition: HBaseView.h:1577
HC_KEY GetProgressBarKey()
Definition: HBaseView.h:1012
same as HViewIsoxYZ
Definition: HBaseView.h:113
bool GetLineAntialiasing()
Definition: HBaseView.h:2091
int GetLightCount()
Definition: HBaseView.h:1271
virtual HBaseOperator * GetHandleOperator()
Definition: HBaseView.h:1977
Definition: HSharedKey.h:80
virtual void SetHandleOperator(HBaseOperator *op)
Definition: HBaseView.h:1972
void GetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2171
HConstantFrameRate * GetConstantFrameRateObject()
Definition: HBaseView.h:761
HViewSelectionLevel
Definition: HBaseView.h:271
void SetSceneKey(HC_KEY scene_key)
Definition: HBaseView.h:940
void SetTransparentSelectionBoxMode(bool mode)
Definition: HBaseView.h:1108