00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218 #ifndef INC_GRE_LAYER_H
00219 #define INC_GRE_LAYER_H
00220
00221 #ifndef INC_GRE_OBJECTBASE_H
00222 #include <gre/objectbase.h>
00223 #endif
00224
00225 #ifndef INC_GRE_VIEWABLE_H
00226 #include <gre/viewable.h>
00227 #endif
00228
00229 #ifndef INC_GRE_3DWIREFRAME_H
00230 #include <gre/3dwireframe.h>
00231 #endif
00232
00233 #if !defined(INC_GRE_MFCTREEVIEW) && defined(WIN32_MFC)
00234 #include <gre/mfctreeview.h>
00235 #endif
00236
00237 #if !defined(INC_MI32_GRTREE_H)
00238 #include <mi32/grtree.h>
00239 #endif
00240
00241 #ifndef INC_MI32_RANGE_H
00242 #include <mi32/range.h>
00243 #endif
00244
00245 #ifndef INC_RVC_ELEMENT_H
00246 #include <rvc/element.h>
00247 #endif
00248
00249 #ifndef INC_MI32_RVCPARMS_H
00250 #include <mi32/rvcparms.h>
00251 #endif
00252
00253 #ifndef INC_MI32_DBEDIT_H
00254 #include <mi32/dbedit.h>
00255 #endif
00256
00257 #ifndef INC_MI32_REGION2D_H
00258 #include <mi32/region2d.h>
00259 #endif
00260
00261 #ifndef INC_MI32_TRANS2DC_H
00262 #include <mi32/trans2dc.h>
00263 #endif
00264
00265 class BITSET;
00266 class BITSET_UNOWNED;
00267 struct SMLCONTEXT;
00268 struct SMLCLASSMEMBER;
00269 union SMLARG;
00270 struct DATATIPPARMS;
00271 namespace RVC {
00272 class GETOBJFILTER;
00273 }
00274 namespace MGD {
00275 class DEVICE;
00276 }
00277
00278
00279
00280
00281 enum DISPFLAGS {
00282 DISPFLAG_None = 0x00000000,
00283 DISPFLAG_SaveDrawnSetOBS = 0x00000001,
00284 DISPFLAG_KeepOpenOBS = 0x00000002,
00285 DISPFLAG_UseTempFile = 0x00000004,
00286 DISPFLAG_EditObjectOBS = 0x00000008,
00287 DISPFLAG_NoDrawLabels = 0x40000000,
00288 DISPFLAG_DrawLabelsOnly = 0x80000000,
00289
00290 DISPFLAG_WarpToGeorefModel = 0x00000100,
00291 DISPFLAG_UsesTransparency = 0x00000200,
00292 DISPFLAG_NoDrawWireframe = 0x00000400,
00293 DISPFLAG_MayUseTransparency = 0x00000800,
00294 DISPFLAG_Antialias = 0x00001000,
00295 DISPFLAG_HintThinLines = 0x00002000,
00296 DISPFLAG_EnableMultiPassRender = 0x00004000,
00297 DISPFLAG_NoMergeLegendDups = 0x00008000,
00298
00299 DISPFLAG_VectDrawNodes = 0x00010000,
00300 DISPFLAG_VectLinesFirst = 0x00020000,
00301 DISPFLAG_VectNoFillPoly = 0x00040000,
00302 DISPFLAG_VectNoFillHighlighted = 0x00080000,
00303
00304 DISPFLAG_TINEdgesFirst = 0x00020000,
00305 DISPFLAG_TINNoFillTri = 0x00040000,
00306
00307 DISPFLAG_RastNullTransp = 0x00010000,
00308 DISPFLAG_RastSkipOddLines = 0x00020000,
00309 DISPFLAG_RastSkipEvenLines = 0x00040000,
00310 DISPFLAG_RastDoBlendMask = 0x00080000,
00311 DISPFLAG_RastHyperspectLossy = 0x00400000,
00312
00313 DISPFLAG_SurfProjOffEdge = 0x00010000,
00314
00315 DISPFLAG_FormulaNullTransp = 0x00010000,
00316 DISPFLAG_FormulaSkipOddLines = 0x00020000,
00317 DISPFLAG_FormulaSkipEvenLines = 0x00040000,
00318 };
00319 DEFINE_ENUM_OP_BITWISE(DISPFLAGS);
00320
00321
00322
00323 enum LAYERDRAWFLAGS {
00324 LAYERDRAWFLAG_None = 0x0000,
00325
00326 LAYERDRAWFLAG_Clip = 0x0002,
00327 LAYERDRAWFLAG_NoClipToGroup = 0x0004,
00328 LAYERDRAWFLAG_SaveToTemplate = 0x0008,
00329 LAYERDRAWFLAG_EditInTNTserver = 0x0010,
00330 LAYERDRAWFLAG_MaskAll = 0xFFFF,
00331 };
00332 DEFINE_ENUM_OP_BITWISE(LAYERDRAWFLAGS);
00333
00334
00335
00336 enum LAYERFLAGS {
00337 LAYERFLAG_None = 0x00000000,
00338 LAYERFLAG_NoSelNewObj = 0x00000010,
00339 LAYERFLAG_HiliteColorSet = 0x00000040,
00340 LAYERFLAG_DataTipIgnoreDrawnSet = 0x00000080,
00341 LAYERFLAG_3D = 0x00000200,
00342 LAYERFLAG_KeepOpen = 0x00020000,
00343 LAYERFLAG_Editable = 0x00040000,
00344 LAYERFLAG_CanShowInLocator = 0x00100000,
00345 LAYERFLAG_IgnoreExtents = 0x00400000,
00346 LAYERFLAG_NoGeoreference = 0x00080000,
00347 LAYERFLAG_NoDrawActiveElem = 0x01000000,
00348 LAYERFLAG_NoShowInLayerMgr = 0x02000000,
00349 LAYERFLAG_NoAllowHide = 0x04000000,
00350 LAYERFLAG_NoAllowDelete = 0x08000000,
00351 LAYERFLAG_Temporary = 0x10000000,
00352 LAYERFLAG_MaskAll = 0xFFFFFFFF,
00353 };
00354 DEFINE_ENUM_OP_BITWISE(LAYERFLAGS);
00355
00356
00357
00358 #define GRE_MAXLAYERTYPES 32
00359
00360
00361 class GRE_LAYER : public GRE_OBJECT {
00362 public:
00363
00364
00365 enum TYPE {
00366 TYPE_None = 0,
00367 TYPE_Raster = 1,
00368 TYPE_Vector = 2,
00369 TYPE_CAD = 3,
00370 TYPE_DBPinmap = 4,
00371 TYPE_MapGrid = 5,
00372 TYPE_ScaleBar = 6,
00373 TYPE_Text = 7,
00374 TYPE_Legend = 8,
00375 TYPE_TIN = 9,
00376 TYPE_Sketch = 10,
00377 TYPE_Region = 11,
00378 TYPE_Surface = 12,
00379 TYPE_Script = 13,
00380 TYPE_Formula = 14,
00381 TYPE_Legend2 = 15,
00382 TYPE_Shape = 16,
00383 TYPE_NEXT
00384
00385 };
00386
00387 enum CREATEFLAGS {
00388 CREATEFLAG_None = 0x0000,
00389 CREATEFLAG_NoCallCreateCB = 0x0001,
00390 CREATEFLAG_Temporary = 0x0002,
00391 CREATEFLAG_NoSelNewObj = 0x0004,
00392 CREATEFLAG_KeepOpen = 0x0008,
00393 CREATEFLAG_Editable = 0x0010,
00394 CREATEFLAG_NoGeoreference = 0x0020,
00395 CREATEFLAG_IgnoreExtents = 0x0040,
00396 CREATEFLAG_NoAllowDelete = 0x0080,
00397 CREATEFLAG_NoControlPanel = 0x0100,
00398 CREATEFLAG_NoComputePos = 0x0200,
00399 CREATEFLAG_NoSetActive = 0x0400,
00400 CREATEFLAG_NoShowInMgr = 0x0800,
00401 };
00402
00403 enum SETACTIVEFLAGS {
00404 SETACTIVEFLAG_None = 0x0000,
00405 SETACTIVEFLAG_First = 0x0001,
00406 SETACTIVEFLAG_Previous = 0x0002,
00407 SETACTIVEFLAG_Next = 0x0004,
00408 SETACTIVEFLAG_Last = 0x0008,
00409 SETACTIVEFLAG_KeepCurrent = 0x0010,
00410 SETACTIVEFLAG_NoWrap = 0x0020,
00411 SETACTIVEFLAG_UpdateScreen = 0x0040,
00412 SETACTIVEFLAG_UpdateBuffers = 0x0080,
00413 };
00414
00415
00416
00417 class GLOBALOPTIONS {
00418 public:
00419
00420 class FORM;
00421
00422 enum DFTNAMEMODE {
00423 DFTNAMEMODE_ObjectDesc = 0,
00424 DFTNAMEMODE_ObjectName = 1,
00425 DFTNAMEMODE_FileObjNames = 2
00426 };
00427
00428 GLOBALOPTIONS (
00429 ): m_DftNameMode(DFTNAMEMODE_ObjectDesc), m_AutoOpenDftTableOnSel(true) { }
00430
00431 #ifdef X_NATIVE
00432 Widget CreateEditForm (
00433 Widget parent,
00434 const Arg *arglist,
00435 int argcount
00436 );
00437 #endif
00438
00439 bool GetAutoOpenDftTableOnSel (
00440 ) const { return (m_AutoOpenDftTableOnSel); }
00441
00442 DFTNAMEMODE GetDftNameMode (
00443 ) const { return (m_DftNameMode); }
00444
00445 void IniRead (
00446 const char *inigroup = 0
00447 );
00448
00449 void IniWrite (
00450 const char *inigroup = 0
00451 ) const;
00452
00453 void SetAutoOpenDftTableOnSel (
00454 bool AutoOpenDftTableOnSel
00455 ) { m_AutoOpenDftTableOnSel = AutoOpenDftTableOnSel; }
00456
00457 void SetDftNameMode (
00458 DFTNAMEMODE DftNameMode
00459 ) { m_DftNameMode = DftNameMode; }
00460
00461 void SetAntialiasing (
00462 bool antialias
00463 ) { m_Antialiasing = antialias; }
00464
00465 void SetHintThinLines (
00466 bool hint
00467 ){ m_HintThinLines = hint;}
00468
00469 bool GetAntialiasing (
00470 ) const { return (m_Antialiasing); }
00471
00472 bool GetDftRenderMultiPass (
00473 ) const { return (m_DftRenderMultiPass); }
00474
00475 bool GetHintThinLines (
00476 ) const { return (m_HintThinLines); }
00477
00478 private:
00479 #ifndef GENERATING_DOXYGEN_OUTPUT
00480 DFTNAMEMODE m_DftNameMode;
00481 bool m_AutoOpenDftTableOnSel;
00482 friend class GRE_LAYER;
00483 bool m_Antialiasing;
00484 bool m_HintThinLines;
00485 bool m_DftRenderMultiPass;
00486
00487 #endif // GENERATING_DOXYGEN_OUTPUT
00488 };
00489
00490 class DISPPARM;
00491
00492 class TYPEDEFN;
00493 class COMPINFO;
00494 class FILTER;
00495 class FILTER_EXCLUDE;
00496
00497 #ifdef X_NATIVE
00498
00499 class OBJMGRFORM {
00500 public:
00501
00502
00503 OBJMGRFORM (
00504 GRE_LAYER *layer
00505 );
00506
00507
00508 ~OBJMGRFORM (
00509 );
00510
00511
00512 Widget Create (
00513 );
00514
00515 void DestroyForm (
00516 );
00517
00518 Widget GetForm (
00519 ) const { return (m_form); }
00520
00521 Widget GetToolMenuButton (
00522 ) const { return (m_ToolIconMB); }
00523
00524
00525 void Hide (
00526 );
00527
00528 void HideDetails (
00529 );
00530
00531
00532
00533 short SetObjMgrPos (
00534 short pindex = -2
00535 );
00536
00537
00538 short Show (
00539 short pindex = -2
00540 );
00541
00542 void ShowDetails (
00543 );
00544
00545 private:
00546 #ifndef GENERATING_DOXYGEN_OUTPUT
00547
00548 GRE_LAYER *m_layer;
00549 Widget m_form;
00550 Widget m_ActiveTB;
00551 Widget m_ShowDetailsTB;
00552 Widget m_ToolIconMB;
00553 Widget m_VisibleIcon[GRE_MAXVIEWS];
00554 Widget m_MinScaleVisibleP;
00555 Widget m_MaxScaleVisibleP;
00556 Widget m_NameLabel;
00557 Widget m_DeleteMB;
00558
00559
00560 static void CB_CmdLayerDelete (Widget, void *vlayer, void*);
00561 static void CB_CmdLayerControls (Widget, void *vlayer, void*);
00562 static void CB_CmdTool (Widget, void *voption, void*);
00563 static void CB_EditScaleRange (Widget, void *vlayer);
00564 static void CB_NotifyGreObject (const GRE_CALLBACK_MSG *msg, void *vpObjMgrForm);
00565 static void CB_NotifyGreView (const GRE_CALLBACK_MSG *msg, void*);
00566 static void CB_ToggleActive (Widget, void *vlayer, XmToggleButtonCallbackStruct*);
00567 static void CB_ToggleShowDetails (Widget, void *vpObjMgrForm, XmToggleButtonCallbackStruct*);
00568 static void CB_ToggleVisibleInViewNum (Widget, void *vViewNum, XmToggleButtonCallbackStruct*);
00569
00570 void OnNotifyGreObject (const GRE_CALLBACK_MSG& msg);
00571 void UpdateShowInternalTables ();
00572 void UpdateShowScaleRanges ();
00573
00574 OBJMGRFORM (const OBJMGRFORM&);
00575 OBJMGRFORM& operator= (const OBJMGRFORM&);
00576
00577 #endif // GENERATING_DOXYGEN_OUTPUT
00578 };
00579 #endif
00580
00581 #ifdef X_NATIVE
00582 class RAWELEMFORM {
00583 public:
00584
00585
00586 explicit RAWELEMFORM (
00587 GRE_LAYER *layer
00588 );
00589
00590
00591 ~RAWELEMFORM (
00592 );
00593
00594 void CreateToggleForm (
00595 );
00596
00597 void DestroyForms (
00598 );
00599
00600 Widget GetToggleForm (
00601 ) const { return (m_ToggleForm); }
00602
00603 void HideForms (
00604 );
00605
00606 bool IsInfoShown (
00607 ) const { return (m_InfoForm != 0 && XtIsManaged(m_InfoForm)); }
00608
00609 void SetElement (
00610 ELEMTYPE ElemType,
00611 INT32 ElemNum
00612 );
00613
00614 short ShowToggleForm (
00615 short pindex
00616 );
00617
00618 void SetInfoText (
00619 const MIUNICODE *string
00620 );
00621
00622
00623
00624 short SetObjMgrPos (
00625 short pindex
00626 );
00627
00628 private:
00629 #ifndef GENERATING_DOXYGEN_OUTPUT
00630
00631 GRE_LAYER *m_layer;
00632 ELEMTYPE m_ElemType;
00633 INT32 m_ElemNum;
00634 Widget m_ToggleForm;
00635 Widget m_ShowInfoTB;
00636 Widget m_InfoForm;
00637 Widget m_ElemNumP;
00638 Widget m_ElemTypeTB[6];
00639 Widget m_InfoXeT;
00640
00641 static void CB_BtnNextSelected (Widget, void*, void*);
00642 static void CB_BtnPrevSelected (Widget, void*, void*);
00643 static void CB_BtnSelectPrev (Widget, void*, void*);
00644 static void CB_BtnSelectNext (Widget, void*, void*);
00645 static void CB_EditElemNum (Widget, void*);
00646 static void CB_ToggleSetElemType (Widget, void*, void*);
00647 static void CB_ToggleShowInfo (Widget, void*, XmToggleButtonCallbackStruct*);
00648 static void EH_ResizeSW (Widget, void*, XEvent*, Boolean*);
00649
00650 void CreateInfoForm ();
00651 void OnEditElemNum ();
00652 void SelectPrevNext (int add);
00653 void SetElemType (ELEMTYPE ElemType);
00654 void ShowInfoForm (bool show);
00655
00656 RAWELEMFORM (const RAWELEMFORM&);
00657 RAWELEMFORM& operator= (const RAWELEMFORM&);
00658
00659 #endif // GENERATING_DOXYGEN_OUTPUT
00660 };
00661 #endif
00662
00663
00664 static bool CanConstructFromObject (
00665 const RVC::OBJITEM& objitem
00666 );
00667
00668
00669
00670 static double ComputeDftMaxVisibleScale (
00671 const RVC::OBJITEM& objitem
00672 );
00673
00674
00675 static ERRVALUE ConstructAndAssignObject (
00676 GRE_GROUP *group,
00677 GRE_LAYER::TYPE layertype,
00678 const RVC::OBJITEM& objitem,
00679 GRE_LAYER **retlayer = 0,
00680 CREATEFLAGS createflags = GRE_LAYER::CREATEFLAG_None,
00681 GRE::LISTPOS listpos = GRE::LISTPOS_Last,
00682 GRE_LAYER *reflayer = 0
00683 );
00684
00685 #ifdef USE_MGUI
00686
00687 static ERRVALUE ConstructAndPromptObject (
00688 MDLGPARENT dlgparent,
00689 GRE_GROUP *group,
00690 GRE_LAYER::TYPE layertype,
00691 GRE_LAYER **retlayer,
00692 CREATEFLAGS createflags,
00693 GRE::LISTPOS listpos,
00694 GRE_LAYER *reflayer,
00695 bool OpenSettings
00696 );
00697 #endif
00698
00699 #ifdef USE_MGUI
00700
00701 static ERRVALUE ConstructFromGeoCat (
00702 MDLGPARENT dlgparent,
00703 GRE_GROUP *group
00704 );
00705 #endif
00706
00707
00708 static ERRVALUE ConstructFromObject (
00709 GRE_GROUP *group,
00710 const RVC::OBJITEM& objitem,
00711 GRE_LAYER **retlayer = 0,
00712 CREATEFLAGS createflags = CREATEFLAG_None,
00713 GRE::LISTPOS listpos = GRE::LISTPOS_Last,
00714 GRE_LAYER *reflayer = 0,
00715 MDLGPARENT dlgparent = 0
00716 );
00717
00718
00719 static ERRVALUE ConstructFromObjList (
00720 GRE_GROUP *group,
00721 const RVC::OBJITEMLIST& objlist,
00722 MDLGPARENT dlgparent = 0
00723 );
00724
00725
00726
00727 static bool EditGlobalSettings (
00728 MDLGPARENT dlgparent
00729 );
00730
00731
00732 static GLOBALOPTIONS::DFTNAMEMODE GetDftNameMode (
00733 ) { return (s_GlobalOptions.m_DftNameMode); }
00734
00735
00736 static const GLOBALOPTIONS& GetGlobalOptions (
00737 ) { InitStatic(); return (s_GlobalOptions); }
00738
00739
00740 static UINT16 GetNumTypes (
00741 ) { return (s_NumTypes); }
00742
00743
00744 static const TYPEDEFN& GetTypeDefn (
00745 UINT16 idx
00746 ) { return (*s_TypeDefns[idx]); }
00747
00748
00749 static const TYPEDEFN* GetTypeDefn (
00750 TYPE layertype
00751 );
00752
00753
00754 static TEXTID GetTypeName (
00755 TYPE layertype
00756 );
00757
00758
00759 static bool HasDenseDetail (
00760 const RVC::OBJITEM& objitem
00761 );
00762
00763 #if defined(X_NATIVE) || defined(WIN32_MFC)
00764
00765 static ERRVALUE PromptObjects (
00766 MDLGPARENT dlgparent,
00767 RVC::OBJITEMLIST& objlist,
00768 GETOBJFLAGS flags=GETOBJFLAG_None,
00769 const MIUNICODE *prompt = 0
00770 );
00771 #endif
00772
00773 #if defined(X_NATIVE) || defined(WIN32_MFC)
00774
00775 static ERRVALUE PromptObjectsAndConstruct (
00776 MDLGPARENT dlgparent,
00777 GRE_GROUP *group
00778 );
00779 #endif
00780
00781
00782 static void RegisterLayerType (
00783 TYPEDEFN& typedefn
00784 );
00785
00786
00787 static void SetAutoOpenDftTableOnSel (
00788 bool AutoOpenDftTableOnSel
00789 ) { s_GlobalOptions.m_AutoOpenDftTableOnSel = AutoOpenDftTableOnSel; }
00790
00791
00792 static void SetDftNameMode (
00793 GLOBALOPTIONS::DFTNAMEMODE DftNameMode
00794 ) { s_GlobalOptions.m_DftNameMode = DftNameMode; }
00795
00796
00797 static void SetGlobalOptions (
00798 const GLOBALOPTIONS& options
00799 ) { s_GlobalOptions = options; }
00800
00801
00802 static void SMLClassInstall (
00803 SMLCONTEXT *context
00804 );
00805
00806 static SMLCLASSMEMBER* GetSMLClassMembers (
00807 );
00808
00809
00810 GRE_LAYER (
00811 GRE_GROUP *group,
00812 TYPE layertype,
00813 DISPPARM& dispparm,
00814 CREATEFLAGS createflags,
00815 GRE::LISTPOS listpos = GRE::LISTPOS_Last,
00816 GRE_LAYER *reflayer = 0
00817 );
00818
00819
00820 virtual ~GRE_LAYER ();
00821
00822 #ifdef WIN32_MFC
00823
00824 void AddTreeViewDetails (
00825 GRE_MFC_TREEVIEW& TreeView,
00826 HTREEITEM hParent,
00827 HTREEITEM hInsertAfter
00828 ) { v_AddTreeViewDetails(TreeView,hParent,hInsertAfter); }
00829 #endif
00830
00831 #ifdef WIN32_MFC
00832
00833 void AddTreeViewLegend (
00834 GRE_MFC_TREEVIEW& TreeView,
00835 HTREEITEM hParent,
00836 HTREEITEM hInsertAfter
00837 ) { v_AddTreeViewLegend(TreeView,hParent,hInsertAfter); }
00838 #endif
00839
00840 #ifdef X_NATIVE
00841
00842 void AppendPopupMenuItems (
00843 Widget widget,
00844 const DPOINT2D *point,
00845 MENUITEMARRAY& menuitems
00846 ) { v_AppendPopupMenuItems(widget,point,menuitems); }
00847 #endif
00848
00849
00850 ERRVALUE AssignObject (
00851 const RVC::OBJITEM& objitem,
00852 MDLGPARENT dlgparent = 0
00853 ) { return (v_AssignObject(objitem,dlgparent)); }
00854
00855 #ifndef NO_DEPRECATED
00856
00857
00858 DEPRECATED ERRVALUE AssignObject (
00859 const FNAMEINODEUC *fnip
00860 );
00861 #endif
00862
00863
00864 bool CanEditInTNTserver (
00865 ) const { return ((drawflags & LAYERDRAWFLAG_EditInTNTserver) != 0); }
00866
00867
00868 bool CanGetElemExtents (
00869 ) const { return (m_CanGetElemExtents); }
00870
00871
00872 bool CanOpenControlPanel (
00873 ) const { return (!m_IsControlPanelDisabled); }
00874
00875
00876 bool CanReportRawElemInfo (
00877 ) const { return (m_CanReportRawElemInfo); }
00878
00879
00880 bool CanShowDetails (
00881 ) const { return (v_CanShowDetails()); }
00882
00883
00884 bool CanTestElementByRegion (
00885 ) const { return (m_CanTestElementByRegion); }
00886
00887
00888 bool CanViewIn2D (
00889 );
00890
00891
00892 bool CanViewIn3D (
00893 );
00894
00895
00896 bool ChangeListPos (
00897 GRE_LAYER* reflayer,
00898 GRE::LISTPOS listpos
00899 );
00900
00901
00902 ERRVALUE CheckDenseDetail (
00903 MDLGPARENT dlgparent
00904 );
00905
00906
00907 void CloseObject (
00908 ) { v_CloseObject(); };
00909
00910
00911 void ComputeMargins (
00912 double& tmargin,
00913 double& bmargin,
00914 double& lmargin,
00915 double& rmargin
00916 ) { v_ComputeMargins(tmargin,bmargin,lmargin,rmargin); }
00917
00918 #ifndef GENERATING_DOXYGEN_OUTPUT
00919
00920 GRE::LAYERVIEW* ConstructLayerView (
00921 GRE_VIEW *view
00922 ) { return (v_ConstructLayerView(view)); }
00923 #endif
00924
00925
00926 GRE_LAYER* Copy (
00927 GRE_GROUP* NewGroup
00928 ) const { return (v_Copy(NewGroup)); }
00929
00930
00931 void DataTipGetDefaultPrefix (
00932 int component,
00933 DATATIPPARMS& DataTipParms
00934 ) const { v_DataTipGetDefaultPrefix(component,DataTipParms); }
00935
00936
00937 const DATATIPPARMS& DataTipGetParms (
00938 int component
00939 ) const { return (v_DataTipGetParms(component)); }
00940
00941
00942 inline int DataTipGetSearchDist (
00943 ) const;
00944
00945
00946
00947 int DataTipGetString (
00948 ELEMTYPE ElemType,
00949 INT32 ElemNum,
00950 MISTRING& string
00951 ) { return (v_DataTipGetString(ElemType,ElemNum,string)); }
00952
00953
00954
00955
00956
00957 int DataTipGetString (
00958 const DPOINT2D& point,
00959 MISTRING& string,
00960 GRE_VIEW *view = 0
00961 ) { return (v_DataTipGetString(point,string,view)); }
00962
00963
00964 bool DataTipHasAvailable (
00965 ) const;
00966
00967
00968 bool DataTipHasEnabled (
00969 ) const;
00970
00971
00972
00973 bool DataTipIsEnabled (
00974 ) const { return (m_DataTipEnabled); }
00975
00976
00977 void DataTipSetDefaultPrefix (
00978 int component
00979 );
00980
00981
00982 ERRVALUE DataTipSetParms (
00983 int component,
00984 const DATATIPPARMS& DataTipParms
00985 ) { return (v_DataTipSetParms(component,DataTipParms)); }
00986
00987
00988 INT32 DbListIndexToElemNum (
00989 int component,
00990 INT32 index
00991 ) { return (v_DbListIndexToElemNum(component,index)); }
00992
00993
00994 INT32 DbListElemNumToIndex (
00995 int component,
00996 INT32 ElemNum
00997 ) { return (v_DbListElemNumToIndex(component,ElemNum)); }
00998
00999
01000 bool DbListIsIndexElemNum (
01001 ) const { return (m_DbListIsIndexElemNum); }
01002
01003
01004 void DestroyAllLayerViews (
01005 );
01006
01007
01008 void DisableControlPanel (
01009 ) { m_IsControlPanelDisabled = true; }
01010
01011
01012 ERRVALUE Draw (
01013 GRE_LAYERDC& layerdc
01014 ) { return (v_Draw(layerdc)); }
01015
01016
01017 ERRVALUE DrawAllViews (
01018 GRE::DRAWCONDITION condition = GRE::DRAWCONDITION_Always
01019 );
01020
01021
01022 ERRVALUE DrawElement (
01023 GRE_VIEW *view,
01024 ELEMTYPE ElemType,
01025 INT32 ElemNum,
01026 GRE::RENDERTARGET Target,
01027 GRE::DRAWFLAGS drawflags = GRE::DRAWFLAG_None
01028 );
01029
01030
01031 ERRVALUE DrawElement (
01032 GRE_VIEW *view,
01033 const RVC::ELEMENT& element,
01034 GRE::RENDERTARGET Target,
01035 GRE::DRAWFLAGS drawflags = GRE::DRAWFLAG_None
01036 ) { return (DrawElement(view,element.GetType(),element.GetNumber(),Target,drawflags)); }
01037
01038
01039 ERRVALUE DrawElementLow (
01040 GRE_LAYERDC& layerdc,
01041 ELEMTYPE ElemType,
01042 INT32 ElemNum,
01043 const void *style
01044 ) { return (v_DrawElementLow(layerdc,ElemType,ElemNum,style)); }
01045
01046
01047 ERRVALUE DrawElements (
01048 GRE_VIEW *view,
01049 ELEMTYPE ElemType,
01050 UINT8 *ElemSet,
01051 GRE::RENDERTARGET Target,
01052 GRE::DRAWFLAGS drawflags = GRE::DRAWFLAG_None
01053 );
01054
01055
01056 ERRVALUE DrawElementsLow (
01057 GRE_LAYERDC& layerdc,
01058 ELEMTYPE ElemType,
01059 const UINT8 *ElemSet,
01060 const void *style
01061 ) { return (v_DrawElementsLow(layerdc,ElemType,ElemSet,style)); }
01062
01063
01064 ERRVALUE DrawElementSample (
01065 const GRE_ELEMSAMPLE_DC& sampledc,
01066 const RVC::ELEMENT& element,
01067 const LRECT2D& samplerect
01068 ) { return (v_DrawElementSample(sampledc,element,samplerect)); }
01069
01070
01071 ERRVALUE DrawHighlighted (
01072 GRE_VIEW *view,
01073 GRE::DRAWFLAGS DrawFlags = GRE::DRAWFLAG_None
01074 );
01075
01076
01077 ERRVALUE DrawLabel (
01078 GRE_LAYERDC& layerdc,
01079 const GRE::LABELPLACE& place,
01080 const COLOR* ForegroundColor = 0
01081 );
01082
01083
01084 ERRVALUE DrawLabels (
01085 GRE_LAYERDC& layerdc
01086 );
01087
01088
01089 void EditColors (
01090 MDLGPARENT dlgparent
01091 );
01092
01093
01094
01095 void EnableDataTip (
01096 bool enable = true
01097 ) { m_DataTipEnabled = enable; return; }
01098
01099
01100
01101 INT32 FindClosestElement (
01102 const DPOINT2D& point,
01103 double searchdist,
01104 double *distret,
01105 int component,
01106 const UINT8 *SearchSet,
01107 GRE_FIND_FLAGS findflags
01108 ) { return (v_FindClosestElement(point,searchdist,distret,component,SearchSet,findflags)); }
01109
01110
01111
01112 INT32 FindElementsByQuery (
01113 ELEMTYPE ElemType,
01114 BITSET_UNOWNED& ElemSet,
01115 const MIUNICODE *QueryScript,
01116 SMLCONTEXT* QueryContext = 0
01117 );
01118
01119
01120
01121
01122 ERRVALUE FindElementsByQueryExt (
01123 ELEMTYPE ElemType,
01124 SIMPLE_ARRAY<UINT8>& Result,
01125 const MIUNICODE *QueryScript,
01126 SMLCONTEXT* QueryContext = 0
01127 );
01128
01129
01130
01131 GRE_LAYER_SURFACE* FindSurfaceLayer (
01132 ) const;
01133
01134 #ifndef GENERATING_DOXYGEN_OUTPUT
01135
01136 void FinishCreation (
01137 bool notify = true
01138 );
01139
01140 #endif
01141
01142
01143
01144 inline bool GetActiveElement (
01145 ELEMTYPE& ElemType,
01146 INT32& ElemNum
01147 ) const;
01148
01149
01150
01151 inline bool GetActiveElement (
01152 RVC::ELEMENT& element
01153 ) const;
01154
01155
01156
01157 inline INT32 GetActiveElemNum (
01158 ) const;
01159
01160
01161
01162 inline ELEMTYPE GetActiveElemType (
01163 ) const;
01164
01165
01166 inline const COLOR& GetColorPedestal (
01167 ) const;
01168
01169
01170
01171 int GetComponent (
01172 ELEMTYPE ElemType
01173 ) const { return (v_GetComponent(ElemType)); }
01174
01175
01176
01177 MICON GetComponentIcon (
01178 int component
01179 ) const { return (v_GetComponentIcon(component)); }
01180
01181
01182
01183 COMPINFO* GetComponentInfo (
01184 int component
01185 ) { return (v_GetComponentInfo(component)); }
01186
01187
01188
01189 const COMPINFO* GetComponentInfo (
01190 int component
01191 ) const { return (const_cast<GRE_LAYER*>(this)->GetComponentInfo(component)); }
01192
01193
01194
01195 COMPINFO* GetComponentInfoByType (
01196 ELEMTYPE elemtype
01197 );
01198
01199
01200
01201 MISTRING GetComponentName (
01202 int component
01203 ) const { return (v_GetComponentName(component)); }
01204
01205
01206 MDLGPARENT GetDialogParent (
01207 ) const;
01208
01209
01210 inline DISPFLAGS GetDispFlags (
01211 ) const;
01212
01213 UINT16 GetDispParmUsage (
01214 ) const { return ((layerflags & LAYERFLAG_Editable) ? DPARMUSAGE_Edit : DPARMUSAGE_Display); }
01215
01216
01217
01218 const void* GetElemDefaultStyle (
01219 ELEMTYPE ElemType
01220 ) const { return (v_GetElemDefaultStyle(ElemType)); }
01221
01222
01223
01224 UINT16 GetElemDrawSelectionMode (
01225 ELEMTYPE ElemType
01226 ) const { return (v_GetElemDrawSelectionMode(ElemType)); }
01227
01228
01229
01230 UINT16 GetElemDrawStyleMode (
01231 ELEMTYPE ElemType
01232 ) const { return (v_GetElemDrawStyleMode(ElemType)); }
01233
01234
01235 ERRVALUE GetElemExtents (
01236 ELEMTYPE ElemType,
01237 INT32 ElemNum,
01238 DRECT3D& Extents
012