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