Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HBaseView.h
Go to the documentation of this file.
1 // Copyright (c) 1998-2014 by 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() { return HC_KShow_Owner_By_Key (m_lIncludeLinkKey); }
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  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 
1933  virtual void SmartFilterCircumcuboid(const char *segment, const char *defaults, HPoint *bottomfrontleft, HPoint *topbackright);
1934 
1941  int SetupHandlesEvent(HBaseView *view, HC_KEY key, bool complex);
1942 
1944  virtual bool GetHasObjects() { return m_bHasObjects; }
1945 
1949  virtual void SetHasObjects(bool hasobjects);
1950 
1951 
1955  virtual void SetHandleOperator(HBaseOperator *op) { m_pHandleOperator = op; }
1956 
1960  virtual HBaseOperator *GetHandleOperator() { return m_pHandleOperator; }
1961 
1965  virtual float GetDefaultSelectionProximity() { return m_DefaultSelectionProximity; }
1969  virtual void SetDefaultSelectionProximity(float selectionproximity);
1970 
1974  return m_bAllowInteractiveShadows;
1975  }
1976 
1982  void SetAllowInteractiveShadows(bool onoff) {
1983  m_bAllowInteractiveShadows = onoff;
1984  }
1985 
1988  HShadowRenderingMode GetShadowRenderingMode();
1989 
1994  void SetShadowRenderingMode(HShadowRenderingMode mode);
1995 
1998  bool GetAllowInteractiveCutGeometry() { return m_bAllowInteractiveCutGeometry; }
1999 
2005  m_bAllowInteractiveCutGeometry = onoff;
2006  }
2007 
2010  HCutGeometryVisibility GetCutGeometryVisibility();
2011 
2015  void SetCutGeometryVisibility(HCutGeometryVisibility visibility);
2016 
2017 
2020  void * GetWindowHandle() { return m_pWindowHandle; }
2021 
2025  bool GetInitialCameraSet() { return m_bInitialCameraSet; }
2026 
2027 
2028 
2035  int ObjectMovedEvent(HBaseView *view, HC_KEY key, HPoint *pos);
2036 
2040  void SetRecordCamera(bool rc);
2041 
2043  bool GetRecordMode() { return m_bRecordCamera; }
2044 
2048  void InjectEvent(HEventInfo const & hevent);
2049 
2050 
2055  void SetForceFastHiddenLine(bool force) { m_bForceFastHiddenLine = force; }
2056 
2058  bool GetForceFastHiddenLine() { return m_bForceFastHiddenLine; }
2059 
2065  void SetTransparency(char const * text, bool fast_z_sort=false);
2066 
2071  void SetLineAntialiasing( bool onoff );
2072 
2074  bool GetLineAntialiasing() { return m_bLineAntialiasing; }
2075 
2079  void SetTextAntialiasing( bool onoff );
2080 
2085  void SetDepthOfField(bool onoff, float strength = 1.0f);
2086 
2091  void SetDepthOfFieldRange(float near=0.0f, float far=0.0f);
2092 
2094  bool GetTextAntialiasing() { return m_bTextAntialiasing; }
2095 
2099  void SetIsoDefault(ViewMode vm) { m_IsoDefault = vm; }\
2100 
2102  ViewMode GetIsoDefault() { return m_IsoDefault; }
2103 
2110  void SetCullingThreshold(int cullingthreshold);
2111 
2115  int GetCullingThreshold();
2116 
2123  void SetHardExtent(int cutoff);
2124 
2128  int GetHardExtent();
2129 
2134  void BeginShellSelection();
2135 
2138  void EndShellSelection();
2139 
2141  HSelectionSet * GetHighlightSelection() { return m_pHighlight; }
2142 
2149  void SetViewAxis(HVector *front_axis, HVector *top_axis) { m_FrontAxis = front_axis; m_TopAxis = top_axis; }
2154  void GetViewAxis(HVector *front_axis, HVector *top_axis) { *front_axis = m_FrontAxis; *top_axis = m_TopAxis; }
2155 
2159  void SetDefaultHSRA();
2160 
2161 
2165  void SetMaximumUpdateTime(float mut) { m_MaximumUpdateTime = mut; }
2166 
2170  float GetMaximumUpdateTime() { return m_MaximumUpdateTime; }
2171 
2175  virtual const HSelectionHighlightMode GetHighlightMode() { return m_HighlightMode; }
2176 
2181  virtual void SetHighlightMode(HSelectionHighlightMode m);
2182 
2186  virtual void SetReferenceSelection(bool use_ref);
2187 
2194  bool GetKeyState(unsigned int key, int &flags);
2195 
2197  void ResetKeyState();
2198 
2202  void SetFastFitWorld(bool fw) { m_bFastFitWorld = fw; }
2203 
2209  void GetSceneExtents(HPoint &min, HPoint &max);
2210 
2214  void SetLightScaling(float sv);
2215 
2216  void SetXYSizeOverride(int x,int y) { m_XSize_override = x, m_YSize_override = y; }
2217 
2218 
2220  int GetXSize() {return m_XSize;}
2221 
2223  int GetYSize() {return m_YSize;}
2224 
2226  HViewSelectionLevel GetViewSelectionLevel();
2227 
2236  void SetViewSelectionLevel(HViewSelectionLevel level);
2237 
2246  void EnableTargetFrameRate(bool enable=true, int target=100, int threshold=10, int steps=5);
2247 
2252  float GetFramerate();
2253 
2255  FramerateMode GetFramerateMode();
2256 
2258  int GetFramerateCullingThreshold();
2259 
2264  int GetFramerateSteps();
2265 
2267  bool IsFramerateLodEnabled();
2268 
2282  void SetFramerateMode(FramerateMode mode, float framerate = 0.1f, int cullingthreshold = 150,
2283  bool enableLods = false, int steps = 20, int cutoff = 1);
2284 
2286  bool IsFrameRateEnabled();
2287 
2289  bool GetViewActive();
2290 
2292  void cleanupSimpList();
2293 
2297  void SetAnnotationResize(bool value);
2298 
2300  bool GetAnnotationResize() { return m_AnnotationCookie==0?false:true; }
2301 
2303  bool GetFirstUpdate() { return m_bFirstUpdate; }
2304 
2306  void SetDisplayHandlesOnDblClk(bool dh) { m_bDisplayHandlesOnDblClk = dh; }
2307 
2309  bool HasInitialView() { return m_has_initial_view; }
2310 
2312  void HasInitialView(bool does_it) { m_has_initial_view=does_it; }
2313 
2315  void ExhaustiveUpdate();
2316 
2318  bool GetUpdateNotFinished() { return m_bUpdateNotFinished; }
2319 
2321  void SetUpdateNotFinished(bool NotFinished) { m_bUpdateNotFinished = NotFinished; }
2322 
2323  /* This method sets the mousewheel sensitivity which is used to control the apparent sensitivity of the mousewheel for MVO operators.
2324  \param sensitivity value is strictly positive float. */
2325  void SetMouseWheelSensitivity(float sensitivity) {
2326  if (sensitivity > 0)
2327  m_MouseWheelSensitivity = sensitivity;
2328  }
2329  /* Use this in an operator to modify the return value of HEventInfo::GetMouseWheelDelta()
2330  \return value of the operator mousewheel sensitivity, a strictly positive value. */
2331  float GetMouseWheelSensitivity() { return m_MouseWheelSensitivity; }
2332 
2334  void SetSplatRendering(bool onoff);
2335 
2337  bool GetSplatRendering() { return m_bSplatRendering; };
2338 
2340  void SetSplatSize(int splat_size);
2341 
2343  int GetSplatSize() { return m_SplatSize; };
2344 
2346  void SetSplatSymbol(SplatSymbol symbol);
2347 
2349  SplatSymbol GetSplatSymbol() {return m_SplatSymbol;};
2350 
2351 
2355  void UpdateFakeHLRColor(HPoint paper_color);
2356 
2358  void SetHardwareAntialiasing(int antialiasinglevel) { m_HardwareAntialiasing = antialiasinglevel; }
2359 
2361  int GetHardwareAntialiasing() { return m_HardwareAntialiasing; }
2362 
2366  static void StaticForceUpdateRequest(void * view_pointer);
2367 
2368  /*
2369  This method can be used to visualize the internal bounding stored on segments
2370  and some types of geometry. The bounding is drawn outside of the model so it does not
2371  interfere with static trees. It is semi-transparent with a color that indicates the
2372  bounding density: blue is very dense, red is sparse, green is somewhere in between.
2373  \param draw_something If this value is false, any existing bounding geometry will simply
2374  be discarded. If it is true, a new bounding geometry will also be generated.
2375  \param key The key of the segment or geometry whose bounding should be visualized.
2376  \param incl_count The number of keys in the incl_path array.
2377  \param incl_path This array of keys should be structured for a PShow. That is, the leaf
2378  as the first entry followed by a series of include keys mapping a path to the view.
2379  */
2380  void VisualizeBounding(bool draw_something, HC_KEY key=INVALID_KEY, int incl_count=0, HC_KEY * incl_path=0);
2381 
2382 
2383  /*
2384  Retrieves the color set by an earlier call to SetFakeHLRColor.
2385  \return the color as an rgb triplet with values from 0.0 to 1.0.
2386  */
2387  HPoint GetFakeHLRColor();
2388 
2389  /*
2390  Sets the color to be used in fake hidden-line render mode.
2391  \param color An rgb triplet with values from 0.0 to 1.0.
2392  */
2393  void SetFakeHLRColor(HPoint color);
2394 
2395  /*
2396  Orients the camera to point at selected geometry and sets depth-of-field to keep it in focus.
2397  \param onoff passing true will focus on the selected geometry, passing false will remove an earlier depth-of-field setting.
2398  */
2399  void FocusOnSelection(bool onoff = true);
2400 
2401  /*
2402  \return true if the view is currently focused on a selection via a previous call to FocusOnSelection(), false otherwise.
2403  */
2404  bool GetFocusOnSelection() { return m_FocusedOnSelection; }
2405 
2407  HTouchManager *GetTouchManager() { return m_TouchManager; }
2408 
2409 protected:
2414  int m_CPMode;
2425  bool m_bDisplayHandlesOnDblClk;
2426  bool m_has_initial_view;
2427 
2430  int m_HardwareAntialiasing;
2438  HPoint m_SceneBoundingMin;
2439  HPoint m_SceneBoundingMax;
2440  bool m_bSceneBoundingSet;
2441  bool m_bFastFitWorld;
2447  bool m_bNavCube;
2477 
2478 
2479  HC_KEY m_InfoTextKey;
2480 
2484  HC_KEY m_SceneLight[MaxLights];
2496  void (* m_pfEventChecker)(HIC_Rendition const *nr);
2497  bool (* m_pfKeyState)(unsigned int, int &);
2511  float m_IdleTime;
2523  unsigned long m_AnnotationCookie;
2524  unsigned long m_AxisResizeCookie;
2525  FramerateMode m_FramerateMode;
2526  bool m_bSplatRendering;
2527  int m_SplatSize;
2528  SplatSymbol m_SplatSymbol;
2529  bool m_FocusedOnSelection;
2530 
2537  void ComputeShadowParams(HPlane& shadow_plane, HPoint& light_pos);
2538 
2544  void AdjustShadowPlane(HPlane& shadow_plane, HPoint const & light_pos);
2545 
2551  void SetShadowParams(const HPlane& shadow_plane, const HPoint& light_pos,
2552  const HPoint* color = 0, const char * filter = 0);
2553 
2560  virtual void SetShadowParams(HShadow* shadowObj);
2561 
2564  void RefreshViewSize();
2565 
2571  void QueryDeviceCapabilities();
2572 
2581  virtual void UpdateInternal(bool antialias = false, bool force_update = false);
2582 
2583 
2588  virtual void SetupLights();
2589 
2590 private:
2591  float m_LastRecordTime;
2593  char * m_sDriverPath; // fully rooted pathname of driver instance
2594  char * m_sDriverType; // driver type; e.g. msw, opengl, x11
2595  char * m_sAlias;
2596  void * m_pWindowHandle;
2597  void * m_pColormap;
2598  void * m_pClipOverride;
2599  void * m_pWindowHandle2;
2600  struct vlist_s *m_SignalRequestsList;
2601  HBaseViewEmitMessageFunction emit_message_function;
2602  void * emit_message_function_user_data;
2603  HTClient * m_pUpdateTimerClient;
2604  bool m_bPrevBackplaneCullMode; // this caches backplane cull mode (which is switched off when capping planes are turned off with cutting planes on )
2605  bool m_bHasObjects;
2606  float m_fZoomLimit;
2607  int m_SuppressUpdate;
2608  int m_SuppressUpdateTick;
2609  bool m_bDynamicHighlighting;
2610  int m_XSize;
2611  int m_YSize;
2612  int m_XSize_override;
2613  int m_YSize_override;
2614  float m_LastMouseWheelTime;
2615  float m_MouseWheelSensitivity;
2616  bool m_KeyMap[256];
2617  int m_KeyFlags;
2618  bool m_bOwnDriver;
2619  bool m_bUpdateNotFinished;
2620  int m_NotFinishedCounter;
2621  HPoint m_FakeHLRColor;
2622  HConstFRSimpType **SimpList;
2623  int simpListLength;
2624  int m_OldCullingThreshold;
2625  float *m_pTempClipArray;
2626  ViewUpdateMode m_OldViewUpdateMode;
2627  bool m_UseExplicitShadowLight;
2628  HPoint m_ExplicitShadowLightDirection;
2629  int m_LightCount;
2630 
2631  //no default constructor
2632  HBaseView() {;};
2633 
2634  //obsolete
2635  HBaseView(HBaseModel *model, char const * alias, char const * driver_type,char const * instance_name, long window_handle, long colormap) {
2636  UNREFERENCED(model);
2637  UNREFERENCED(alias);
2638  UNREFERENCED(driver_type);
2639  UNREFERENCED(instance_name);
2640  UNREFERENCED(window_handle);
2641  UNREFERENCED(colormap);
2642  }
2643 
2644  //obsolete
2645  void RebindView(HBaseModel *model, char const * alias, char const * driver_type,char const * instance_name, long window_handle, long colormap) {
2646  UNREFERENCED(model);
2647  UNREFERENCED(alias);
2648  UNREFERENCED(driver_type);
2649  UNREFERENCED(instance_name);
2650  UNREFERENCED(window_handle);
2651  UNREFERENCED(colormap);
2652  }
2653 
2654 };
2655 
2656 
2657 #ifdef H_PACK_8
2658 #pragma pack(pop)
2659 #endif
2660 
2661 #endif
self-explanatory
Definition: HBaseView.h:99
bool GetFirstUpdate()
Definition: HBaseView.h:2303
HBaseOperator * m_pOperator
Definition: HBaseView.h:2487
bool GetAllowInteractiveCutGeometry()
Definition: HBaseView.h:1998
void SetKeyStateCallback(bool(*KeyState)(unsigned int, int &))
Definition: HBaseView.h:772
HUndoManager * m_pUndoManager
Definition: HBaseView.h:2501
SplatSymbol
Definition: HBaseView.h:282
no handedness; only applies to polygon-handedness
Definition: HBaseView.h:176
bool m_bUpdateRequested
Definition: HBaseView.h:2499
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:2424
bool GetShadowRegenerationMode()
Definition: HBaseView.h:1877
The HConstantFrameRate class provides support for maintaining a constant framerate when rendering...
Definition: HConstantFrameRate.h:490
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:2449
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:2456
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:2413
opengl p-buffer shadow generation
Definition: HBaseView.h:244
bool m_bAllowInteractiveShadows
Definition: HBaseView.h:2514
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:2455
ViewUpdateMode
Definition: HBaseView.h:232
bool m_bShadowRegeneration
Definition: HBaseView.h:2507
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:2443
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:2410
ViewUpdateMode GetViewUpdateMode()
Definition: HBaseView.h:1691
void HasInitialView(bool does_it)
Definition: HBaseView.h:2312
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:2505
bool GetUpdateNotFinished()
Definition: HBaseView.h:2318
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:2220
self-explanatory
Definition: HBaseView.h:96
HConstantFrameRate * m_pConstantFrameRate
Definition: HBaseView.h:2491
DisplayListType m_DisplayListType
Definition: HBaseView.h:2433
bool m_bCuttingPlaneRegeneration
Definition: HBaseView.h:2509
bool m_bFirstUpdate
Definition: HBaseView.h:2512
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:2468
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:2418
bool GetForceFastHiddenLine()
Definition: HBaseView.h:2058
virtual void SetShadowRegenerationToggle()
Definition: HBaseView.h:1862
int GetSplatSize()
Definition: HBaseView.h:2343
quick-moved geometry was last drawn as overlay, meaning that colors are correct, but that the quick-m...
Definition: HBaseView.h:260
This tells the MVO framework to implicitly perform continuous updates by polling for posted update ev...
Definition: HBaseView.h:235
gouraud (smooth) shading
Definition: HBaseView.h:70
HInputHandler an abstract base class for model and image input.
Definition: HIOManager.h:671
#define HC_KEY
HSelectionSet * m_pHighlight
Definition: HBaseView.h:2490
The HCamera class is the data type of a HOOPS Camera Attribute.
Definition: HUtility.h:537
void SetEmitMessageFunction(HBaseViewEmitMessageFunction new_emit_message_function, void *user_data=0)
Definition: HBaseView.h:1399
HImCuttingGeometry * m_pHImCuttingGeometry
Definition: HBaseView.h:2442
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 archi...
Definition: HBaseView.h:163
bool m_bAllowInteractiveCutGeometry
Definition: HBaseView.h:2515
virtual bool GetHasObjects()
Definition: HBaseView.h:1944
bool m_bLButtonDown
Definition: HBaseView.h:2504
void SetUpdateInterrupted(int val)
Definition: HBaseView.h:1016
clamps to LOD1
Definition: HBaseView.h:80
void SetAllowInteractiveCutGeometry(bool onoff)
Definition: HBaseView.h:2004
HSelectionSet * GetHighlightSelection()
Definition: HBaseView.h:2141
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:2472
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:2099
Fast hidden line.
Definition: HBaseView.h:206
HC_KEY GetShadowMapSegmentKey()
Definition: HBaseView.h:936
HVector m_TopAxis
Definition: HBaseView.h:2453
const char * GetDriverType()
Definition: HBaseView.h:690
bool m_bCuttingPlanesVisibility
Definition: HBaseView.h:2416
bool GetTextAntialiasing()
Definition: HBaseView.h:2094
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:2447
void SetBBoxGeometryKey(HC_KEY bbox_key)
Definition: HBaseView.h:976
HLRMode
Definition: HBaseView.h:203
bool m_bCPLineVisibility
Definition: HBaseView.h:2412
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:2502
The HSelectionSet class manages a list of selected items.
Definition: HSelectionSet.h:66
AxisMode m_bAxisMode
Definition: HBaseView.h:2445
HOutputHandler an abstract base class for model and image output.
Definition: HIOManager.h:1225
HSelectionHighlightMode
Definition: HGlobals.h:547
bool m_bTransparentSelectionBox
Definition: HBaseView.h:2521
Definition: HGlobals.h:310
Definition: HTManager.h:157
void SetFastFitWorld(bool fw)
Definition: HBaseView.h:2202
Analytic hidden line.
Definition: HBaseView.h:205
HEventManager * m_pEventManager
Definition: HBaseView.h:2500
HC_KEY m_ProgressBarKey
Definition: HBaseView.h:2476
HC_KEY m_OverwriteKey
Definition: HBaseView.h:2460
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:2175
HC_KEY m_WindowspaceKey
Definition: HBaseView.h:2464
virtual bool GetCameraChanged()
Definition: HBaseView.h:1885
void SetUpdateNotFinished(bool NotFinished)
Definition: HBaseView.h:2321
void(*)(HIC_Rendition const *nr) GetEventCheckerCallback()
Definition: HBaseView.h:778
float m_IdleTime
Definition: HBaseView.h:2511
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:2414
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:2432
bool GetSceneBoundingSet()
Definition: HBaseView.h:1535
ViewUpdateMode m_ViewUpdateMode
Definition: HBaseView.h:2498
class HDebugZBuffer * m_pDebugZBuffer
Definition: HBaseView.h:2503
void SetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2149
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:2488
bool m_bTextAntialiasing
Definition: HBaseView.h:2423
currently does nothing
Definition: HBaseView.h:67
bool GetAnnotationResize()
Definition: HBaseView.h:2300
void SetHardwareAntialiasing(int antialiasinglevel)
Definition: HBaseView.h:2358
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:2306
bool m_bSmoothTransition
Definition: HBaseView.h:2448
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:2462
bool m_bLineAntialiasing
Definition: HBaseView.h:2422
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:2485
HSelectionSet * m_pSelection
Definition: HBaseView.h:2489
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:2450
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:2043
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:2055
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:2170
bool GetAllowInteractiveShadows()
Definition: HBaseView.h:1973
DisplayListType
Definition: HBaseView.h:183
Definition: HIOManager.h:908
HC_KEY m_AxisTriadKey
Definition: HBaseView.h:2474
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
bool HasInitialView()
Definition: HBaseView.h:2309
HAnimateMode
Definition: HBaseView.h:1514
HC_KEY m_FakeHLRSource
Definition: HBaseView.h:2411
bool m_bCuttingPlanesExist
Definition: HBaseView.h:2415
virtual float GetDefaultSelectionProximity()
Definition: HBaseView.h:1965
void SetCuttingPlanesKey(HC_KEY cuttingplanes_key)
Definition: HBaseView.h:984
bool m_bSpritingAllowed
Definition: HBaseView.h:2417
HBaseOperator * m_pHandleOperator
Definition: HBaseView.h:2513
bool m_bGeometryChanged
Definition: HBaseView.h:2437
bool GetSuppressUpdateTick()
Definition: HBaseView.h:1669
Segment-level display lists.
Definition: HBaseView.h:187
HMarkupManager * m_pMarkupManager
Definition: HBaseView.h:2444
edges/lines only
Definition: HBaseView.h:63
Square.
Definition: HBaseView.h:285
HVector m_FrontAxis
Definition: HBaseView.h:2452
bool m_bInvertMouseWheelZoom
Definition: HBaseView.h:2522
ViewMode m_ViewMode
Definition: HBaseView.h:2486
image driver shadow generation
Definition: HBaseView.h:243
int m_AxisWindowSize
Definition: HBaseView.h:2419
HSharedKey * GetSharedKey()
Definition: HBaseView.h:1504
bool GetCuttingPlanesVisibility()
Definition: HBaseView.h:753
void * GetWindowHandle()
Definition: HBaseView.h:2020
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:103
void SetAllowInteractiveShadows(bool onoff)
Definition: HBaseView.h:1982
Definition: HConstantFrameRate.h:79
HCamera m_InitialCamera
Definition: HBaseView.h:2518
int m_InUpdateInternal
Definition: HBaseView.h:2495
ViewMode m_IsoDefault
Definition: HBaseView.h:2431
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:2421
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:2516
UpDirection
Definition: HBaseView.h:221
Gooch Shaded.
Definition: HBaseView.h:85
HShadowMode
Definition: HGlobals.h:92
HC_KEY m_SceneKey
Definition: HBaseView.h:2458
void SetMaximumUpdateTime(float mut)
Definition: HBaseView.h:2165
HSharedKey * m_pSharedKey
Definition: HBaseView.h:2493
HShadowMode m_ShadowMode
Definition: HBaseView.h:2492
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:2506
bool m_bCameraChanged
Definition: HBaseView.h:2510
self-explanatory
Definition: HBaseView.h:100
bool GetSplatRendering()
Definition: HBaseView.h:2337
bool m_bInitialCameraSet
Definition: HBaseView.h:2519
virtual bool GetInvertMouseWheelZoom()
Definition: HBaseView.h:1893
void SetIntersectPolylinesKey(HC_KEY intersectpolylines_key)
Definition: HBaseView.h:999
int m_UpdateInterrupted
Definition: HBaseView.h:2494
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:2483
int GetYSize()
Definition: HBaseView.h:2223
Definition: HIOManager.h:245
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:2446
Like AxisOn, but centered differently.
Definition: HBaseView.h:216
bool m_bShadowRegenerationToggle
Definition: HBaseView.h:2508
HC_KEY m_lIncludeLinkKey
Definition: HBaseView.h:2482
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:2102
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:2361
SplatSymbol GetSplatSymbol()
Definition: HBaseView.h:2349
bool GetInitialCameraSet()
Definition: HBaseView.h:2025
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:2407
HTouchManager * m_TouchManager
Definition: HBaseView.h:2428
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:2470
positive X, positive Y, positive Z (same as HViewISO)
Definition: HBaseView.h:109
int m_WindowColorPercentage
Definition: HBaseView.h:2451
flat shading
Definition: HBaseView.h:69
bool HaveMarkupManager()
Definition: HBaseView.h:485
float m_MaximumUpdateTime
Definition: HBaseView.h:2517
HC_KEY m_ConstructionKey
Definition: HBaseView.h:2466
bool m_bRecordCamera
Definition: HBaseView.h:2520
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:2074
int GetLightCount()
Definition: HBaseView.h:1261
virtual HBaseOperator * GetHandleOperator()
Definition: HBaseView.h:1960
Definition: HSharedKey.h:80
virtual void SetHandleOperator(HBaseOperator *op)
Definition: HBaseView.h:1955
void GetViewAxis(HVector *front_axis, HVector *top_axis)
Definition: HBaseView.h:2154
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