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