00001
00077 #ifndef INC_GRE_LRLIDAR_H
00078 #define INC_GRE_LRLIDAR_H
00079
00080 #ifndef INC_GRE_LAYER_H
00081 #include <gre/layer.h>
00082 #endif
00083
00084 #ifndef INC_GRE_LEGEND_H
00085 #include <gre/legend.h>
00086 #endif
00087
00088 #ifndef INC_GRE_ELEMPARMS_H
00089 #include <gre/elemparms.h>
00090 #endif
00091
00092 #ifndef INC_MI32_SCRNUNIT_H
00093 #include <mi32/scrnunit.h>
00094 #endif
00095
00096 #ifndef INC_MI32_COLORSPREAD_H
00097 #include <mi32/colorspread.h>
00098 #endif
00099
00100 #ifndef INC_MI32_LIDARENUMS_H
00101 #include <mi32/lidarenums.h>
00102 #endif
00103
00104
00105 #ifndef GENERATING_DOXYGEN_OUTPUT
00106
00107 class STAT_UNIVARIATE;
00108 namespace RVC {
00109 class SHAPE;
00110 class DBASE_SHAPE;
00111 }
00112 namespace SPATMOD {
00113 namespace IMAGE {
00114 class PIXELTABLE;
00115 }
00116 }
00117 namespace LIDAR {
00118 namespace LAS {
00119 class DATASET;
00120 class POINTRECORD;
00121 }
00122 }
00123 #endif
00124
00125
00126 namespace GRE {
00127
00128
00130 class LAYER_LIDAR : public LAYER {
00131 public:
00132
00133 #ifndef GENERATING_DOXYGEN_OUTPUT
00134 class PRIV;
00135 #endif
00136
00137 enum COMPONENT {
00138 COMPONENT_Point = 0,
00139
00140 COMPONENT_COUNT
00141 };
00142
00144 class DISPPARM : public LAYER::DISPPARM {
00145 public:
00146
00148 enum RETURNSELECTION {
00149 RETURNSELECTION_None = 0,
00150 RETURNSELECTION_Single = 0x01,
00151 RETURNSELECTION_FirstOfMultiple = 0x02,
00152 RETURNSELECTION_LastOfMultiple = 0x04,
00153 RETURNSELECTION_Intermediate = 0x08,
00154 RETURNSELECTION_Other = 0x10,
00155 RETURNSELECTION_All = 0x1F
00156 };
00157
00158 class DLG;
00159
00160 class POINTPARMS : public GRE::POINTPARMS {
00161 public:
00162
00163 typedef GRE::POINTPARMS BASECLASS;
00164
00165 enum ATTRIBUTE {
00166 ATTRIBUTE_None = 0,
00167 ATTRIBUTE_Class = 1,
00168 ATTRIBUTE_ReturnType = 2,
00169 ATTRIBUTE_ReturnNumber = 3,
00170 ATTRIBUTE_Intensity = 4,
00171 ATTRIBUTE_ScanAngle = 5,
00172 ATTRIBUTE_Elevation = 6,
00173 };
00174
00175 enum DISTRIBUTION {
00176 DISTRIBUTION_Linear = 0,
00177 DISTRIBUTION_Equalize = 1,
00178 DISTRIBUTION_Normalize = 2,
00179 DISTRIBUTION_Logarithmic = 3,
00180 };
00181
00183 enum DATATIP {
00184 DATATIP_ClassName = 1,
00185 DATATIP_ReturnNumberCount = 2,
00186 };
00187
00188 static const SERIALIZERITEM * SerialGetItemDef ();
00189
00190 POINTPARMS ();
00191 POINTPARMS (const POINTPARMS& rhs);
00192 ~POINTPARMS ();
00193
00194 POINTPARMS& operator= (const POINTPARMS& rhs);
00195
00196 ERRVALUE ComputeSpreadColors (COLOR_ARRAY& SpreadColors, int NumColors) const;
00197 ERRVALUE ComputeSpreadColorsIndexed (COLOR_ARRAY& SpreadColors, SIMPLE_ARRAY<UINT8>& ColorIdxTable, const STAT_UNIVARIATE& stats) const;
00198
00199 bool GetCheckIntensity () const
00200 { return (m_CheckIntensity); }
00201 bool GetCheckScanAngle () const
00202 { return (m_CheckScanAngle); }
00203 const COLOR& GetClassColor (UINT8 c) const
00204 { return (m_ClassColor[c]); }
00205 UINT32 GetClassSelection () const
00206 { return (m_ClassSelection); }
00207 ATTRIBUTE GetColorAttribute () const
00208 { return (m_ColorAttribute); }
00209 DISTRIBUTION GetColorDistribution () const
00210 { return (m_ColorDistribution); }
00211 const COLORSPREAD& GetColorSpread () const
00212 { return (m_ColorSpread); }
00213 UINT16 GetColorSpreadLegendLength () const
00214 { return (m_ColorSpreadLegendLength); }
00215 UINT16 GetIntensityMax () const
00216 { return (m_IntensityMax); }
00217 UINT16 GetIntensityMin () const
00218 { return (m_IntensityMin); }
00219 float GetNominalSpacing () const
00220 { return (m_NominalSpacing); }
00221 const COLOR& GetReturnNumColor (UINT8 ReturnNum) const
00222 { return (m_ReturnNumColor[ReturnNum]); }
00223 RETURNSELECTION GetReturnSelection () const
00224 { return (m_ReturnSelection); }
00225 const COLOR& GetReturnTypeColor (UINT8 ReturnType) const
00226 { return (m_ReturnTypeColor[ReturnType]); }
00227 INT8 GetScanAngleMax () const
00228 { return (m_ScanAngleMax); }
00229 INT8 GetScanAngleMin () const
00230 { return (m_ScanAngleMin); }
00231 bool GetShowDeleted () const
00232 { return (m_ShowDeleted); }
00233 ATTRIBUTE GetSizeAttribute () const
00234 { return (m_SizeAttribute); }
00235 float GetSizeDrawMax () const
00236 { return (m_SizeDrawMax); }
00237 float GetSizeDrawMin () const
00238 { return (m_SizeDrawMin); }
00239 float GetSizeSpreadPctMax () const
00240 { return (m_SizeSpreadPctMax); }
00241 float GetSizeSpreadPctMin () const
00242 { return (m_SizeSpreadPctMin); }
00243 SCREENUNIT GetSizeUnitAllSame () const
00244 { return (m_SizeUnitAllSame); }
00245 SCREENUNIT GetSizeUnitRange () const
00246 { return (m_SizeUnitRange); }
00247
00248 bool IsClassSelected (UINT16 ClassNumber) const
00249 { return ((m_ClassSelection & (1 << ClassNumber)) != 0); }
00250 bool IsClassSelectedAll () const
00251 { return (m_ClassSelection == UINT32_MAX); }
00252
00253 void SetCheckIntensity (bool CheckIntensity)
00254 { m_CheckIntensity = CheckIntensity; }
00255 void SetCheckScanAngle (bool CheckScanAngle)
00256 { m_CheckScanAngle = CheckScanAngle; }
00257 void SetClassColor (UINT8 c, const COLOR& color)
00258 { m_ClassColor[c] = color; }
00259 void SetClassSelection (UINT32 ClassSelection)
00260 { m_ClassSelection = ClassSelection; }
00261 void SetColorAttribute (ATTRIBUTE ColorAttribute)
00262 { m_ColorAttribute = ColorAttribute; }
00263 void SetColorDistribution (DISTRIBUTION ColorDistribution)
00264 { m_ColorDistribution = ColorDistribution; }
00265 void SetColorSpread (const COLORSPREAD& ColorSpread)
00266 { m_ColorSpread = ColorSpread; }
00267 void SetColorSpreadLegendLength (UINT16 ColorSpreadLegendLength)
00268 { m_ColorSpreadLegendLength = ColorSpreadLegendLength; }
00269
00270 void SetDefaults (RVC::DBASE_SHAPE& DbShape);
00271
00272 void SetIntensityRange (UINT16 IntensityMin, UINT16 IntensityMax)
00273 { m_IntensityMin = IntensityMin; m_IntensityMax = IntensityMax; }
00274 void SetNominalSpacing (float NominalSpacing)
00275 { m_NominalSpacing = NominalSpacing; }
00276 void SetReturnSelection (RETURNSELECTION ReturnSelection)
00277 { m_ReturnSelection = ReturnSelection; }
00278 void SetReturnNumColor (UINT8 ReturnNum, const COLOR& color)
00279 { m_ReturnNumColor[ReturnNum] = color; }
00280 void SetReturnTypeColor (UINT8 ReturnType, const COLOR& color)
00281 { m_ReturnTypeColor[ReturnType] = color; }
00282 void SetScanAngleRange (INT8 ScanAngleMin, INT8 ScanAngleMax)
00283 { m_ScanAngleMin = ScanAngleMin; m_ScanAngleMax = ScanAngleMax; }
00284 void SetShowDeleted (bool ShowDeleted)
00285 { m_ShowDeleted = ShowDeleted; }
00286 void SetSizeAttribute (ATTRIBUTE SizeAttribute)
00287 { m_SizeAttribute = SizeAttribute; }
00288 void SetSizeDrawRange (float SizeDrawMin, float SizeDrawMax)
00289 { m_SizeDrawMin = SizeDrawMin; m_SizeDrawMax = SizeDrawMax; }
00290 void SetSizeSpreadPctRange (float SizeSpreadPctMin, float SizeSpreadPctMax)
00291 { m_SizeSpreadPctMin = SizeSpreadPctMin; m_SizeSpreadPctMax = SizeSpreadPctMax; }
00292 void SetSizeUnitAllSame (SCREENUNIT SizeUnitAllSame)
00293 { m_SizeUnitAllSame = SizeUnitAllSame; }
00294 void SetSizeUnitRange (SCREENUNIT SizeUnitRange)
00295 { m_SizeUnitRange = SizeUnitRange; }
00296
00297 void Validate (RVC::DBASE_SHAPE& DbShape);
00298
00299 private:
00300 #ifndef GENERATING_DOXYGEN_OUTPUT
00301 typedef POINTPARMS THISCLASS;
00302
00303 UINT32 m_ClassSelection;
00304 UINT16 m_IntensityMin;
00305 UINT16 m_IntensityMax;
00306 RETURNSELECTION m_ReturnSelection;
00307 INT8 m_ScanAngleMin;
00308 INT8 m_ScanAngleMax;
00309 bool m_CheckIntensity;
00310 bool m_CheckScanAngle;
00311 bool m_ShowDeleted;
00312 ATTRIBUTE m_ColorAttribute;
00313 DISTRIBUTION m_ColorDistribution;
00314 COLORSPREAD m_ColorSpread;
00315 UINT16 m_ColorSpreadLegendLength;
00316 COLOR m_ClassColor[32];
00317 COLOR m_ReturnTypeColor[LIDAR::POINTRETURNTYPE_NUMTYPES];
00318 COLOR m_ReturnNumColor[8];
00319 ATTRIBUTE m_SizeAttribute;
00320 DISTRIBUTION m_SizeDistribution;
00321 SCREENUNIT m_SizeUnitAllSame;
00322 SCREENUNIT m_SizeUnitRange;
00323 float m_SizeSpreadPctMin;
00324 float m_SizeSpreadPctMax;
00325 float m_SizeDrawMin;
00326 float m_SizeDrawMax;
00327 float m_NominalSpacing;
00328
00329 void Copy (const POINTPARMS& rhs);
00330 void SetDefaultClassColors (RVC::DBASE_SHAPE& DbShape);
00331 #endif
00332 };
00333
00334 class TERRAINPARMS {
00335 public:
00336
00337 enum DISPLAYMODE {
00338 DISPLAYMODE_None = 0,
00339 DISPLAYMODE_ShadedRelief = 1,
00340 DISPLAYMODE_ColorElevation = 2,
00341 DISPLAYMODE_ColorShaded = 3,
00342 };
00343
00344 enum COMPUTEMODE {
00345 COMPUTEMODE_Dynamic = 1,
00346 COMPUTEMODE_Static = 2
00347 };
00348
00349 static const SERIALIZERITEM * SerialGetItemDef ();
00350
00351 TERRAINPARMS ();
00352 ~TERRAINPARMS ();
00353
00354 ERRVALUE ComputeSpreadColors (SPATMOD::IMAGE::PIXELTABLE& PixelTable) const;
00355
00356 UINT32 GetClassSelection () const
00357 { return (m_ClassSelection); }
00358 const COLORSPREAD& GetColorSpread () const
00359 { return (m_ColorSpread); }
00360 DISPLAYMODE GetDisplayMode () const
00361 { return (m_DisplayMode); }
00362 UINT8 GetElevDistribMethod () const
00363 { return (m_ElevDistribMethod); }
00364 const DOUBLE_RANGE& GetElevRangePct () const
00365 { return (m_ElevRangePct); }
00366 bool GetHideAllPoints () const
00367 { return (m_HideAllPoints); }
00368 float GetMinPointSpacing () const
00369 { return (m_MinPointSpacing); }
00370 RETURNSELECTION GetReturnSelection () const
00371 { return (m_ReturnSelection); }
00372 double GetShadeAzimAngle () const
00373 { return (m_ShadeAzimAngle); }
00374 double GetShadeElevAngle () const
00375 { return (m_ShadeElevAngle); }
00376 UINT8 GetShadeSmoothMethod () const
00377 { return (m_ShadeSmoothMethod); }
00378 double GetShadeZScale () const
00379 { return (m_ShadeZScale); }
00380
00381 bool IsClassSelected (UINT16 ClassNumber) const
00382 { return ((m_ClassSelection & (1 << ClassNumber)) != 0); }
00383 bool IsClassSelectedAll () const
00384 { return (m_ClassSelection == UINT32_MAX); }
00385
00386 void SetClassSelection (UINT32 ClassSelection)
00387 { m_ClassSelection = ClassSelection; }
00388
00389 void SetColorSpread (const COLORSPREAD& ColorSpread)
00390 { m_ColorSpread = ColorSpread; }
00391
00392 void SetDefaults ();
00393
00394 void SetDisplayMode (DISPLAYMODE DisplayMode)
00395 { m_DisplayMode = DisplayMode; }
00396
00398 void SetElevDistribMethod (
00399 UINT8 ElevDistribMethod
00400 ) { m_ElevDistribMethod = ElevDistribMethod; }
00401
00402 void SetElevRangePct (const DOUBLE_RANGE& ElevRangePct)
00403 { m_ElevRangePct = ElevRangePct; }
00404
00405 void SetHideAllPoints (bool HideAllPoints)
00406 { m_HideAllPoints = HideAllPoints; }
00407
00408 void SetMinPointSpacing (float MinPointSpacing)
00409 { m_MinPointSpacing = MinPointSpacing; }
00410
00411 void SetReturnSelection (RETURNSELECTION ReturnSelection)
00412 { m_ReturnSelection = ReturnSelection; }
00413
00414 void SetShadeAzimAngle (double ShadeAzimAngle)
00415 { m_ShadeAzimAngle = ShadeAzimAngle; }
00416
00417 void SetShadeElevAngle (double ShadeElevAngle)
00418 { m_ShadeElevAngle = ShadeElevAngle; }
00419
00420 void SetShadeSmoothMethod (UINT8 ShadeSmoothMethod)
00421 { m_ShadeSmoothMethod = ShadeSmoothMethod; }
00422
00423 void SetShadeZScale (double ShadeZScale)
00424 { m_ShadeZScale = ShadeZScale; }
00425
00426 void Validate ();
00427
00428 private:
00429 #ifndef GENERATING_DOXYGEN_OUTPUT
00430 typedef TERRAINPARMS THISCLASS;
00431
00432 DISPLAYMODE m_DisplayMode;
00433 UINT32 m_ClassSelection;
00434 RETURNSELECTION m_ReturnSelection;
00435 double m_ShadeAzimAngle;
00436 double m_ShadeElevAngle;
00437 double m_ShadeZScale;
00438 DOUBLE_RANGE m_ElevRangePct;
00439 UINT8 m_ElevDistribMethod;
00440 UINT8 m_ShadeSmoothMethod;
00441 bool m_HideAllPoints;
00442 COLORSPREAD m_ColorSpread;
00443 float m_MinPointSpacing;
00444 float m_MaxDetail;
00445
00446 #endif
00447 };
00448
00449 DISPPARM ();
00450
00451 DISPPARM (
00452 const DISPPARM& rhs
00453 ) { Copy(rhs); }
00454
00455 virtual ~DISPPARM (
00456 ) { Free(); }
00457
00459 DISPPARM& operator= (
00460 const DISPPARM& rhs
00461 ) { if (this != &rhs) { Free(); Copy(rhs); } return (*this); }
00462
00464 const RVC::OBJECTNAME& GetGeorefName () const
00465 { return (m_GeorefName); }
00466
00468 const RVC::OBJITEM& GetObjItem () const
00469 { return (m_ObjItem); }
00470
00472 const RVC::OBJITEM& GetObjItemStyle () const
00473 { return (m_ObjItemStyle); }
00474
00476 const POINTPARMS& GetPointParms () const
00477 { return (m_Point); }
00478
00480 const TERRAINPARMS& GetTerrainParms () const
00481 { return (m_Terrain); }
00482
00484 bool IsSingleLAS () const
00485 { return (m_ObjItem.GetObjectType() == RVC::OBJTYPE_Shape); }
00486
00488 ERRVALUE SetObject (
00489 const RVC::OBJITEM& objitem,
00490 bool keepsettings = false
00491 );
00492
00493 private:
00494 #ifndef GENERATING_DOXYGEN_OUTPUT
00495 typedef LAYER_LIDAR::DISPPARM THISCLASS;
00496
00497 static ERRVALUE SerializerCB_StyleFileName (SERIALIZER&, const SERIALIZERITEM *, void *, SERIALIZERITEM::ACTION);
00498
00499 RVC::OBJITEM m_ObjItem;
00500 RVC::OBJECTNAME m_GeorefName;
00501 RVC::OBJITEM m_ObjItemStyle;
00502 POINTPARMS m_Point;
00503 TERRAINPARMS m_Terrain;
00504
00505 void Copy (const DISPPARM&);
00506 void Free ();
00507 void GetFilePathDispParm (FILEPATH& filepath) const;
00508
00510 virtual ERRVALUE SerialRead (SERIALIZER& serializer);
00511 virtual ERRVALUE SerialWrite (SERIALIZER& serializer, const char *tagname = 0) const;
00512
00514 virtual const SERIALIZERITEM * SerialGetItemDef (SERIALIZER& serializer) const;
00515 virtual ERRVALUE v_SetObjItem (const RVC::OBJITEM& objitem, bool replace);
00516 virtual ERRVALUE v_Validate ();
00517
00518 friend class LAYER_LIDAR;
00519 friend class LAYER_LIDAR::PRIV;
00520 #endif
00521 };
00522
00524 static void RegisterType ();
00525
00527 explicit LAYER_LIDAR (
00528 GRE::GROUP *group,
00529 CREATEFLAGS createflags = CREATEFLAG_None,
00530 GRE::LISTPOS listpos = GRE::LISTPOS_Last,
00531 LAYER *reflayer = 0
00532 );
00533
00535 virtual ~LAYER_LIDAR ();
00536
00538 LIDAR::LAS::DATASET& GetDatasetLAS () const;
00539
00541 const DISPPARM& GetDispParm (
00542 ) const { return (m_dispparm); }
00543
00545 void GetSpecialColorAndSize (
00546 const LIDAR::LAS::POINTRECORD& PointRec,
00547 GRE::VIEW *view,
00548 COLOR& color,
00549 UINT16& size
00550 ) const;
00551
00558 ERRVALUE SetDispParm (
00559 const DISPPARM& dispparm
00560 );
00561
00562 private:
00563 #ifndef GENERATING_DOXYGEN_OUTPUT
00564
00565 DISPPARM m_dispparm;
00566 COMPINFO m_PointCompInfo;
00567 #ifdef USE_MGUI
00568 DISPPARM::DLG *m_pDlgControlPanel;
00569 #endif
00570 PRIV *m_pPriv;
00571
00572 ERRVALUE DlgEditClassDescSet (MDLGPARENT dlgparent);
00573 const MISTRING& GetClassName (UINT16 ClassNumber) const;
00574 const STAT_UNIVARIATE& GetStatIntensity () const;
00575 bool IsClassUsed (UINT16 ClassNumber) const;
00576 ERRVALUE SetupLegend ();
00577
00578
00579 virtual ERRVALUE v_AssignObject (const RVC::OBJITEM& objitem, MDLGPARENT dlgparent);
00580 virtual bool v_CanShowDetails () const;
00581 virtual double v_ComputeDftMaxVisibleScale () const;
00582 virtual GRE::LAYERSECTION* v_ConstructLayerSection (GRE::VIEW* view);
00583 #ifdef USE_MGUI
00584 virtual int v_ControlPanel (MDLGPARENT dlgparent, UINT32 flags = 0);
00585 #endif
00586 virtual LAYER* v_Copy (GRE::GROUP *group) const;
00587 virtual const DATATIPPARMS* v_DataTipGetParms (int component) const;
00588 virtual int v_DataTipGetString (ELEMTYPE ElemType, ELEMNUM ElemNum, MISTRING& string, SPATMOD::IMAGE::STAGE_ARRAY& images);
00589 virtual ERRVALUE v_DataTipSetParms (int component, const DATATIPPARMS& DataTipParms);
00590 virtual ERRVALUE v_Draw (LAYERDC& layerdc);
00591 virtual ERRVALUE v_DrawElementLow (LAYERDC& layerdc, ELEMTYPE ElemType, ELEMNUM ElemNum, const void *style);
00592 virtual ERRVALUE v_DrawElementsLow (LAYERDC& layerdc, ELEMTYPE ElemType, const UNSIGNEDSET *pElemSet, const void *style);
00593 virtual ERRVALUE v_EstimateRangeZ (const LAYERVIEW *pLayerView, DOUBLE_RANGE& range) const;
00594 virtual ELEMNUM v_FindClosestElement (const DPOINT2D& point, double searchdist, double *distret, int component, const UNSIGNEDSET *pSearchSet, GRE::FINDFLAGS findflags);
00595 virtual int v_GetComponent (ELEMTYPE ElemType) const;
00596 virtual MICONSTRUCT* v_GetComponentIcon (int component) const;
00597 virtual COMPINFO* v_GetComponentInfo (int component);
00598 virtual MISTRING v_GetComponentName (int component) const;
00599 virtual const void* v_GetElemDefaultStyle (ELEMTYPE ElemType) const;
00600 virtual UINT16 v_GetElemDrawSelectionMode (ELEMTYPE ElemType) const;
00601 virtual UINT16 v_GetElemDrawStyleMode (ELEMTYPE ElemType) const;
00602 virtual ERRVALUE v_GetElemExtents (ELEMTYPE ElemType, ELEMNUM ElemNum, DRECT3D& Extents);
00603 virtual ERRVALUE v_GetElemSetByExtent (ELEMTYPE ElemType, const DRECT2D& Extent, UNSIGNEDSET& ElemSet);
00604 virtual ELEMTYPE v_GetElemType (int component) const;
00605 virtual bool v_GetGeorefName (RVC::OBJECTNAME& name, int component = 0) const;
00606 virtual const GRE::LEGEND* v_GetLegend (ELEMTYPE ElemType);
00607 virtual INT64 v_GetNumElements (ELEMTYPE ElemType);
00608 virtual const RVC::OBJITEM& v_GetObjItem (int component) const;
00609 virtual ERRVALUE v_GetStyleInfo (ELEMTYPE ElemType, RVC::OBJITEM& ObjItem, RVC::OBJECTNAME& TableName);
00610 virtual bool v_HasDenseDetail () const;
00611 virtual bool v_HasDispParmSubObject () const;
00612 virtual bool v_HasLegend () const;
00613 virtual bool v_IsTableUsableForComponent (int component, const RVC::DBTABLE& table) const;
00614 #ifdef USE_MGUI
00615 virtual void v_MenuAddLayerItems (MGUI::MENU& menu);
00616 virtual ERRVALUE v_PromptObject (bool OpenCtrlPanel, MDLGPARENT dlgparent);
00617 #endif
00618 virtual ERRVALUE v_ReportRawElemInfo (MISTRING& infostr, ELEMTYPE ElemType, ELEMNUM ElemNum);
00619 virtual ERRVALUE v_SaveDispParmSubObject (RVC::DISPPARMUSAGE usage);
00620 virtual const char* v_SerialGetTagName () const;
00621 virtual ERRVALUE v_SerialRead (SERIALIZER& serializer);
00622 virtual void v_SetElemDrawSelectionMode (ELEMTYPE ElemType, UINT16 SelectMode);
00623 virtual void v_SetElemDrawStyleMode (ELEMTYPE ElemType, UINT16 StyleMode);
00624 virtual void v_SetLegendSampleFlags (MGD::STYLESAMPLEFLAGS SampleFlags);
00625 virtual void v_SetObjectDescriptor (int component, const RVC::DESCRIPTOR& descriptor);
00626 virtual ERRVALUE v_SetStyleObjItem (const RVC::OBJITEM& ObjItem);
00627 virtual int v_TestElementByRegion (ELEMTYPE ElemType, ELEMNUM ElemNum, const REGION2D& Region, TESTCRITERIA TestMode);
00628 #ifdef USE_MGUI
00629 virtual MGUI::CTRL_TREE::ITEMHND v_TreeViewAddUpdateLegend (GRE::CTRL_TREEVIEW& TreeView, MGUI::CTRL_TREE::ITEMHND hndParent, MGUI::CTRL_TREE::ITEMHND hndInsertAfter);
00630 virtual void v_TreeViewAddUpdateDetails (GRE::CTRL_TREEVIEW& TreeView, MGUI::CTRL_TREE::ITEMHND hndParent, MGUI::CTRL_TREE::ITEMHND hndInsertAfter);
00631 #endif
00632 virtual int v_UpdateExtents (bool forceupdate);
00633
00634
00635 LAYER_LIDAR (const LAYER_LIDAR&);
00636 LAYER_LIDAR& operator= (const LAYER_LIDAR&);
00637
00638 #endif // GENERATING_DOXYGEN_OUTPUT
00639 };
00640
00641 #ifndef GENERATING_DOXYGEN_OUTPUT
00642 DEFINE_ENUM_OP_BITWISE(LAYER_LIDAR::DISPPARM::RETURNSELECTION)
00643 #endif
00644
00645 }
00646
00647 #endif // INC_GRE_LRLIDAR_H
00648