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 
820  virtual void SetFontSize(const char *font_size, bool emit_message=false);
821 
826  virtual void SetFontSizeFromMessage(const char *in_data, unsigned int data_length);
827 
829  bool GetBackplaneCulling();
830 
837  void SetBackplaneCulling(bool cull);
838 
842  ProjMode GetProjMode();
843 
847  void SetProjMode(ProjMode mode);
848 
850  DisplayListType GetDisplayListType();
851 
855  void SetDisplayListType(DisplayListType type);
856 
858  bool GetDisplayListMode();
859 
863  void SetDisplayListMode(bool mode);
864 
866  HandednessMode GetPolygonHandednessMode();
867 
879  void SetPolygonHandednessMode(HandednessMode);
880 
883  bool GetLodMode();
884 
891  void SetLodMode(bool onoff);
892 
894  bool GetSpritingMode() { return m_bSpritingAllowed; }
895 
901  void SetSpritingMode(bool onoff) { m_bSpritingAllowed = onoff; }
902 
906  int GetLodThreshold();
907 
912  void SetLodThreshold(int val);
913 
915  HC_KEY GetViewKey() { return m_ViewKey; }
917  void SetViewKey( HC_KEY view_key ) { m_ViewKey = view_key; }
918 
920  HC_KEY GetIncludeLinkKey() { return m_lIncludeLinkKey; }
922  void SetIncludeLinkKey( HC_KEY link ) { m_lIncludeLinkKey = link; }
923 
925  HC_KEY GetSceneKey() { return m_SceneKey; }
926 
930  void SetSceneKey( HC_KEY scene_key ) { m_SceneKey = scene_key; }
931 
933  HC_KEY GetOverwriteKey() { return m_OverwriteKey; }
934 
936  HC_KEY GetShadowMapSegmentKey();
937 
939  HC_KEY GetLightsKey() { return m_LightsKey; }
940 
944  void SetLightsKey( HC_KEY lights_key ) { m_LightsKey = lights_key; }
945 
947  float GetZoomLimit() { return m_fZoomLimit; }
948 
952  void SetZoomLimit( float zoomLimit ) { m_fZoomLimit = zoomLimit; }
953 
955  virtual void SetZoomLimit();
956 
958  HC_KEY GetWindowspaceKey() { return m_WindowspaceKey; }
959 
963  void SetWindowspaceKey( HC_KEY winspace_key ) { m_WindowspaceKey = winspace_key; }
964 
966  HC_KEY GetConstructionKey() { return m_ConstructionKey; }
967 
971  void SetConstructionKey( HC_KEY construct_key ) { m_ConstructionKey = construct_key; }
972 
974  HC_KEY GetBBoxGeometryKey() { return m_BBoxGeometryKey; }
976  void SetBBoxGeometryKey( HC_KEY bbox_key ) { m_BBoxGeometryKey = bbox_key; }
977 
979  HC_KEY GetCuttingPlanesKey() { return m_CuttingPlanesKey; }
980 
984  void SetCuttingPlanesKey( HC_KEY cuttingplanes_key ) { m_CuttingPlanesKey = cuttingplanes_key; }
985 
987  HC_KEY GetCuttingPlaneGeomKey() { return m_CuttingPlaneGeomKey; }
988 
992  void SetCuttingPlaneGeomKey( HC_KEY cuttingplanegeom_key ) { m_CuttingPlaneGeomKey = cuttingplanegeom_key; }
994  HC_KEY GetIntersectPolylinesKey() { return m_IntersectPolylinesKey; }
995 
999  void SetIntersectPolylinesKey( HC_KEY intersectpolylines_key ) { m_IntersectPolylinesKey = intersectpolylines_key; }
1000 
1002  HC_KEY GetProgressBarKey() { return m_ProgressBarKey; }
1007  void SetProgressBarKey( HC_KEY key ) { m_ProgressBarKey = key; }
1008 
1009 
1011  int GetUpdateInterrupted() { return m_UpdateInterrupted; }
1012 
1016  void SetUpdateInterrupted( int val ) { m_UpdateInterrupted = val; }
1017 
1019  float GetIdleTime();
1020 
1022  void ResetIdleTime();
1023 
1026  HQuickMovesMethod GetQuickMovesMethod () const;
1027 
1029  class HDebugZBuffer *GetDebugZBuffer() { return m_pDebugZBuffer; }
1030 
1033  void SetDebugZBuffer(HDebugZBuffer *dzb) { m_pDebugZBuffer = dzb; };
1034 
1036  AxisMode GetAxisMode() {return m_bAxisMode; }
1037 
1042  virtual void SetAxisMode(AxisMode mode);
1043 
1047  virtual void OnSetAxisMode( AxisMode mode );
1048 
1050  void UpdateAxisTriad() { SetAxisMode(GetAxisMode()); }
1051 
1057  virtual void AdjustAxisWindow( int axis_window_pixels_in = -1, HIntRectangle *rect_in=0 );
1058 
1060  static void AdjustAxisWindowCallback(int signal, void * signal_data, void * user_data);
1061 
1063  static void AdjustWindowCallback(int signal, void * signal_data, void * user_data);
1064 
1066  HShadowMode GetShadowMode() {return m_ShadowMode; }
1067 
1072  virtual void SetShadowMode (HShadowMode sm, bool saveMode = true);
1073 
1085  virtual void SetReflectionPlane(bool state, float opacity=0.5f, bool fading=true, bool attenuate=false,
1086  float hither=0.0f, float yon=1.0f, bool blur=false, int blur_level=1);
1087 
1089  HC_KEY GetDefaultLightKey(int which = 0) { return m_SceneLight[which]; }
1090 
1091 
1093  bool GetTransparentSelectionBoxMode() {return m_bTransparentSelectionBox; }
1094 
1098  void SetTransparentSelectionBoxMode(bool mode) { m_bTransparentSelectionBox = mode; }
1099 
1105  virtual void DeleteSelectionList(bool emit_message=false);
1106 
1113  void RotateOnUpdate(const char *sname);
1114 
1122  virtual void SetWindowColor(HPoint rgb, bool emit_message=false);
1123 
1134  virtual void SetWindowColor(HPoint rgbtop, HPoint rgbbottom, bool emit_message=false);
1135 
1147  virtual void SetWindowColorRange(HPoint rgbtop, HPoint rgbbottom, int percentage, bool emit_message=false);
1148 
1149 
1157  virtual void SetWindowMaterial(const char * name, bool emit_message=false);
1158 
1164  virtual void SetWindowColorFromMessage(const char *in_data, unsigned int data_length);
1165 
1169  void GetWindowColor(HPoint &color_out);
1170 
1175  void GetWindowColor(HPoint &color_top, HPoint &color_bottom);
1176 
1182  void GetWindowColor(HPoint &color_top, HPoint &color_bottom, int &percentage);
1183 
1188  void GetWindowMaterial(char * out_material, char * out_pattern);
1189 
1193  void SetOperator(HBaseOperator *NewOperator);
1194 
1195 
1197  void SetCurrentOperator(HBaseOperator *NewOperator) { SetOperator(NewOperator); }
1198 
1202  HBaseOperator* GetOperator() { return m_pOperator; }
1203 
1208  HBaseOperator* GetCurrentOperator() { return m_pOperator; }
1209 
1210 
1212  HC_KEY GetAxisTriadKey() {return m_AxisTriadKey;}
1213 
1215  bool GetHideOverlappedText(){ return m_bHideOverlappedText;}
1216 
1220  void SetHideOverlappedText(bool hide);
1221 
1225  void SetNavCube(bool onoff) { m_bNavCube = onoff;}
1226 
1228  bool GetSmoothTransition() { return m_bSmoothTransition;}
1229 
1233  void SetSmoothTransition(bool onoff) { m_bSmoothTransition = onoff;}
1234 
1238  void SetSmoothTransitionDuration(float duration) { m_SmoothTransitionDuration = duration;}
1239 
1241  float GetSmoothTransitionDuration() { return m_SmoothTransitionDuration;}
1242 
1244  bool IsLightFollowCamera(){return m_bLightFollowsCamera;}
1245 
1249  void SetLightFollowsCamera(bool onoroff);
1250 
1251  static const int MaxLights = 6;
1252 
1256  void SetLightCount(int count);
1257 
1261  int GetLightCount() { return m_LightCount; }
1262 
1271  virtual void CameraPositionChanged(bool emit_message=false, bool smooth_camera_transition=false);
1272 
1273 
1277  virtual void PrepareForCameraChange();
1278 
1279 
1289  virtual void SetCamera(HPoint pos, HPoint tar, HPoint up, float fieldx, float fieldy, const char *proj);
1290 
1300  virtual void SetInitialCamera(HPoint pos, HPoint tar, HPoint up, float fieldx, float fieldy, char const * proj);
1301 
1302 
1312  virtual void GetCamera(HPoint *pos, HPoint *tar, HPoint *up, float &fieldx, float &fieldy, char *proj);
1313 
1318  virtual void SetCamera(HCamera camera);
1319 
1324  virtual void GetCamera(HCamera *camera);
1325 
1331  virtual void SetCameraFromMessage(const char *data, unsigned int data_length);
1332 
1340  virtual void InsertHSFData(const char *segment, const char *in_data, unsigned int data_length, bool emit_message=false);
1341 
1347  virtual void InsertHSFDataFromMessage(const char *in_data, unsigned int data_length);
1348 
1355  virtual void EmitHSFData(const char *segment, const char *in_data, unsigned int data_length);
1356 
1362  virtual void SetRenderMode (HRenderMode NewRenderMode, bool emit_message=false);
1363 
1369  virtual void SetRenderModeFromMessage(const char *in_data, unsigned int data_length);
1370 
1374  virtual void EmitFlushMessage();
1375 
1383  virtual void FlushFromMessage(const char *in_data, unsigned int data_length);
1384 
1385 
1391  virtual void Flush(bool emit_message=false);
1392 
1400  HBaseViewEmitMessageFunction new_emit_message_function,
1401  void * user_data=0) {
1402  emit_message_function=new_emit_message_function;
1403  emit_message_function_user_data=user_data;};
1404 
1409  bool EmittingMessages() {return emit_message_function != 0;};
1410 
1414  HBaseViewEmitMessageFunction GetEmitMessageFunction() {return emit_message_function;};
1415 
1419  void * GetEmitMessageFunctionUserData() {return emit_message_function_user_data;};
1420 
1426  virtual void EmitSelectMessage(HC_KEY key, bool isSelect);
1427 
1433  virtual void SelectFromMessage(const char *in_data, unsigned int data_length);
1434 
1438  virtual void EmitDeSelectAllMessage();
1439 
1440 
1444  virtual void EmitDeleteSelectionListMessage();
1445 
1446 
1450  virtual void DeleteSelectionListFromMessage();
1451 
1452 
1456  virtual void DeSelectAllFromMessage();
1457 
1458 
1463  virtual void EmitSetModellingMatrixMessage(HC_KEY key);
1464 
1465 
1470  virtual void EmitSetModellingMatrixMessage();
1471 
1479  virtual void EmitSegment(HC_KEY key, bool emit_contents_only = false);
1480 
1485  virtual void EmitDeleteByKeyMessage(HC_KEY key);
1486 
1492  virtual void DeleteByKeyFromMessage(const char *in_data, unsigned int data_length);
1493 
1499  virtual void SetModellingMatrixFromMessage(const char *in_data, unsigned int data_length);
1500 
1504  HSharedKey * GetSharedKey() {return m_pSharedKey;};
1505 
1506 
1510  virtual void StartSharedKey();
1511 
1512 
1515  HAnimateScene = 0x00000001
1516  };
1517 
1518 
1526  virtual void Animate (int animation_steps = 30, HAnimateMode animate_flags = HAnimateScene, int MaxRotation = 360);
1527 
1530  virtual void SetGeometryChanged();
1531 
1535  bool GetSceneBoundingSet() { return m_bSceneBoundingSet; }
1536 
1541  void SetSceneBounding(HPoint &min, HPoint &max);
1542 
1544  void InvalidateSceneBounding() { m_bSceneBoundingSet = false; }
1545 
1549  void SetFastMarkerDrawing(bool b_fast);
1550 
1554  bool GetFastMarkerDrawing();
1555 
1561  void SetDoubleBuffering(bool double_buffer);
1562 
1564  virtual void ClearGeometryChanged() {m_bGeometryChanged = false; };
1565 
1567  virtual bool GeometryChanged() {return m_bGeometryChanged;};
1568 
1574  unsigned long SetSignalNotify( int signal, HSignalNotifyFunction callback, void *user_data );
1575 
1578  void UnSetSignalNotify( unsigned long cookie );
1579 
1584  void SetColorInterpolation(bool onoff);
1585 
1591  void SetColorIndexInterpolation(bool onoff, bool isolines = false);
1592 
1598  bool GetColorIndexInterpolation(char * option = 0);
1599 
1608  bool GetFrameBufferEffectsOptions(char * options = 0, int *border = 0);
1609 
1615  void Notify(int signal, void * signal_data = 0);
1616 
1623  int UpdateEvent(bool antialias = false, bool forceUpdate = false);
1627  bool GetUpdateRequested() { return m_bUpdateRequested; }
1631  void RequestUpdate() { m_bUpdateRequested = true; }
1635  void ClearUpdateRequest() { m_bUpdateRequested = false; }
1636 
1642  void SetSuppressUpdate(bool suppress) {
1643  suppress?m_SuppressUpdate++:m_SuppressUpdate--;
1644  if (m_SuppressUpdate<0)
1645  m_SuppressUpdate = 0;
1646  }
1647 
1652  bool GetSuppressUpdate() { return m_SuppressUpdate > 0; }
1653 
1659  void SetSuppressUpdateTick(bool suppress) {
1660  suppress?m_SuppressUpdateTick++:m_SuppressUpdateTick--;
1661  if (m_SuppressUpdateTick<0)
1662  m_SuppressUpdateTick = 0;
1663  }
1664 
1669  bool GetSuppressUpdateTick() { return m_SuppressUpdateTick > 0; }
1670 
1686  void SetViewUpdateMode(ViewUpdateMode mode, float rate = 0.01f);
1687 
1691  ViewUpdateMode GetViewUpdateMode() { return m_ViewUpdateMode; }
1692 
1700  static bool UpdateTick(float request_time, float actual_time, void * user_data);
1701 
1709  static bool StreamProgressCallback(unsigned long so_far, unsigned long expected, void * user_data);
1710 
1712  void FlushProgressBar();
1713 
1715  HUndoManager *GetUndoManager();
1716 
1718  HEventManager *GetEventManager();
1719 
1721  HObjectManager *GetHObjectManager();
1722 
1724  bool GetDynamicHighlighting() { return m_bDynamicHighlighting; }
1725 
1729  void SetDynamicHighlighting(bool state);
1730 
1736  virtual int OnNoButtonDownAndMove(HEventInfo &hevent);
1737 
1742  virtual int OnLButtonDownAndMove(HEventInfo &hevent);
1743 
1749  virtual int OnLButtonDblClk(HEventInfo &hevent);
1750 
1755  virtual int OnRButtonDownAndMove(HEventInfo &hevent);
1760  virtual int OnMButtonDownAndMove(HEventInfo &hevent);
1765  virtual int OnLRButtonDownAndMove(HEventInfo &hevent);
1766 
1771  virtual int OnLButtonDown(HEventInfo &hevent);
1772 
1777  virtual int OnMouseMove(HEventInfo &hevent);
1778 
1784  virtual int OnLButtonUp(HEventInfo &hevent);
1785 
1786 #if 0
1787 
1791  virtual int OnMouseWheel(HEventInfo &hevent);
1792 #else
1793 
1797  virtual int OnMouseWheel(HEventInfo &hevent);
1798 
1801  virtual bool ComputeReasonableTarget(HPoint & new_tar, HPoint const & mouse_win, HPoint const & tar_orig);
1802 
1803  /* This method adjusts the old field to the new target so the picture on the screen won't change. */
1804  void ComputeNewField(float & width, float & height, HPoint const & new_tar,
1805  HCamera const & old_camera);
1806 #endif
1807 
1809  virtual int OnKeyDown(HEventInfo &hevent);
1810 
1812  virtual int OnKeyUp(HEventInfo &hevent);
1813 
1816  virtual void SetShadowColor(HPoint color);
1817 
1822  virtual void SetShadowLightDirection(bool explicit_light, HPoint const * direction = 0);
1823 
1828  virtual bool GetShadowLightDirection(HPoint * direction = 0);
1829 
1833  virtual void SetShadowIgnoresTransparency(bool ignore);
1834 
1838  virtual bool GetShadowIgnoresTransparency();
1839 
1842  virtual void DoDynamicHighlighting(HPoint mouse_pos);
1843 
1846  virtual void SetShadowResolution(int res);
1847 
1850  virtual void SetShadowBlurring(int blur);
1851 
1853  virtual void InternalUpdate();
1854 
1858  virtual void SetShadowRegenerationMode(bool onoff) { m_bShadowRegeneration = onoff; }
1859 
1862  virtual void SetShadowRegenerationToggle() { m_bShadowRegenerationToggle = true; m_bShadowRegeneration = false; }
1863 
1866  bool GetCuttingPlaneRegenerationMode() { return m_bCuttingPlaneRegeneration; }
1867 
1872  virtual void SetCuttingPlaneRegenerationMode(bool onoff) { m_bCuttingPlaneRegeneration = onoff; }
1873 
1877  bool GetShadowRegenerationMode() { return m_bShadowRegeneration; }
1878 
1882  virtual void SetCameraChanged( bool val=true ) { m_bCameraChanged = val; if(val) ResetIdleTime(); }
1883 
1885  virtual bool GetCameraChanged() { return m_bCameraChanged; }
1886 
1890  virtual void SetInvertMouseWheelZoom( bool val=true ) { m_bInvertMouseWheelZoom = val;}
1891 
1893  virtual bool GetInvertMouseWheelZoom() { return m_bInvertMouseWheelZoom; }
1894 
1895 
1899  virtual void SetAxisManipulateOperator(HOpCameraManipulate *op);
1900 
1905  virtual void SetVisibilitySelectionMode(bool onoff);
1906 
1908  virtual bool GetVisibilitySelectionMode();
1909 
1912  virtual void SetRelatedSelectionLimit(int limit);
1913 
1915  virtual int GetRelatedSelectionLimit();
1916 
1921  virtual void SetDetailSelection(bool onoff);
1922 
1924  virtual bool GetDetailSelectionMode();
1925 
1929  virtual void SetRespectSelectionCulling(bool onoff);
1931  virtual bool GetRespectSelectionCulling();
1932 
1940  virtual void SmartFilterCircumcuboid(const char *segment, const char *defaults, HPoint *bottomfrontleft, HPoint *topbackright);
1941 
1948  int SetupHandlesEvent(HBaseView *view, HC_KEY key, bool complex);
1949 
1951  virtual bool GetHasObjects() { return m_bHasObjects; }
1952 
1956  virtual void SetHasObjects(bool hasobjects);
1957 
1958 
1962  virtual void SetHandleOperator(HBaseOperator *op) { m_pHandleOperator = op; }
1963 
1967  virtual HBaseOperator *GetHandleOperator() { return m_pHandleOperator; }
1968 
1972  virtual float GetDefaultSelectionProximity() { return m_DefaultSelectionProximity; }
1976  virtual void SetDefaultSelectionProximity(float selectionproximity);
1977 
1981  return m_bAllowInteractiveShadows;
1982  }
1983 
1989  void SetAllowInteractiveShadows(bool onoff) {
1990  m_bAllowInteractiveShadows = onoff;
1991  }
1992 
1995  HShadowRenderingMode GetShadowRenderingMode();
1996 
2001  void SetShadowRenderingMode(HShadowRenderingMode mode);
2002 
2005  bool GetAllowInteractiveCutGeometry() { return m_bAllowInteractiveCutGeometry; }
2006 
2012  m_bAllowInteractiveCutGeometry = onoff;
2013  }
2014 
2017  HCutGeometryVisibility GetCutGeometryVisibility();
2018 
2022  void SetCutGeometryVisibility(HCutGeometryVisibility visibility);
2023 
2024 
2027  void * GetWindowHandle() { return m_pWindowHandle; }
2028 
2032  bool GetInitialCameraSet() { return m_bInitialCameraSet; }
2033 
2034 
2035 
2042  int ObjectMovedEvent(HBaseView *view, HC_KEY key, HPoint *pos);
2043 
2047  void SetRecordCamera(bool rc);
2048 
2050  bool GetRecordMode() { return m_bRecordCamera; }
2051 
2055  void InjectEvent(HEventInfo const & hevent);
2056 
2057 
2062  void SetForceFastHiddenLine(bool force) { m_bForceFastHiddenLine = force; }
2063 
2065  bool GetForceFastHiddenLine() { return m_bForceFastHiddenLine; }
2066 
2072  void SetTransparency(char const * text, bool fast_z_sort=false);
2073 
2078  void SetLineAntialiasing( bool onoff );
2079 
2081  bool GetLineAntialiasing() { return m_bLineAntialiasing; }
2082 
2086  void SetTextAntialiasing( bool onoff );
2087 
2092  void SetDepthOfField(bool onoff, float strength = 1.0f);
2093 
2098  void SetDepthOfFieldRange(float near=0.0f, float far=0.0f);
2099 
2101  bool GetTextAntialiasing() { return m_bTextAntialiasing; }
2102 
2106  void SetIsoDefault(ViewMode vm) { m_IsoDefault = vm; }\
2107 
2109  ViewMode GetIsoDefault() { return m_IsoDefault; }
2110 
2117  void SetCullingThreshold(int cullingthreshold);
2118 
2122  int GetCullingThreshold();
2123 
2130  void SetHardExtent(int cutoff);
2131 
2135  int GetHardExtent();
2136 
2141  void BeginShellSelection();
2142 
2145  void EndShellSelection();
2146 
2148  HSelectionSet * GetHighlightSelection() { return m_pHighlight; }
2149 
2156  void SetViewAxis(HVector *front_axis, HVector *top_axis) { m_FrontAxis = front_axis; m_TopAxis = top_axis; }
2161  void GetViewAxis(HVector *front_axis, HVector *top_axis) { *front_axis = m_FrontAxis; *top_axis = m_TopAxis; }
2162 
2166  void SetDefaultHSRA();
2167 
2168 
2172  void SetMaximumUpdateTime(float mut) { m_MaximumUpdateTime = mut; }
2173 
2177  float GetMaximumUpdateTime() { return m_MaximumUpdateTime; }
2178 
2182  virtual const HSelectionHighlightMode GetHighlightMode() { return m_HighlightMode; }
2183 
2188  virtual void SetHighlightMode(HSelectionHighlightMode m);
2189 
2193  virtual void SetReferenceSelection(bool use_ref);
2194 
2201  bool GetKeyState(unsigned int key, int &flags);
2202 
2204  void ResetKeyState();
2205 
2209  void SetFastFitWorld(bool fw) { m_bFastFitWorld = fw; }
2210 
2214  void SetDetailedFitWorld(bool fw) { m_bDetailedFitWorld = fw; }
2215 
2219  bool GetFastFitWorld() { return m_bFastFitWorld; }
2220 
2224  bool GetDetailedFitWorld() { return m_bDetailedFitWorld; }
2225 
2231  void GetSceneExtents(HPoint &min, HPoint &max);
2232 
2236  void SetLightScaling(float sv);
2237 
2238  void SetXYSizeOverride(int x,int y) { m_XSize_override = x, m_YSize_override = y; }
2239 
2240 
2242  int GetXSize() {return m_XSize;}
2243 
2245  int GetYSize() {return m_YSize;}
2246 
2248  HViewSelectionLevel GetViewSelectionLevel();
2249 
2258  void SetViewSelectionLevel(HViewSelectionLevel level);
2259 
2268  void EnableTargetFrameRate(bool enable=true, int target=100, int threshold=10, int steps=5);
2269 
2274  float GetFramerate();
2275 
2277  FramerateMode GetFramerateMode();
2278 
2280  int GetFramerateCullingThreshold();
2281 
2286  int GetFramerateSteps();
2287 
2289  bool IsFramerateLodEnabled();
2290 
2304  void SetFramerateMode(FramerateMode mode, float framerate = 0.1f, int cullingthreshold = 150,
2305  bool enableLods = false, int steps = 20, int cutoff = 1);
2306 
2308  bool IsFrameRateEnabled();
2309 
2311  bool GetViewActive();
2312 
2314  void cleanupSimpList();
2315 
2319  void SetAnnotationResize(bool value);
2320 
2322  bool GetAnnotationResize() { return m_AnnotationCookie==0?false:true; }
2323 
2325  bool GetFirstUpdate() { return m_bFirstUpdate; }
2326 
2328  void SetDisplayHandlesOnDblClk(bool dh) { m_bDisplayHandlesOnDblClk = dh; }
2329 
2331  bool HasInitialView() { return m_has_initial_view; }
2332 
2334  void HasInitialView(bool does_it) { m_has_initial_view=does_it; }
2335 
2337  void ExhaustiveUpdate();
2338 
2340  bool GetUpdateNotFinished() { return m_bUpdateNotFinished; }
2341 
2343  void SetUpdateNotFinished(bool NotFinished) { m_bUpdateNotFinished = NotFinished; }
2344 
2345  /* This method sets the mousewheel sensitivity which is used to control the apparent sensitivity of the mousewheel for MVO operators.
2346  \param sensitivity value is strictly positive float. */
2347  void SetMouseWheelSensitivity(float sensitivity) {
2348  if (sensitivity > 0)
2349  m_MouseWheelSensitivity = sensitivity;
2350  }
2351  /* Use this in an operator to modify the return value of HEventInfo::GetMouseWheelDelta()
2352  \return value of the operator mousewheel sensitivity, a strictly positive value. */
2353  float GetMouseWheelSensitivity() { return m_MouseWheelSensitivity; }
2354 
2356  void SetSplatRendering(bool onoff);
2357 
2359  bool GetSplatRendering() { return m_bSplatRendering; };
2360 
2362  void SetSplatSize(int splat_size);
2363 
2365  int GetSplatSize() { return m_SplatSize; };
2366 
2368  void SetSplatSymbol(SplatSymbol symbol);
2369 
2371  SplatSymbol GetSplatSymbol() {return m_SplatSymbol;};
2372 
2373 
2377  void UpdateFakeHLRColor(HPoint paper_color);
2378 
2380  void SetHardwareAntialiasing(int antialiasinglevel) { m_HardwareAntialiasing = antialiasinglevel; }
2381 
2383  int GetHardwareAntialiasing() { return m_HardwareAntialiasing; }
2384 
2388  static void StaticForceUpdateRequest(void * view_pointer);
2389 
2390  /*
2391  This method can be used to visualize the internal bounding stored on segments
2392  and some types of geometry. The bounding is drawn outside of the model so it does not
2393  interfere with static trees. It is semi-transparent with a color that indicates the
2394  bounding density: blue is very dense, red is sparse, green is somewhere in between.
2395  \param draw_something If this value is false, any existing bounding geometry will simply
2396  be discarded. If it is true, a new bounding geometry will also be generated.
2397  \param key The key of the segment or geometry whose bounding should be visualized.
2398  \param incl_count The number of keys in the incl_path array.
2399  \param incl_path This array of keys should be structured for a PShow. That is, the leaf
2400  as the first entry followed by a series of include keys mapping a path to the view.
2401  */
2402  void VisualizeBounding(bool draw_something, HC_KEY key=INVALID_KEY, int incl_count=0, HC_KEY * incl_path=0);
2403 
2404 
2405  /*
2406  Retrieves the color set by an earlier call to SetFakeHLRColor.
2407  \return the color as an rgb triplet with values from 0.0 to 1.0.
2408  */
2409  HPoint GetFakeHLRColor();
2410 
2411  /*
2412  Sets the color to be used in fake hidden-line render mode.
2413  \param color An rgb triplet with values from 0.0 to 1.0.
2414  */
2415  void SetFakeHLRColor(HPoint color);
2416 
2417  /*
2418  Orients the camera to point at selected geometry and sets depth-of-field to keep it in focus.
2419  \param onoff passing true will focus on the selected geometry, passing false will remove an earlier depth-of-field setting.
2420  */
2421  void FocusOnSelection(bool onoff = true);
2422 
2423  /*
2424  \return true if the view is currently focused on a selection via a previous call to FocusOnSelection(), false otherwise.
2425  */
2426  bool GetFocusOnSelection() { return m_FocusedOnSelection; }
2427 
2429  HTouchManager *GetTouchManager() { return m_TouchManager; }
2430 
2431 protected:
2436  int m_CPMode;
2447  bool m_bDisplayHandlesOnDblClk;
2448  bool m_has_initial_view;
2449 
2452  int m_HardwareAntialiasing;
2460  HPoint m_SceneBoundingMin;
2461  HPoint m_SceneBoundingMax;
2462  bool m_bSceneBoundingSet;
2463  bool m_bFastFitWorld;
2464  bool m_bDetailedFitWorld;
2470  bool m_bNavCube;
2500 
2501 
2502  HC_KEY m_InfoTextKey;
2503 
2507  HC_KEY m_SceneLight[MaxLights];
2519  void (* m_pfEventChecker)(HIC_Rendition const *nr);
2520  bool (* m_pfKeyState)(unsigned int, int &);
2534  float m_IdleTime;
2546  unsigned long m_AnnotationCookie;
2547  unsigned long m_AxisResizeCookie;
2548  FramerateMode m_FramerateMode;
2549  bool m_bSplatRendering;
2550  int m_SplatSize;
2551  SplatSymbol m_SplatSymbol;
2552  bool m_FocusedOnSelection;
2553 
2560  void ComputeShadowParams(HPlane& shadow_plane, HPoint& light_pos);
2561 
2567  void AdjustShadowPlane(HPlane& shadow_plane, HPoint const & light_pos);
2568 
2574  void SetShadowParams(const HPlane& shadow_plane, const HPoint& light_pos,
2575  const HPoint* color = 0, const char * filter = 0);
2576 
2583  virtual void SetShadowParams(HShadow* shadowObj);
2584 
2587  void RefreshViewSize();
2588 
2594  void QueryDeviceCapabilities();
2595 
2604  virtual void UpdateInternal(bool antialias = false, bool force_update = false);
2605 
2606 
2611  virtual void SetupLights();
2612 
2613 private:
2614  float m_LastRecordTime;
2616  char * m_sDriverPath; // fully rooted pathname of driver instance
2617  char * m_sDriverType; // driver type; e.g. msw, opengl, x11
2618  char * m_sAlias;
2619  void * m_pWindowHandle;
2620  void * m_pColormap;
2621  void * m_pClipOverride;
2622  void * m_pWindowHandle2;
2623  struct vlist_s *m_SignalRequestsList;
2624  HBaseViewEmitMessageFunction emit_message_function;
2625  void * emit_message_function_user_data;
2626  HTClient * m_pUpdateTimerClient;
2627  bool m_bPrevBackplaneCullMode; // this caches backplane cull mode (which is switched off when capping planes are turned off with cutting planes on )
2628  bool m_bHasObjects;
2629  float m_fZoomLimit;
2630  int m_SuppressUpdate;
2631  int m_SuppressUpdateTick;
2632  bool m_bDynamicHighlighting;
2633  int m_XSize;
2634  int m_YSize;
2635  int m_XSize_override;
2636  int m_YSize_override;
2637  float m_LastMouseWheelTime;
2638  float m_MouseWheelSensitivity;
2639  bool m_KeyMap[256];
2640  int m_KeyFlags;
2641  bool m_bOwnDriver;
2642  bool m_bUpdateNotFinished;
2643  int m_NotFinishedCounter;
2644  HPoint m_FakeHLRColor;
2645  HConstFRSimpType **SimpList;
2646  int simpListLength;
2647  int m_OldCullingThreshold;
2648  float *m_pTempClipArray;
2649  ViewUpdateMode m_OldViewUpdateMode;
2650  bool m_UseExplicitShadowLight;
2651  HPoint m_ExplicitShadowLightDirection;
2652  int m_LightCount;
2653 
2654  //no default constructor
2655  HBaseView() {;};
2656 
2657  //obsolete
2658  HBaseView(HBaseModel *model, char const * alias, char const * driver_type,char const * instance_name, long window_handle, long colormap) {
2659  UNREFERENCED(model);
2660  UNREFERENCED(alias);
2661  UNREFERENCED(driver_type);
2662  UNREFERENCED(instance_name);
2663  UNREFERENCED(window_handle);
2664  UNREFERENCED(colormap);
2665  }
2666 
2667  //obsolete
2668  void RebindView(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 };
2678 
2679 
2680 #ifdef H_PACK_8
2681 #pragma pack(pop)
2682 #endif
2683 
2684 #endif
self-explanatory
Definition: HBaseView.h:99
bool GetFirstUpdate()
Definition: HBaseView.h:2325
HBaseOperator * m_pOperator
Definition: HBaseView.h:2510
bool GetAllowInteractiveCutGeometry()
Definition: HBaseView.h:2005
void SetKeyStateCallback(bool(*KeyState)(unsigned int, int &))
Definition: HBaseView.h:772
HUndoManager * m_pUndoManager
Definition: HBaseView.h:2524
SplatSymbol
Definition: HBaseView.h:282
no handedness; only applies to polygon-handedness
Definition: HBaseView.h:176
bool m_bUpdateRequested
Definition: HBaseView.h:2522
void ClearUpdateRequest()
Definition: HBaseView.h:1635
void(* HBaseViewEmitMessageFunction)(const char *message, unsigned int length, void *user_data)
Definition: HBaseView.h:296
bool m_bBeginShellSelection
Definition: HBaseView.h:2446
bool GetShadowRegenerationMode()
Definition: HBaseView.h:1877
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:971
self-explanatory
Definition: HBaseView.h:101
HC_KEY GetOverwriteKey()
Definition: HBaseView.h:933
same as HReanderShaded but with lines visible
Definition: HBaseView.h:79
bool GetSpritingMode()
Definition: HBaseView.h:894
bool GetCPFaceVisibility()
Definition: HBaseView.h:728
float m_SmoothTransitionDuration
Definition: HBaseView.h:2472
FramerateMode
Definition: HBaseView.h:147
MultiThreadingType
Definition: HBaseView.h:193
void InvalidateSceneBounding()
Definition: HBaseView.h:1544
void SetCuttingPlaneGeomKey(HC_KEY cuttingplanegeom_key)
Definition: HBaseView.h:992
HC_KEY m_ViewKey
Definition: HBaseView.h:2479
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:2435
opengl p-buffer shadow generation
Definition: HBaseView.h:244
bool m_bAllowInteractiveShadows
Definition: HBaseView.h:2537
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:2478
ViewUpdateMode
Definition: HBaseView.h:232
bool m_bShadowRegeneration
Definition: HBaseView.h:2530
bool IsLightFollowCamera()
Definition: HBaseView.h:1244
opengl software shadow generation
Definition: HBaseView.h:245
void SetViewKey(HC_KEY view_key)
Definition: HBaseView.h:917
negative X, positive Y, positive Z
Definition: HBaseView.h:106
const char * GetDriverPath()
Definition: HBaseView.h:687
HBaseOperator * GetOperator()
Definition: HBaseView.h:1202
HUtilityAntialiasing * m_pAntialiasing
Definition: HBaseView.h:2466
void SetSmoothTransitionDuration(float duration)
Definition: HBaseView.h:1238
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:915
negative X, positive Y, positive Z
Definition: HBaseView.h:108
HC_KEY m_FakeHLRStyle
Definition: HBaseView.h:2432
ViewUpdateMode GetViewUpdateMode()
Definition: HBaseView.h:1691
void HasInitialView(bool does_it)
Definition: HBaseView.h:2334
self-explanatory
Definition: HBaseView.h:135
unknown mode
Definition: HBaseView.h:161
HC_KEY GetDefaultLightKey(int which=0)
Definition: HBaseView.h:1089
void SetCurrentOperator(HBaseOperator *NewOperator)
Definition: HBaseView.h:1197
bool m_bMouseMove
Definition: HBaseView.h:2528
bool GetUpdateNotFinished()
Definition: HBaseView.h:2340
fake hidden line
Definition: HBaseView.h:86
No display lists.
Definition: HBaseView.h:185
virtual void SetCuttingPlaneRegenerationMode(bool onoff)
Definition: HBaseView.h:1872
The HObjectManager class keeps track of generic MVO objects.
Definition: HEventManager.h:137
int GetXSize()
Definition: HBaseView.h:2242
self-explanatory
Definition: HBaseView.h:96
HConstantFrameRate * m_pConstantFrameRate
Definition: HBaseView.h:2514
DisplayListType m_DisplayListType
Definition: HBaseView.h:2455
bool m_bCuttingPlaneRegeneration
Definition: HBaseView.h:2532
bool m_bFirstUpdate
Definition: HBaseView.h:2535
bool GetSmoothTransition()
Definition: HBaseView.h:1228
void SetZoomLimit(float zoomLimit)
Definition: HBaseView.h:952
void UpdateAxisTriad()
Definition: HBaseView.h:1050
bool(* HSignalNotifyFunction)(int signal, void *signal_data, void *user_data)
Definition: HBaseView.h:54
HC_KEY m_CuttingPlanesKey
Definition: HBaseView.h:2491
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:944
virtual HFileInputResult FileInput(const char *FileName, HInputHandler *handler, HInputHandlerOptions *options=0)
Definition: HBaseView.h:605
bool m_bAxisTriadTransparencyAllowed
Definition: HBaseView.h:2440
bool GetForceFastHiddenLine()
Definition: HBaseView.h:2065
virtual void SetShadowRegenerationToggle()
Definition: HBaseView.h:1862
int GetSplatSize()
Definition: HBaseView.h:2365
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:628
HSelectionSet * m_pHighlight
Definition: HBaseView.h:2513
The HCamera class is the data type of a HOOPS Camera Attribute.
Definition: HUtility.h:542
bool GetDetailedFitWorld()
Definition: HBaseView.h:2224
void SetEmitMessageFunction(HBaseViewEmitMessageFunction new_emit_message_function, void *user_data=0)
Definition: HBaseView.h:1399
HImCuttingGeometry * m_pHImCuttingGeometry
Definition: HBaseView.h:2465
bool GetTransparentSelectionBoxMode()
Definition: HBaseView.h:1093
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:2538
virtual bool GetHasObjects()
Definition: HBaseView.h:1951
bool m_bLButtonDown
Definition: HBaseView.h:2527
void SetUpdateInterrupted(int val)
Definition: HBaseView.h:1016
clamps to LOD1
Definition: HBaseView.h:80
void SetAllowInteractiveCutGeometry(bool onoff)
Definition: HBaseView.h:2011
HSelectionSet * GetHighlightSelection()
Definition: HBaseView.h:2148
self-explanatory
Definition: HBaseView.h:174
bool GetCPLineVisibility()
Definition: HBaseView.h:725
float GetSmoothTransitionDuration()
Definition: HBaseView.h:1241
self-explanatory
Definition: HBaseView.h:175
HC_KEY m_IntersectPolylinesKey
Definition: HBaseView.h:2495
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:2106
Fast hidden line.
Definition: HBaseView.h:206
HVector m_TopAxis
Definition: HBaseView.h:2476
const char * GetDriverType()
Definition: HBaseView.h:690
bool m_bCuttingPlanesVisibility
Definition: HBaseView.h:2438
bool GetTextAntialiasing()
Definition: HBaseView.h:2101
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:2470
void SetBBoxGeometryKey(HC_KEY bbox_key)
Definition: HBaseView.h:976
HLRMode
Definition: HBaseView.h:203
bool m_bCPLineVisibility
Definition: HBaseView.h:2434
HandednessMode
Definition: HBaseView.h:172
virtual void SetShadowRegenerationMode(bool onoff)
Definition: HBaseView.h:1858
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:2525
The HSelectionSet class manages a list of selected items.
Definition: HSelectionSet.h:66
AxisMode m_bAxisMode
Definition: HBaseView.h:2468
#define HC_KEY
HOutputHandler an abstract base class for model and image output.
Definition: HIOManager.h:1220
HSelectionHighlightMode
Definition: HGlobals.h:547
bool m_bTransparentSelectionBox
Definition: HBaseView.h:2544
Definition: HGlobals.h:310
Definition: HTManager.h:157
void SetFastFitWorld(bool fw)
Definition: HBaseView.h:2209
Analytic hidden line.
Definition: HBaseView.h:205
HEventManager * m_pEventManager
Definition: HBaseView.h:2523
HC_KEY m_ProgressBarKey
Definition: HBaseView.h:2499
HC_KEY m_OverwriteKey
Definition: HBaseView.h:2483
self-explanatory
Definition: HBaseView.h:97
HC_KEY GetIncludeLinkKey()
Definition: HBaseView.h:920
void SetSpritingMode(bool onoff)
Definition: HBaseView.h:901
virtual const HSelectionHighlightMode GetHighlightMode()
Definition: HBaseView.h:2182
HC_KEY m_WindowspaceKey
Definition: HBaseView.h:2487
virtual bool GetCameraChanged()
Definition: HBaseView.h:1885
void SetUpdateNotFinished(bool NotFinished)
Definition: HBaseView.h:2343
void(*)(HIC_Rendition const *nr) GetEventCheckerCallback()
Definition: HBaseView.h:778
float m_IdleTime
Definition: HBaseView.h:2534
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:2436
star bloom
Definition: HBaseView.h:252
unknown view mode
Definition: HBaseView.h:124
virtual void SetInvertMouseWheelZoom(bool val=true)
Definition: HBaseView.h:1890
Geometry-level display lists.
Definition: HBaseView.h:186
bool GetDynamicHighlighting()
Definition: HBaseView.h:1724
HSelectionHighlightMode m_HighlightMode
Definition: HBaseView.h:2454
bool GetSceneBoundingSet()
Definition: HBaseView.h:1535
ViewUpdateMode m_ViewUpdateMode
Definition: HBaseView.h:2521
class HDebugZBuffer * m_pDebugZBuffer
Definition: HBaseView.h:2526
void SetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2156
bool GetFastFitWorld()
Definition: HBaseView.h:2219
same as HViewIsoxYz
Definition: HBaseView.h:115
bool EmittingMessages()
Definition: HBaseView.h:1409
unknown mode
Definition: HBaseView.h:133
void SetSuppressUpdateTick(bool suppress)
Definition: HBaseView.h:1659
HCutGeometryVisibility
Definition: HGlobals.h:102
HEventInfo * m_pEvent
Definition: HBaseView.h:2511
bool m_bTextAntialiasing
Definition: HBaseView.h:2445
currently does nothing
Definition: HBaseView.h:67
bool GetAnnotationResize()
Definition: HBaseView.h:2322
void SetHardwareAntialiasing(int antialiasinglevel)
Definition: HBaseView.h:2380
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:1007
bool GetCuttingPlaneRegenerationMode()
Definition: HBaseView.h:1866
void SetDisplayHandlesOnDblClk(bool dh)
Definition: HBaseView.h:2328
bool m_bSmoothTransition
Definition: HBaseView.h:2471
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:2485
bool m_bLineAntialiasing
Definition: HBaseView.h:2444
AxisMode GetAxisMode()
Definition: HBaseView.h:1036
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:1215
ViewMode
Definition: HBaseView.h:93
HRenderMode m_RenderMode
Definition: HBaseView.h:2508
HSelectionSet * m_pSelection
Definition: HBaseView.h:2512
LightingIntMode
Definition: HBaseView.h:131
self-explanatory
Definition: HBaseView.h:151
void RequestUpdate()
Definition: HBaseView.h:1631
void SetNavCube(bool onoff)
Definition: HBaseView.h:1225
HC_KEY GetAxisTriadKey()
Definition: HBaseView.h:1212
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:2473
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:2050
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:2062
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:1208
float GetMaximumUpdateTime()
Definition: HBaseView.h:2177
bool GetAllowInteractiveShadows()
Definition: HBaseView.h:1980
DisplayListType
Definition: HBaseView.h:183
Definition: HIOManager.h:865
HC_KEY m_AxisTriadKey
Definition: HBaseView.h:2497
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:1419
virtual HBaseModel * GetModel()
Definition: HBaseView.h:704
none view mode
Definition: HBaseView.h:95
void SetDetailedFitWorld(bool fw)
Definition: HBaseView.h:2214
bool HasInitialView()
Definition: HBaseView.h:2331
HAnimateMode
Definition: HBaseView.h:1514
HC_KEY m_FakeHLRSource
Definition: HBaseView.h:2433
bool m_bCuttingPlanesExist
Definition: HBaseView.h:2437
virtual float GetDefaultSelectionProximity()
Definition: HBaseView.h:1972
void SetCuttingPlanesKey(HC_KEY cuttingplanes_key)
Definition: HBaseView.h:984
bool m_bSpritingAllowed
Definition: HBaseView.h:2439
HBaseOperator * m_pHandleOperator
Definition: HBaseView.h:2536
bool m_bGeometryChanged
Definition: HBaseView.h:2459
bool GetSuppressUpdateTick()
Definition: HBaseView.h:1669
Segment-level display lists.
Definition: HBaseView.h:187
HMarkupManager * m_pMarkupManager
Definition: HBaseView.h:2467
edges/lines only
Definition: HBaseView.h:63
Square.
Definition: HBaseView.h:285
HVector m_FrontAxis
Definition: HBaseView.h:2475
bool m_bInvertMouseWheelZoom
Definition: HBaseView.h:2545
ViewMode m_ViewMode
Definition: HBaseView.h:2509
image driver shadow generation
Definition: HBaseView.h:243
int m_AxisWindowSize
Definition: HBaseView.h:2441
HSharedKey * GetSharedKey()
Definition: HBaseView.h:1504
bool GetCuttingPlanesVisibility()
Definition: HBaseView.h:753
void * GetWindowHandle()
Definition: HBaseView.h:2027
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:103
void SetAllowInteractiveShadows(bool onoff)
Definition: HBaseView.h:1989
Definition: HConstantFrameRate.h:79
HCamera m_InitialCamera
Definition: HBaseView.h:2541
int m_InUpdateInternal
Definition: HBaseView.h:2518
ViewMode m_IsoDefault
Definition: HBaseView.h:2453
bool GetSuppressUpdate()
Definition: HBaseView.h:1652
unknown mode
Definition: HBaseView.h:149
The HEventInfo class stores and manages event information.
Definition: HEventInfo.h:207
bool m_bForceFastHiddenLine
Definition: HBaseView.h:2443
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:1564
void SetSelection(HSelectionSet *selection)
Definition: HBaseView.h:701
float m_DefaultSelectionProximity
Definition: HBaseView.h:2539
UpDirection
Definition: HBaseView.h:221
Gooch Shaded.
Definition: HBaseView.h:85
HShadowMode
Definition: HGlobals.h:92
HC_KEY m_SceneKey
Definition: HBaseView.h:2481
void SetMaximumUpdateTime(float mut)
Definition: HBaseView.h:2172
HSharedKey * m_pSharedKey
Definition: HBaseView.h:2516
HShadowMode m_ShadowMode
Definition: HBaseView.h:2515
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:1414
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:1627
ProjMode
Definition: HBaseView.h:159
void SetSuppressUpdate(bool suppress)
Definition: HBaseView.h:1642
self-explanatory
Definition: HBaseView.h:217
HOpCameraManipulate * m_pManipulateOperator
Definition: HBaseView.h:2529
bool m_bCameraChanged
Definition: HBaseView.h:2533
self-explanatory
Definition: HBaseView.h:100
bool GetSplatRendering()
Definition: HBaseView.h:2359
bool m_bInitialCameraSet
Definition: HBaseView.h:2542
virtual bool GetInvertMouseWheelZoom()
Definition: HBaseView.h:1893
void SetIntersectPolylinesKey(HC_KEY intersectpolylines_key)
Definition: HBaseView.h:999
int m_UpdateInterrupted
Definition: HBaseView.h:2517
virtual void SetCameraChanged(bool val=true)
Definition: HBaseView.h:1882
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:2506
int GetYSize()
Definition: HBaseView.h:2245
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:2469
Like AxisOn, but centered differently.
Definition: HBaseView.h:216
bool m_bShadowRegenerationToggle
Definition: HBaseView.h:2531
HC_KEY m_lIncludeLinkKey
Definition: HBaseView.h:2505
shell/mesh silhouette edges
Definition: HBaseView.h:65
self-explanatory
Definition: HBaseView.h:214
void SetDebugZBuffer(HDebugZBuffer *dzb)
Definition: HBaseView.h:1033
hidden line removal
Definition: HBaseView.h:66
ViewMode GetIsoDefault()
Definition: HBaseView.h:2109
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:2383
SplatSymbol GetSplatSymbol()
Definition: HBaseView.h:2371
bool GetInitialCameraSet()
Definition: HBaseView.h:2032
negative X, positive Y, positive Z
Definition: HBaseView.h:104
void SetIncludeLinkKey(HC_KEY link)
Definition: HBaseView.h:922
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:963
Round.
Definition: HBaseView.h:284
Fake hidden line.
Definition: HBaseView.h:207
Definition: HDebugZBuffer.h:29
HTouchManager * GetTouchManager()
Definition: HBaseView.h:2429
HTouchManager * m_TouchManager
Definition: HBaseView.h:2450
The driver returns segment objects from selections.
Definition: HBaseView.h:274
HC_KEY GetBBoxGeometryKey()
Definition: HBaseView.h:974
HC_KEY m_CuttingPlaneGeomKey
Definition: HBaseView.h:2493
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:109
int m_WindowColorPercentage
Definition: HBaseView.h:2474
flat shading
Definition: HBaseView.h:69
bool HaveMarkupManager()
Definition: HBaseView.h:485
float m_MaximumUpdateTime
Definition: HBaseView.h:2540
HC_KEY m_ConstructionKey
Definition: HBaseView.h:2489
bool m_bRecordCamera
Definition: HBaseView.h:2543
same as HViewIsoXYz
Definition: HBaseView.h:114
HShadowMode GetShadowMode()
Definition: HBaseView.h:1066
self-explanatory
Definition: HBaseView.h:102
virtual bool GeometryChanged()
Definition: HBaseView.h:1567
HC_KEY GetProgressBarKey()
Definition: HBaseView.h:1002
same as HViewIsoxYZ
Definition: HBaseView.h:113
bool GetLineAntialiasing()
Definition: HBaseView.h:2081
int GetLightCount()
Definition: HBaseView.h:1261
virtual HBaseOperator * GetHandleOperator()
Definition: HBaseView.h:1967
Definition: HSharedKey.h:80
virtual void SetHandleOperator(HBaseOperator *op)
Definition: HBaseView.h:1962
void GetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2161
HConstantFrameRate * GetConstantFrameRateObject()
Definition: HBaseView.h:761
HViewSelectionLevel
Definition: HBaseView.h:271
void SetSceneKey(HC_KEY scene_key)
Definition: HBaseView.h:930
void SetTransparentSelectionBoxMode(bool mode)
Definition: HBaseView.h:1098