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 
821  virtual bool SetHandednessFromModel(bool remove_handedness_from_model = true, bool emit_message = false);
822 
828  virtual void SetFontSize(const char *font_size, bool emit_message=false);
829 
834  virtual void SetFontSizeFromMessage(const char *in_data, unsigned int data_length);
835 
837  bool GetBackplaneCulling();
838 
845  void SetBackplaneCulling(bool cull);
846 
850  ProjMode GetProjMode();
851 
855  void SetProjMode(ProjMode mode);
856 
858  DisplayListType GetDisplayListType();
859 
863  void SetDisplayListType(DisplayListType type);
864 
866  bool GetDisplayListMode();
867 
871  void SetDisplayListMode(bool mode);
872 
874  HandednessMode GetPolygonHandednessMode();
875 
887  void SetPolygonHandednessMode(HandednessMode);
888 
891  bool GetLodMode();
892 
899  void SetLodMode(bool onoff);
900 
902  bool GetSpritingMode() { return m_bSpritingAllowed; }
903 
909  void SetSpritingMode(bool onoff) { m_bSpritingAllowed = onoff; }
910 
914  int GetLodThreshold();
915 
920  void SetLodThreshold(int val);
921 
923  HC_KEY GetViewKey() { return m_ViewKey; }
925  void SetViewKey( HC_KEY view_key ) { m_ViewKey = view_key; }
926 
928  HC_KEY GetIncludeLinkKey() { return m_lIncludeLinkKey; }
930  void SetIncludeLinkKey( HC_KEY link ) { m_lIncludeLinkKey = link; }
931 
933  HC_KEY GetSceneKey() { return m_SceneKey; }
934 
938  void SetSceneKey( HC_KEY scene_key ) { m_SceneKey = scene_key; }
939 
941  HC_KEY GetOverwriteKey() { return m_OverwriteKey; }
942 
944  HC_KEY GetShadowMapSegmentKey();
945 
947  HC_KEY GetLightsKey() { return m_LightsKey; }
948 
952  void SetLightsKey( HC_KEY lights_key ) { m_LightsKey = lights_key; }
953 
955  float GetZoomLimit() { return m_fZoomLimit; }
956 
960  void SetZoomLimit( float zoomLimit ) { m_fZoomLimit = zoomLimit; }
961 
963  virtual void SetZoomLimit();
964 
966  HC_KEY GetWindowspaceKey() { return m_WindowspaceKey; }
967 
971  void SetWindowspaceKey( HC_KEY winspace_key ) { m_WindowspaceKey = winspace_key; }
972 
974  HC_KEY GetConstructionKey() { return m_ConstructionKey; }
975 
979  void SetConstructionKey( HC_KEY construct_key ) { m_ConstructionKey = construct_key; }
980 
982  HC_KEY GetBBoxGeometryKey() { return m_BBoxGeometryKey; }
984  void SetBBoxGeometryKey( HC_KEY bbox_key ) { m_BBoxGeometryKey = bbox_key; }
985 
987  HC_KEY GetCuttingPlanesKey() { return m_CuttingPlanesKey; }
988 
992  void SetCuttingPlanesKey( HC_KEY cuttingplanes_key ) { m_CuttingPlanesKey = cuttingplanes_key; }
993 
995  HC_KEY GetCuttingPlaneGeomKey() { return m_CuttingPlaneGeomKey; }
996 
1000  void SetCuttingPlaneGeomKey( HC_KEY cuttingplanegeom_key ) { m_CuttingPlaneGeomKey = cuttingplanegeom_key; }
1002  HC_KEY GetIntersectPolylinesKey() { return m_IntersectPolylinesKey; }
1003 
1007  void SetIntersectPolylinesKey( HC_KEY intersectpolylines_key ) { m_IntersectPolylinesKey = intersectpolylines_key; }
1008 
1010  HC_KEY GetProgressBarKey() { return m_ProgressBarKey; }
1015  void SetProgressBarKey( HC_KEY key ) { m_ProgressBarKey = key; }
1016 
1017 
1019  int GetUpdateInterrupted() { return m_UpdateInterrupted; }
1020 
1024  void SetUpdateInterrupted( int val ) { m_UpdateInterrupted = val; }
1025 
1027  float GetIdleTime();
1028 
1030  void ResetIdleTime();
1031 
1034  HQuickMovesMethod GetQuickMovesMethod () const;
1035 
1037  class HDebugZBuffer *GetDebugZBuffer() { return m_pDebugZBuffer; }
1038 
1041  void SetDebugZBuffer(HDebugZBuffer *dzb) { m_pDebugZBuffer = dzb; };
1042 
1044  AxisMode GetAxisMode() {return m_bAxisMode; }
1045 
1050  virtual void SetAxisMode(AxisMode mode);
1051 
1055  virtual void OnSetAxisMode( AxisMode mode );
1056 
1058  void UpdateAxisTriad() { SetAxisMode(GetAxisMode()); }
1059 
1065  virtual void AdjustAxisWindow( int axis_window_pixels_in = -1, HIntRectangle *rect_in=0 );
1066 
1068  static void AdjustAxisWindowCallback(int signal, void * signal_data, void * user_data);
1069 
1071  static void AdjustWindowCallback(int signal, void * signal_data, void * user_data);
1072 
1074  HShadowMode GetShadowMode() {return m_ShadowMode; }
1075 
1080  virtual void SetShadowMode (HShadowMode sm, bool saveMode = true);
1081 
1093  virtual void SetReflectionPlane(bool state, float opacity=0.5f, bool fading=true, bool attenuate=false,
1094  float hither=0.0f, float yon=1.0f, bool blur=false, int blur_level=1);
1095 
1097  HC_KEY GetDefaultLightKey(int which = 0) { return m_SceneLight[which]; }
1098 
1099 
1101  bool GetTransparentSelectionBoxMode() {return m_bTransparentSelectionBox; }
1102 
1106  void SetTransparentSelectionBoxMode(bool mode) { m_bTransparentSelectionBox = mode; }
1107 
1111  virtual void DeleteSelectionList(bool emit_message=false);
1112 
1119  void RotateOnUpdate(const char *sname);
1120 
1126  virtual void SetWindowColor(HPoint rgb, bool emit_message=false);
1127 
1136  virtual void SetWindowColor(HPoint rgbtop, HPoint rgbbottom, bool emit_message=false);
1137 
1147  virtual void SetWindowColorRange(HPoint rgbtop, HPoint rgbbottom, int percentage, bool emit_message=false);
1148 
1149 
1155  virtual void SetWindowMaterial(const char * name, bool emit_message=false);
1156 
1162  virtual void SetWindowColorFromMessage(const char *in_data, unsigned int data_length);
1163 
1167  void GetWindowColor(HPoint &color_out);
1168 
1173  void GetWindowColor(HPoint &color_top, HPoint &color_bottom);
1174 
1180  void GetWindowColor(HPoint &color_top, HPoint &color_bottom, int &percentage);
1181 
1186  void GetWindowMaterial(char * out_material, char * out_pattern);
1187 
1191  void SetOperator(HBaseOperator *NewOperator);
1192 
1193 
1195  void SetCurrentOperator(HBaseOperator *NewOperator) { SetOperator(NewOperator); }
1196 
1200  HBaseOperator* GetOperator() { return m_pOperator; }
1201 
1206  HBaseOperator* GetCurrentOperator() { return m_pOperator; }
1207 
1208 
1210  HC_KEY GetAxisTriadKey() {return m_AxisTriadKey;}
1211 
1213  bool GetHideOverlappedText(){ return m_bHideOverlappedText;}
1214 
1218  void SetHideOverlappedText(bool hide);
1219 
1223  void SetNavCube(bool onoff) { m_bNavCube = onoff;}
1224 
1226  bool GetSmoothTransition() { return m_bSmoothTransition;}
1227 
1231  void SetSmoothTransition(bool onoff) { m_bSmoothTransition = onoff;}
1232 
1236  void SetSmoothTransitionDuration(float duration) { m_SmoothTransitionDuration = duration;}
1237 
1239  float GetSmoothTransitionDuration() { return m_SmoothTransitionDuration;}
1240 
1242  bool IsLightFollowCamera(){return m_bLightFollowsCamera;}
1243 
1247  void SetLightFollowsCamera(bool onoroff);
1248 
1249  static const int MaxLights = 6;
1250 
1254  void SetLightCount(int count);
1255 
1259  int GetLightCount() { return m_LightCount; }
1260 
1266  virtual void CameraPositionChanged(bool emit_message=false, bool smooth_camera_transition=false);
1267 
1268 
1272  virtual void PrepareForCameraChange();
1273 
1274 
1284  virtual void SetCamera(HPoint pos, HPoint tar, HPoint up, float fieldx, float fieldy, const char *proj);
1285 
1295  virtual void SetInitialCamera(HPoint pos, HPoint tar, HPoint up, float fieldx, float fieldy, char const * proj);
1296 
1297 
1307  virtual void GetCamera(HPoint *pos, HPoint *tar, HPoint *up, float &fieldx, float &fieldy, char *proj);
1308 
1313  virtual void SetCamera(HCamera camera);
1314 
1319  virtual void GetCamera(HCamera *camera);
1320 
1326  virtual void SetCameraFromMessage(const char *data, unsigned int data_length);
1327 
1335  virtual void InsertHSFData(const char *segment, const char *in_data, unsigned int data_length, bool emit_message=false);
1336 
1342  virtual void InsertHSFDataFromMessage(const char *in_data, unsigned int data_length);
1343 
1350  virtual void EmitHSFData(const char *segment, const char *in_data, unsigned int data_length);
1351 
1357  virtual void SetRenderMode (HRenderMode NewRenderMode, bool emit_message=false);
1358 
1364  virtual void SetRenderModeFromMessage(const char *in_data, unsigned int data_length);
1365 
1369  virtual void EmitFlushMessage();
1370 
1378  virtual void FlushFromMessage(const char *in_data, unsigned int data_length);
1379 
1380 
1386  virtual void Flush(bool emit_message=false);
1387 
1395  HBaseViewEmitMessageFunction new_emit_message_function,
1396  void * user_data=0) {
1397  emit_message_function=new_emit_message_function;
1398  emit_message_function_user_data=user_data;};
1399 
1404  bool EmittingMessages() {return emit_message_function != 0;};
1405 
1409  HBaseViewEmitMessageFunction GetEmitMessageFunction() {return emit_message_function;};
1410 
1414  void * GetEmitMessageFunctionUserData() {return emit_message_function_user_data;};
1415 
1421  virtual void EmitSelectMessage(HC_KEY key, bool isSelect);
1422 
1428  virtual void SelectFromMessage(const char *in_data, unsigned int data_length);
1429 
1433  virtual void EmitDeSelectAllMessage();
1434 
1435 
1439  virtual void EmitDeleteSelectionListMessage();
1440 
1441 
1445  virtual void DeleteSelectionListFromMessage();
1446 
1447 
1451  virtual void DeSelectAllFromMessage();
1452 
1453 
1458  virtual void EmitSetModellingMatrixMessage(HC_KEY key);
1459 
1460 
1465  virtual void EmitSetModellingMatrixMessage();
1466 
1474  virtual void EmitSegment(HC_KEY key, bool emit_contents_only = false);
1475 
1480  virtual void EmitDeleteByKeyMessage(HC_KEY key);
1481 
1487  virtual void DeleteByKeyFromMessage(const char *in_data, unsigned int data_length);
1488 
1494  virtual void SetModellingMatrixFromMessage(const char *in_data, unsigned int data_length);
1495 
1499  HSharedKey * GetSharedKey() {return m_pSharedKey;};
1500 
1501 
1505  virtual void StartSharedKey();
1506 
1507 
1510  HAnimateScene = 0x00000001
1511  };
1512 
1513 
1521  virtual void Animate (int animation_steps = 30, HAnimateMode animate_flags = HAnimateScene, int MaxRotation = 360);
1522 
1525  virtual void SetGeometryChanged();
1526 
1530  bool GetSceneBoundingSet() { return m_bSceneBoundingSet; }
1531 
1536  void SetSceneBounding(HPoint &min, HPoint &max);
1537 
1539  void InvalidateSceneBounding() { m_bSceneBoundingSet = false; }
1540 
1544  void SetFastMarkerDrawing(bool b_fast);
1545 
1549  bool GetFastMarkerDrawing();
1550 
1556  void SetDoubleBuffering(bool double_buffer);
1557 
1559  virtual void ClearGeometryChanged() {m_bGeometryChanged = false; };
1560 
1562  virtual bool GeometryChanged() {return m_bGeometryChanged;};
1563 
1569  unsigned long SetSignalNotify( int signal, HSignalNotifyFunction callback, void *user_data );
1570 
1573  void UnSetSignalNotify( unsigned long cookie );
1574 
1579  void SetColorInterpolation(bool onoff);
1580 
1586  void SetColorIndexInterpolation(bool onoff, bool isolines = false);
1587 
1593  bool GetColorIndexInterpolation(char * option = 0);
1594 
1603  bool GetFrameBufferEffectsOptions(char * options = 0, int *border = 0);
1604 
1610  void Notify(int signal, void * signal_data = 0);
1611 
1618  int UpdateEvent(bool antialias = false, bool forceUpdate = false);
1622  bool GetUpdateRequested() { return m_bUpdateRequested; }
1626  void RequestUpdate() { m_bUpdateRequested = true; }
1630  void ClearUpdateRequest() { m_bUpdateRequested = false; }
1631 
1637  void SetSuppressUpdate(bool suppress) {
1638  suppress?m_SuppressUpdate++:m_SuppressUpdate--;
1639  if (m_SuppressUpdate<0)
1640  m_SuppressUpdate = 0;
1641  }
1642 
1647  bool GetSuppressUpdate() { return m_SuppressUpdate > 0; }
1648 
1654  void SetSuppressUpdateTick(bool suppress) {
1655  suppress?m_SuppressUpdateTick++:m_SuppressUpdateTick--;
1656  if (m_SuppressUpdateTick<0)
1657  m_SuppressUpdateTick = 0;
1658  }
1659 
1664  bool GetSuppressUpdateTick() { return m_SuppressUpdateTick > 0; }
1665 
1681  void SetViewUpdateMode(ViewUpdateMode mode, float rate = 0.01f);
1682 
1686  ViewUpdateMode GetViewUpdateMode() { return m_ViewUpdateMode; }
1687 
1695  static bool UpdateTick(float request_time, float actual_time, void * user_data);
1696 
1704  static bool StreamProgressCallback(unsigned long so_far, unsigned long expected, void * user_data);
1705 
1707  void FlushProgressBar();
1708 
1710  HUndoManager *GetUndoManager();
1711 
1713  HEventManager *GetEventManager();
1714 
1716  HObjectManager *GetHObjectManager();
1717 
1719  bool GetDynamicHighlighting() { return m_bDynamicHighlighting; }
1720 
1724  void SetDynamicHighlighting(bool state);
1725 
1731  virtual int OnNoButtonDownAndMove(HEventInfo &hevent);
1732 
1737  virtual int OnLButtonDownAndMove(HEventInfo &hevent);
1738 
1744  virtual int OnLButtonDblClk(HEventInfo &hevent);
1745 
1750  virtual int OnRButtonDownAndMove(HEventInfo &hevent);
1755  virtual int OnMButtonDownAndMove(HEventInfo &hevent);
1760  virtual int OnLRButtonDownAndMove(HEventInfo &hevent);
1761 
1766  virtual int OnLButtonDown(HEventInfo &hevent);
1767 
1772  virtual int OnMouseMove(HEventInfo &hevent);
1773 
1779  virtual int OnLButtonUp(HEventInfo &hevent);
1780 
1781 #if 0
1782 
1786  virtual int OnMouseWheel(HEventInfo &hevent);
1787 #else
1788 
1792  virtual int OnMouseWheel(HEventInfo &hevent);
1793 
1796  virtual bool ComputeReasonableTarget(HPoint & new_tar, HPoint const & mouse_win, HPoint const & tar_orig);
1797 
1798  /* This method adjusts the old field to the new target so the picture on the screen won't change. */
1799  void ComputeNewField(float & width, float & height, HPoint const & new_tar,
1800  HCamera const & old_camera);
1801 #endif
1802 
1804  virtual int OnKeyDown(HEventInfo &hevent);
1805 
1807  virtual int OnKeyUp(HEventInfo &hevent);
1808 
1811  virtual void SetShadowColor(HPoint color);
1812 
1817  virtual void SetShadowLightDirection(bool explicit_light, HPoint const * direction = 0);
1818 
1823  virtual bool GetShadowLightDirection(HPoint * direction = 0);
1824 
1828  virtual void SetShadowIgnoresTransparency(bool ignore);
1829 
1833  virtual bool GetShadowIgnoresTransparency();
1834 
1837  virtual void DoDynamicHighlighting(HPoint mouse_pos);
1838 
1841  virtual void SetShadowResolution(int res);
1842 
1845  virtual void SetShadowBlurring(int blur);
1846 
1848  virtual void InternalUpdate();
1849 
1853  virtual void SetShadowRegenerationMode(bool onoff) { m_bShadowRegeneration = onoff; }
1854 
1857  virtual void SetShadowRegenerationToggle() { m_bShadowRegenerationToggle = true; m_bShadowRegeneration = false; }
1858 
1861  bool GetCuttingPlaneRegenerationMode() { return m_bCuttingPlaneRegeneration; }
1862 
1867  virtual void SetCuttingPlaneRegenerationMode(bool onoff) { m_bCuttingPlaneRegeneration = onoff; }
1868 
1872  bool GetShadowRegenerationMode() { return m_bShadowRegeneration; }
1873 
1877  virtual void SetCameraChanged( bool val=true ) { m_bCameraChanged = val; if(val) ResetIdleTime(); }
1878 
1880  virtual bool GetCameraChanged() { return m_bCameraChanged; }
1881 
1885  virtual void SetInvertMouseWheelZoom( bool val=true ) { m_bInvertMouseWheelZoom = val;}
1886 
1888  virtual bool GetInvertMouseWheelZoom() { return m_bInvertMouseWheelZoom; }
1889 
1890 
1894  virtual void SetAxisManipulateOperator(HOpCameraManipulate *op);
1895 
1900  virtual void SetVisibilitySelectionMode(bool onoff);
1901 
1903  virtual bool GetVisibilitySelectionMode();
1904 
1907  virtual void SetRelatedSelectionLimit(int limit);
1908 
1910  virtual int GetRelatedSelectionLimit();
1911 
1916  virtual void SetDetailSelection(bool onoff);
1917 
1919  virtual bool GetDetailSelectionMode();
1920 
1924  virtual void SetRespectSelectionCulling(bool onoff);
1926  virtual bool GetRespectSelectionCulling();
1927 
1935  virtual void SmartFilterCircumcuboid(const char *segment, const char *defaults, HPoint *bottomfrontleft, HPoint *topbackright);
1936 
1943  int SetupHandlesEvent(HBaseView *view, HC_KEY key, bool complex);
1944 
1946  virtual bool GetHasObjects() { return m_bHasObjects; }
1947 
1951  virtual void SetHasObjects(bool hasobjects);
1952 
1953 
1957  virtual void SetHandleOperator(HBaseOperator *op) { m_pHandleOperator = op; }
1958 
1962  virtual HBaseOperator *GetHandleOperator() { return m_pHandleOperator; }
1963 
1967  virtual float GetDefaultSelectionProximity() { return m_DefaultSelectionProximity; }
1971  virtual void SetDefaultSelectionProximity(float selectionproximity);
1972 
1976  return m_bAllowInteractiveShadows;
1977  }
1978 
1984  void SetAllowInteractiveShadows(bool onoff) {
1985  m_bAllowInteractiveShadows = onoff;
1986  }
1987 
1990  HShadowRenderingMode GetShadowRenderingMode();
1991 
1996  void SetShadowRenderingMode(HShadowRenderingMode mode);
1997 
2000  bool GetAllowInteractiveCutGeometry() { return m_bAllowInteractiveCutGeometry; }
2001 
2007  m_bAllowInteractiveCutGeometry = onoff;
2008  }
2009 
2012  HCutGeometryVisibility GetCutGeometryVisibility();
2013 
2017  void SetCutGeometryVisibility(HCutGeometryVisibility visibility);
2018 
2019 
2022  void * GetWindowHandle() { return m_pWindowHandle; }
2023 
2027  bool GetInitialCameraSet() { return m_bInitialCameraSet; }
2028 
2029 
2030 
2037  int ObjectMovedEvent(HBaseView *view, HC_KEY key, HPoint *pos);
2038 
2042  void SetRecordCamera(bool rc);
2043 
2045  bool GetRecordMode() { return m_bRecordCamera; }
2046 
2050  void InjectEvent(HEventInfo const & hevent);
2051 
2052 
2057  void SetForceFastHiddenLine(bool force) { m_bForceFastHiddenLine = force; }
2058 
2060  bool GetForceFastHiddenLine() { return m_bForceFastHiddenLine; }
2061 
2067  void SetTransparency(char const * text, bool fast_z_sort=false);
2068 
2073  void SetLineAntialiasing( bool onoff );
2074 
2076  bool GetLineAntialiasing() { return m_bLineAntialiasing; }
2077 
2081  void SetTextAntialiasing( bool onoff );
2082 
2087  void SetDepthOfField(bool onoff, float strength = 1.0f);
2088 
2093  void SetDepthOfFieldRange(float near=0.0f, float far=0.0f);
2094 
2096  bool GetTextAntialiasing() { return m_bTextAntialiasing; }
2097 
2101  void SetIsoDefault(ViewMode vm) { m_IsoDefault = vm; }\
2102 
2104  ViewMode GetIsoDefault() { return m_IsoDefault; }
2105 
2112  void SetCullingThreshold(int cullingthreshold);
2113 
2117  int GetCullingThreshold();
2118 
2125  void SetHardExtent(int cutoff);
2126 
2130  int GetHardExtent();
2131 
2136  void BeginShellSelection();
2137 
2140  void EndShellSelection();
2141 
2143  HSelectionSet * GetHighlightSelection() { return m_pHighlight; }
2144 
2151  void SetViewAxis(HVector *front_axis, HVector *top_axis) { m_FrontAxis = front_axis; m_TopAxis = top_axis; }
2156  void GetViewAxis(HVector *front_axis, HVector *top_axis) { *front_axis = m_FrontAxis; *top_axis = m_TopAxis; }
2157 
2161  void SetDefaultHSRA();
2162 
2163 
2167  void SetMaximumUpdateTime(float mut) { m_MaximumUpdateTime = mut; }
2168 
2172  float GetMaximumUpdateTime() { return m_MaximumUpdateTime; }
2173 
2177  virtual const HSelectionHighlightMode GetHighlightMode() { return m_HighlightMode; }
2178 
2183  virtual void SetHighlightMode(HSelectionHighlightMode m);
2184 
2188  virtual void SetReferenceSelection(bool use_ref);
2189 
2196  bool GetKeyState(unsigned int key, int &flags);
2197 
2199  void ResetKeyState();
2200 
2204  void SetFastFitWorld(bool fw) { m_bFastFitWorld = fw; }
2205 
2209  void SetDetailedFitWorld(bool fw) { m_bDetailedFitWorld = fw; }
2210 
2214  bool GetFastFitWorld() { return m_bFastFitWorld; }
2215 
2219  bool GetDetailedFitWorld() { return m_bDetailedFitWorld; }
2220 
2226  void GetSceneExtents(HPoint &min, HPoint &max);
2227 
2231  void SetLightScaling(float sv);
2232 
2233  void SetXYSizeOverride(int x,int y) { m_XSize_override = x, m_YSize_override = y; }
2234 
2235 
2237  int GetXSize() {return m_XSize;}
2238 
2240  int GetYSize() {return m_YSize;}
2241 
2243  HViewSelectionLevel GetViewSelectionLevel();
2244 
2253  void SetViewSelectionLevel(HViewSelectionLevel level);
2254 
2263  void EnableTargetFrameRate(bool enable=true, int target=100, int threshold=10, int steps=5);
2264 
2269  float GetFramerate();
2270 
2272  FramerateMode GetFramerateMode();
2273 
2275  int GetFramerateCullingThreshold();
2276 
2281  int GetFramerateSteps();
2282 
2284  bool IsFramerateLodEnabled();
2285 
2299  void SetFramerateMode(FramerateMode mode, float framerate = 0.1f, int cullingthreshold = 150,
2300  bool enableLods = false, int steps = 20, int cutoff = 1);
2301 
2303  bool IsFrameRateEnabled();
2304 
2306  bool GetViewActive();
2307 
2309  void cleanupSimpList();
2310 
2314  void SetAnnotationResize(bool value);
2315 
2317  bool GetAnnotationResize() { return m_AnnotationCookie==0?false:true; }
2318 
2320  bool GetFirstUpdate() { return m_bFirstUpdate; }
2321 
2323  void SetDisplayHandlesOnDblClk(bool dh) { m_bDisplayHandlesOnDblClk = dh; }
2324 
2326  bool HasInitialView() { return m_has_initial_view; }
2327 
2329  void HasInitialView(bool does_it) { m_has_initial_view=does_it; }
2330 
2332  void ExhaustiveUpdate();
2333 
2335  bool GetUpdateNotFinished() { return m_bUpdateNotFinished; }
2336 
2338  void SetUpdateNotFinished(bool NotFinished) { m_bUpdateNotFinished = NotFinished; }
2339 
2340  /* This method sets the mousewheel sensitivity which is used to control the apparent sensitivity of the mousewheel for MVO operators.
2341  \param sensitivity value is strictly positive float. */
2342  void SetMouseWheelSensitivity(float sensitivity) {
2343  if (sensitivity > 0)
2344  m_MouseWheelSensitivity = sensitivity;
2345  }
2346  /* Use this in an operator to modify the return value of HEventInfo::GetMouseWheelDelta()
2347  \return value of the operator mousewheel sensitivity, a strictly positive value. */
2348  float GetMouseWheelSensitivity() { return m_MouseWheelSensitivity; }
2349 
2351  void SetSplatRendering(bool onoff);
2352 
2354  bool GetSplatRendering() { return m_bSplatRendering; };
2355 
2357  void SetSplatSize(int splat_size);
2358 
2360  int GetSplatSize() { return m_SplatSize; };
2361 
2363  void SetSplatSymbol(SplatSymbol symbol);
2364 
2366  SplatSymbol GetSplatSymbol() {return m_SplatSymbol;};
2367 
2368 
2372  void UpdateFakeHLRColor(HPoint paper_color);
2373 
2375  void SetHardwareAntialiasing(int antialiasinglevel) { m_HardwareAntialiasing = antialiasinglevel; }
2376 
2378  int GetHardwareAntialiasing() { return m_HardwareAntialiasing; }
2379 
2383  static void StaticForceUpdateRequest(void * view_pointer);
2384 
2385  /*
2386  This method can be used to visualize the internal bounding stored on segments
2387  and some types of geometry. The bounding is drawn outside of the model so it does not
2388  interfere with static trees. It is semi-transparent with a color that indicates the
2389  bounding density: blue is very dense, red is sparse, green is somewhere in between.
2390  \param draw_something If this value is false, any existing bounding geometry will simply
2391  be discarded. If it is true, a new bounding geometry will also be generated.
2392  \param key The key of the segment or geometry whose bounding should be visualized.
2393  \param incl_count The number of keys in the incl_path array.
2394  \param incl_path This array of keys should be structured for a PShow. That is, the leaf
2395  as the first entry followed by a series of include keys mapping a path to the view.
2396  */
2397  void VisualizeBounding(bool draw_something, HC_KEY key=INVALID_KEY, int incl_count=0, HC_KEY * incl_path=0);
2398 
2399 
2400  /*
2401  Retrieves the color set by an earlier call to SetFakeHLRColor.
2402  \return the color as an rgb triplet with values from 0.0 to 1.0.
2403  */
2404  HPoint GetFakeHLRColor();
2405 
2406  /*
2407  Sets the color to be used in fake hidden-line render mode.
2408  \param color An rgb triplet with values from 0.0 to 1.0.
2409  */
2410  void SetFakeHLRColor(HPoint color);
2411 
2412  /*
2413  Orients the camera to point at selected geometry and sets depth-of-field to keep it in focus.
2414  \param onoff passing true will focus on the selected geometry, passing false will remove an earlier depth-of-field setting.
2415  */
2416  void FocusOnSelection(bool onoff = true);
2417 
2418  /*
2419  \return true if the view is currently focused on a selection via a previous call to FocusOnSelection(), false otherwise.
2420  */
2421  bool GetFocusOnSelection() { return m_FocusedOnSelection; }
2422 
2424  HTouchManager *GetTouchManager() { return m_TouchManager; }
2425 
2426 protected:
2431  int m_CPMode;
2442  bool m_bDisplayHandlesOnDblClk;
2443  bool m_has_initial_view;
2444 
2447  int m_HardwareAntialiasing;
2455  HPoint m_SceneBoundingMin;
2456  HPoint m_SceneBoundingMax;
2457  bool m_bSceneBoundingSet;
2458  bool m_bFastFitWorld;
2459  bool m_bDetailedFitWorld;
2465  bool m_bNavCube;
2495 
2496 
2497  HC_KEY m_InfoTextKey;
2498 
2502  HC_KEY m_SceneLight[MaxLights];
2514  void (* m_pfEventChecker)(HIC_Rendition const *nr);
2515  bool (* m_pfKeyState)(unsigned int, int &);
2529  float m_IdleTime;
2541  unsigned long m_AnnotationCookie;
2542  unsigned long m_AxisResizeCookie;
2543  FramerateMode m_FramerateMode;
2544  bool m_bSplatRendering;
2545  int m_SplatSize;
2546  SplatSymbol m_SplatSymbol;
2547  bool m_FocusedOnSelection;
2548 
2555  void ComputeShadowParams(HPlane& shadow_plane, HPoint& light_pos);
2556 
2562  void AdjustShadowPlane(HPlane& shadow_plane, HPoint const & light_pos);
2563 
2569  void SetShadowParams(const HPlane& shadow_plane, const HPoint& light_pos,
2570  const HPoint* color = 0, const char * filter = 0);
2571 
2578  virtual void SetShadowParams(HShadow* shadowObj);
2579 
2582  void RefreshViewSize();
2583 
2589  void QueryDeviceCapabilities();
2590 
2599  virtual void UpdateInternal(bool antialias = false, bool force_update = false);
2600 
2601 
2606  virtual void SetupLights();
2607 
2608 private:
2609  float m_LastRecordTime;
2611  char * m_sDriverPath; // fully rooted pathname of driver instance
2612  char * m_sDriverType; // driver type; e.g. msw, opengl, x11
2613  char * m_sAlias;
2614  void * m_pWindowHandle;
2615  void * m_pColormap;
2616  void * m_pClipOverride;
2617  void * m_pWindowHandle2;
2618  struct vlist_s *m_SignalRequestsList;
2619  HBaseViewEmitMessageFunction emit_message_function;
2620  void * emit_message_function_user_data;
2621  HTClient * m_pUpdateTimerClient;
2622  bool m_bPrevBackplaneCullMode; // this caches backplane cull mode (which is switched off when capping planes are turned off with cutting planes on )
2623  bool m_bHasObjects;
2624  float m_fZoomLimit;
2625  int m_SuppressUpdate;
2626  int m_SuppressUpdateTick;
2627  bool m_bDynamicHighlighting;
2628  int m_XSize;
2629  int m_YSize;
2630  int m_XSize_override;
2631  int m_YSize_override;
2632  float m_LastMouseWheelTime;
2633  float m_MouseWheelSensitivity;
2634  bool m_KeyMap[256];
2635  int m_KeyFlags;
2636  bool m_bOwnDriver;
2637  bool m_bUpdateNotFinished;
2638  int m_NotFinishedCounter;
2639  HPoint m_FakeHLRColor;
2640  HConstFRSimpType **SimpList;
2641  int simpListLength;
2642  int m_OldCullingThreshold;
2643  float *m_pTempClipArray;
2644  ViewUpdateMode m_OldViewUpdateMode;
2645  bool m_UseExplicitShadowLight;
2646  HPoint m_ExplicitShadowLightDirection;
2647  int m_LightCount;
2648 
2649  //no default constructor
2650  HBaseView() {;};
2651 
2652  //obsolete
2653  HBaseView(HBaseModel *model, char const * alias, char const * driver_type,char const * instance_name, long window_handle, long colormap) {
2654  UNREFERENCED(model);
2655  UNREFERENCED(alias);
2656  UNREFERENCED(driver_type);
2657  UNREFERENCED(instance_name);
2658  UNREFERENCED(window_handle);
2659  UNREFERENCED(colormap);
2660  }
2661 
2662  //obsolete
2663  void RebindView(HBaseModel *model, char const * alias, char const * driver_type,char const * instance_name, long window_handle, long colormap) {
2664  UNREFERENCED(model);
2665  UNREFERENCED(alias);
2666  UNREFERENCED(driver_type);
2667  UNREFERENCED(instance_name);
2668  UNREFERENCED(window_handle);
2669  UNREFERENCED(colormap);
2670  }
2671 
2672 };
2673 
2674 
2675 #ifdef H_PACK_8
2676 #pragma pack(pop)
2677 #endif
2678 
2679 #endif
self-explanatory
Definition: HBaseView.h:99
bool GetFirstUpdate()
Definition: HBaseView.h:2320
HBaseOperator * m_pOperator
Definition: HBaseView.h:2505
bool GetAllowInteractiveCutGeometry()
Definition: HBaseView.h:2000
void SetKeyStateCallback(bool(*KeyState)(unsigned int, int &))
Definition: HBaseView.h:772
HUndoManager * m_pUndoManager
Definition: HBaseView.h:2519
SplatSymbol
Definition: HBaseView.h:282
no handedness; only applies to polygon-handedness
Definition: HBaseView.h:176
bool m_bUpdateRequested
Definition: HBaseView.h:2517
void ClearUpdateRequest()
Definition: HBaseView.h:1630
void(* HBaseViewEmitMessageFunction)(const char *message, unsigned int length, void *user_data)
Definition: HBaseView.h:296
bool m_bBeginShellSelection
Definition: HBaseView.h:2441
bool GetShadowRegenerationMode()
Definition: HBaseView.h:1872
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:979
self-explanatory
Definition: HBaseView.h:101
HC_KEY GetOverwriteKey()
Definition: HBaseView.h:941
same as HReanderShaded but with lines visible
Definition: HBaseView.h:79
bool GetSpritingMode()
Definition: HBaseView.h:902
bool GetCPFaceVisibility()
Definition: HBaseView.h:728
float m_SmoothTransitionDuration
Definition: HBaseView.h:2467
FramerateMode
Definition: HBaseView.h:147
MultiThreadingType
Definition: HBaseView.h:193
void InvalidateSceneBounding()
Definition: HBaseView.h:1539
void SetCuttingPlaneGeomKey(HC_KEY cuttingplanegeom_key)
Definition: HBaseView.h:1000
HC_KEY m_ViewKey
Definition: HBaseView.h:2474
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:2430
opengl p-buffer shadow generation
Definition: HBaseView.h:244
bool m_bAllowInteractiveShadows
Definition: HBaseView.h:2532
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:2473
ViewUpdateMode
Definition: HBaseView.h:232
bool m_bShadowRegeneration
Definition: HBaseView.h:2525
bool IsLightFollowCamera()
Definition: HBaseView.h:1242
opengl software shadow generation
Definition: HBaseView.h:245
void SetViewKey(HC_KEY view_key)
Definition: HBaseView.h:925
negative X, positive Y, positive Z
Definition: HBaseView.h:106
const char * GetDriverPath()
Definition: HBaseView.h:687
HBaseOperator * GetOperator()
Definition: HBaseView.h:1200
HUtilityAntialiasing * m_pAntialiasing
Definition: HBaseView.h:2461
void SetSmoothTransitionDuration(float duration)
Definition: HBaseView.h:1236
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:923
negative X, positive Y, positive Z
Definition: HBaseView.h:108
HC_KEY m_FakeHLRStyle
Definition: HBaseView.h:2427
ViewUpdateMode GetViewUpdateMode()
Definition: HBaseView.h:1686
void HasInitialView(bool does_it)
Definition: HBaseView.h:2329
self-explanatory
Definition: HBaseView.h:135
unknown mode
Definition: HBaseView.h:161
HC_KEY GetDefaultLightKey(int which=0)
Definition: HBaseView.h:1097
void SetCurrentOperator(HBaseOperator *NewOperator)
Definition: HBaseView.h:1195
bool m_bMouseMove
Definition: HBaseView.h:2523
bool GetUpdateNotFinished()
Definition: HBaseView.h:2335
fake hidden line
Definition: HBaseView.h:86
No display lists.
Definition: HBaseView.h:185
virtual void SetCuttingPlaneRegenerationMode(bool onoff)
Definition: HBaseView.h:1867
The HObjectManager class keeps track of generic MVO objects.
Definition: HEventManager.h:137
int GetXSize()
Definition: HBaseView.h:2237
self-explanatory
Definition: HBaseView.h:96
HConstantFrameRate * m_pConstantFrameRate
Definition: HBaseView.h:2509
DisplayListType m_DisplayListType
Definition: HBaseView.h:2450
bool m_bCuttingPlaneRegeneration
Definition: HBaseView.h:2527
bool m_bFirstUpdate
Definition: HBaseView.h:2530
bool GetSmoothTransition()
Definition: HBaseView.h:1226
void SetZoomLimit(float zoomLimit)
Definition: HBaseView.h:960
void UpdateAxisTriad()
Definition: HBaseView.h:1058
bool(* HSignalNotifyFunction)(int signal, void *signal_data, void *user_data)
Definition: HBaseView.h:54
HC_KEY m_CuttingPlanesKey
Definition: HBaseView.h:2486
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:952
virtual HFileInputResult FileInput(const char *FileName, HInputHandler *handler, HInputHandlerOptions *options=0)
Definition: HBaseView.h:605
bool m_bAxisTriadTransparencyAllowed
Definition: HBaseView.h:2435
bool GetForceFastHiddenLine()
Definition: HBaseView.h:2060
virtual void SetShadowRegenerationToggle()
Definition: HBaseView.h:1857
int GetSplatSize()
Definition: HBaseView.h:2360
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:655
HSelectionSet * m_pHighlight
Definition: HBaseView.h:2508
The HCamera class is the data type of a HOOPS Camera Attribute.
Definition: HUtility.h:540
bool GetDetailedFitWorld()
Definition: HBaseView.h:2219
void SetEmitMessageFunction(HBaseViewEmitMessageFunction new_emit_message_function, void *user_data=0)
Definition: HBaseView.h:1394
HImCuttingGeometry * m_pHImCuttingGeometry
Definition: HBaseView.h:2460
bool GetTransparentSelectionBoxMode()
Definition: HBaseView.h:1101
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:2533
virtual bool GetHasObjects()
Definition: HBaseView.h:1946
bool m_bLButtonDown
Definition: HBaseView.h:2522
void SetUpdateInterrupted(int val)
Definition: HBaseView.h:1024
clamps to LOD1
Definition: HBaseView.h:80
void SetAllowInteractiveCutGeometry(bool onoff)
Definition: HBaseView.h:2006
HSelectionSet * GetHighlightSelection()
Definition: HBaseView.h:2143
self-explanatory
Definition: HBaseView.h:174
bool GetCPLineVisibility()
Definition: HBaseView.h:725
float GetSmoothTransitionDuration()
Definition: HBaseView.h:1239
self-explanatory
Definition: HBaseView.h:175
HC_KEY m_IntersectPolylinesKey
Definition: HBaseView.h:2490
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:2101
Fast hidden line.
Definition: HBaseView.h:206
HVector m_TopAxis
Definition: HBaseView.h:2471
const char * GetDriverType()
Definition: HBaseView.h:690
bool m_bCuttingPlanesVisibility
Definition: HBaseView.h:2433
bool GetTextAntialiasing()
Definition: HBaseView.h:2096
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:2465
void SetBBoxGeometryKey(HC_KEY bbox_key)
Definition: HBaseView.h:984
HLRMode
Definition: HBaseView.h:203
bool m_bCPLineVisibility
Definition: HBaseView.h:2429
HandednessMode
Definition: HBaseView.h:172
virtual void SetShadowRegenerationMode(bool onoff)
Definition: HBaseView.h:1853
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:2520
The HSelectionSet class manages a list of selected items.
Definition: HSelectionSet.h:66
AxisMode m_bAxisMode
Definition: HBaseView.h:2463
#define HC_KEY
HOutputHandler an abstract base class for model and image output.
Definition: HIOManager.h:1247
HSelectionHighlightMode
Definition: HGlobals.h:547
bool m_bTransparentSelectionBox
Definition: HBaseView.h:2539
Definition: HGlobals.h:310
Definition: HTManager.h:157
void SetFastFitWorld(bool fw)
Definition: HBaseView.h:2204
Analytic hidden line.
Definition: HBaseView.h:205
HEventManager * m_pEventManager
Definition: HBaseView.h:2518
HC_KEY m_ProgressBarKey
Definition: HBaseView.h:2494
HC_KEY m_OverwriteKey
Definition: HBaseView.h:2478
self-explanatory
Definition: HBaseView.h:97
HC_KEY GetIncludeLinkKey()
Definition: HBaseView.h:928
void SetSpritingMode(bool onoff)
Definition: HBaseView.h:909
virtual const HSelectionHighlightMode GetHighlightMode()
Definition: HBaseView.h:2177
HC_KEY m_WindowspaceKey
Definition: HBaseView.h:2482
virtual bool GetCameraChanged()
Definition: HBaseView.h:1880
void SetUpdateNotFinished(bool NotFinished)
Definition: HBaseView.h:2338
void(*)(HIC_Rendition const *nr) GetEventCheckerCallback()
Definition: HBaseView.h:778
float m_IdleTime
Definition: HBaseView.h:2529
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:2431
star bloom
Definition: HBaseView.h:252
unknown view mode
Definition: HBaseView.h:124
virtual void SetInvertMouseWheelZoom(bool val=true)
Definition: HBaseView.h:1885
Geometry-level display lists.
Definition: HBaseView.h:186
bool GetDynamicHighlighting()
Definition: HBaseView.h:1719
HSelectionHighlightMode m_HighlightMode
Definition: HBaseView.h:2449
bool GetSceneBoundingSet()
Definition: HBaseView.h:1530
ViewUpdateMode m_ViewUpdateMode
Definition: HBaseView.h:2516
class HDebugZBuffer * m_pDebugZBuffer
Definition: HBaseView.h:2521
void SetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2151
bool GetFastFitWorld()
Definition: HBaseView.h:2214
same as HViewIsoxYz
Definition: HBaseView.h:115
bool EmittingMessages()
Definition: HBaseView.h:1404
unknown mode
Definition: HBaseView.h:133
void SetSuppressUpdateTick(bool suppress)
Definition: HBaseView.h:1654
HCutGeometryVisibility
Definition: HGlobals.h:102
HEventInfo * m_pEvent
Definition: HBaseView.h:2506
bool m_bTextAntialiasing
Definition: HBaseView.h:2440
currently does nothing
Definition: HBaseView.h:67
bool GetAnnotationResize()
Definition: HBaseView.h:2317
void SetHardwareAntialiasing(int antialiasinglevel)
Definition: HBaseView.h:2375
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:1015
bool GetCuttingPlaneRegenerationMode()
Definition: HBaseView.h:1861
void SetDisplayHandlesOnDblClk(bool dh)
Definition: HBaseView.h:2323
bool m_bSmoothTransition
Definition: HBaseView.h:2466
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:2480
bool m_bLineAntialiasing
Definition: HBaseView.h:2439
AxisMode GetAxisMode()
Definition: HBaseView.h:1044
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:1213
ViewMode
Definition: HBaseView.h:93
HRenderMode m_RenderMode
Definition: HBaseView.h:2503
HSelectionSet * m_pSelection
Definition: HBaseView.h:2507
LightingIntMode
Definition: HBaseView.h:131
self-explanatory
Definition: HBaseView.h:151
void RequestUpdate()
Definition: HBaseView.h:1626
void SetNavCube(bool onoff)
Definition: HBaseView.h:1223
HC_KEY GetAxisTriadKey()
Definition: HBaseView.h:1210
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:2468
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:2045
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:2057
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:1206
float GetMaximumUpdateTime()
Definition: HBaseView.h:2172
bool GetAllowInteractiveShadows()
Definition: HBaseView.h:1975
DisplayListType
Definition: HBaseView.h:183
Definition: HIOManager.h:892
HC_KEY m_AxisTriadKey
Definition: HBaseView.h:2492
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:1414
virtual HBaseModel * GetModel()
Definition: HBaseView.h:704
none view mode
Definition: HBaseView.h:95
void SetDetailedFitWorld(bool fw)
Definition: HBaseView.h:2209
bool HasInitialView()
Definition: HBaseView.h:2326
HAnimateMode
Definition: HBaseView.h:1509
HC_KEY m_FakeHLRSource
Definition: HBaseView.h:2428
bool m_bCuttingPlanesExist
Definition: HBaseView.h:2432
virtual float GetDefaultSelectionProximity()
Definition: HBaseView.h:1967
void SetCuttingPlanesKey(HC_KEY cuttingplanes_key)
Definition: HBaseView.h:992
bool m_bSpritingAllowed
Definition: HBaseView.h:2434
HBaseOperator * m_pHandleOperator
Definition: HBaseView.h:2531
bool m_bGeometryChanged
Definition: HBaseView.h:2454
bool GetSuppressUpdateTick()
Definition: HBaseView.h:1664
Segment-level display lists.
Definition: HBaseView.h:187
HMarkupManager * m_pMarkupManager
Definition: HBaseView.h:2462
edges/lines only
Definition: HBaseView.h:63
Square.
Definition: HBaseView.h:285
HVector m_FrontAxis
Definition: HBaseView.h:2470
bool m_bInvertMouseWheelZoom
Definition: HBaseView.h:2540
ViewMode m_ViewMode
Definition: HBaseView.h:2504
image driver shadow generation
Definition: HBaseView.h:243
int m_AxisWindowSize
Definition: HBaseView.h:2436
HSharedKey * GetSharedKey()
Definition: HBaseView.h:1499
bool GetCuttingPlanesVisibility()
Definition: HBaseView.h:753
void * GetWindowHandle()
Definition: HBaseView.h:2022
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:103
void SetAllowInteractiveShadows(bool onoff)
Definition: HBaseView.h:1984
Definition: HConstantFrameRate.h:79
HCamera m_InitialCamera
Definition: HBaseView.h:2536
int m_InUpdateInternal
Definition: HBaseView.h:2513
ViewMode m_IsoDefault
Definition: HBaseView.h:2448
bool GetSuppressUpdate()
Definition: HBaseView.h:1647
unknown mode
Definition: HBaseView.h:149
The HEventInfo class stores and manages event information.
Definition: HEventInfo.h:207
bool m_bForceFastHiddenLine
Definition: HBaseView.h:2438
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:1559
void SetSelection(HSelectionSet *selection)
Definition: HBaseView.h:701
float m_DefaultSelectionProximity
Definition: HBaseView.h:2534
UpDirection
Definition: HBaseView.h:221
Gooch Shaded.
Definition: HBaseView.h:85
HShadowMode
Definition: HGlobals.h:92
HC_KEY m_SceneKey
Definition: HBaseView.h:2476
void SetMaximumUpdateTime(float mut)
Definition: HBaseView.h:2167
HSharedKey * m_pSharedKey
Definition: HBaseView.h:2511
HShadowMode m_ShadowMode
Definition: HBaseView.h:2510
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:1409
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:1622
ProjMode
Definition: HBaseView.h:159
void SetSuppressUpdate(bool suppress)
Definition: HBaseView.h:1637
self-explanatory
Definition: HBaseView.h:217
HOpCameraManipulate * m_pManipulateOperator
Definition: HBaseView.h:2524
bool m_bCameraChanged
Definition: HBaseView.h:2528
self-explanatory
Definition: HBaseView.h:100
bool GetSplatRendering()
Definition: HBaseView.h:2354
bool m_bInitialCameraSet
Definition: HBaseView.h:2537
virtual bool GetInvertMouseWheelZoom()
Definition: HBaseView.h:1888
void SetIntersectPolylinesKey(HC_KEY intersectpolylines_key)
Definition: HBaseView.h:1007
int m_UpdateInterrupted
Definition: HBaseView.h:2512
virtual void SetCameraChanged(bool val=true)
Definition: HBaseView.h:1877
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:2501
int GetYSize()
Definition: HBaseView.h:2240
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:2464
Like AxisOn, but centered differently.
Definition: HBaseView.h:216
bool m_bShadowRegenerationToggle
Definition: HBaseView.h:2526
HC_KEY m_lIncludeLinkKey
Definition: HBaseView.h:2500
shell/mesh silhouette edges
Definition: HBaseView.h:65
self-explanatory
Definition: HBaseView.h:214
void SetDebugZBuffer(HDebugZBuffer *dzb)
Definition: HBaseView.h:1041
hidden line removal
Definition: HBaseView.h:66
ViewMode GetIsoDefault()
Definition: HBaseView.h:2104
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:2378
SplatSymbol GetSplatSymbol()
Definition: HBaseView.h:2366
bool GetInitialCameraSet()
Definition: HBaseView.h:2027
negative X, positive Y, positive Z
Definition: HBaseView.h:104
void SetIncludeLinkKey(HC_KEY link)
Definition: HBaseView.h:930
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:971
Round.
Definition: HBaseView.h:284
Fake hidden line.
Definition: HBaseView.h:207
Definition: HDebugZBuffer.h:29
HTouchManager * GetTouchManager()
Definition: HBaseView.h:2424
HTouchManager * m_TouchManager
Definition: HBaseView.h:2445
The driver returns segment objects from selections.
Definition: HBaseView.h:274
HC_KEY GetBBoxGeometryKey()
Definition: HBaseView.h:982
HC_KEY m_CuttingPlaneGeomKey
Definition: HBaseView.h:2488
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:109
int m_WindowColorPercentage
Definition: HBaseView.h:2469
flat shading
Definition: HBaseView.h:69
bool HaveMarkupManager()
Definition: HBaseView.h:485
float m_MaximumUpdateTime
Definition: HBaseView.h:2535
HC_KEY m_ConstructionKey
Definition: HBaseView.h:2484
bool m_bRecordCamera
Definition: HBaseView.h:2538
same as HViewIsoXYz
Definition: HBaseView.h:114
HShadowMode GetShadowMode()
Definition: HBaseView.h:1074
self-explanatory
Definition: HBaseView.h:102
virtual bool GeometryChanged()
Definition: HBaseView.h:1562
HC_KEY GetProgressBarKey()
Definition: HBaseView.h:1010
same as HViewIsoxYZ
Definition: HBaseView.h:113
bool GetLineAntialiasing()
Definition: HBaseView.h:2076
int GetLightCount()
Definition: HBaseView.h:1259
virtual HBaseOperator * GetHandleOperator()
Definition: HBaseView.h:1962
Definition: HSharedKey.h:80
virtual void SetHandleOperator(HBaseOperator *op)
Definition: HBaseView.h:1957
void GetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2156
HConstantFrameRate * GetConstantFrameRateObject()
Definition: HBaseView.h:761
HViewSelectionLevel
Definition: HBaseView.h:271
void SetSceneKey(HC_KEY scene_key)
Definition: HBaseView.h:938
void SetTransparentSelectionBoxMode(bool mode)
Definition: HBaseView.h:1106