SAGA API Version 9.13
Loading...
Searching...
No Matches
pointcloud.h
Go to the documentation of this file.
1
3// //
4// SAGA //
5// //
6// System for Automated Geoscientific Analyses //
7// //
8// Application Programming Interface //
9// //
10// Library: SAGA_API //
11// //
12//-------------------------------------------------------//
13// //
14// pointcloud.h //
15// //
16// Copyright (C) 2009 by Olaf Conrad //
17// //
18//-------------------------------------------------------//
19// //
20// This file is part of 'SAGA - System for Automated //
21// Geoscientific Analyses'. //
22// //
23// This library is free software; you can redistribute //
24// it and/or modify it under the terms of the GNU Lesser //
25// General Public License as published by the Free //
26// Software Foundation, either version 2.1 of the //
27// License, or (at your option) any later version. //
28// //
29// This library is distributed in the hope that it will //
30// be useful, but WITHOUT ANY WARRANTY; without even the //
31// implied warranty of MERCHANTABILITY or FITNESS FOR A //
32// PARTICULAR PURPOSE. See the GNU Lesser General Public //
33// License for more details. //
34// //
35// You should have received a copy of the GNU Lesser //
36// General Public License along with this program; if //
37// not, see <http://www.gnu.org/licenses/>. //
38// //
39//-------------------------------------------------------//
40// //
41// contact: Olaf Conrad //
42// Institute of Geography //
43// University of Hamburg //
44// Germany //
45// //
46// e-mail: oconrad@saga-gis.org //
47// //
49
50//---------------------------------------------------------
51#ifndef HEADER_INCLUDED__SAGA_API__pointcloud_H
52#define HEADER_INCLUDED__SAGA_API__pointcloud_H
53
54
56// //
57// //
58// //
60
61//---------------------------------------------------------
69
70
72// //
73// //
74// //
76
77//---------------------------------------------------------
78#include "shapes.h"
79
80
82// //
83// //
84// //
86
87//---------------------------------------------------------
95
96
98// //
99// //
100// //
102
103//---------------------------------------------------------
105{
106public:
107
108 CSG_PointCloud (void);
109 bool Create (void);
110
111 CSG_PointCloud (const CSG_PointCloud &PointCloud);
112 bool Create (const CSG_PointCloud &PointCloud);
113
114 CSG_PointCloud (const CSG_String &File);
115 bool Create (const CSG_String &File);
116 CSG_PointCloud (const char *File);
117 bool Create (const char *File);
118 CSG_PointCloud (const wchar_t *File);
119 bool Create (const wchar_t *File);
120
121 CSG_PointCloud (CSG_PointCloud *pTemplate);
122 bool Create (CSG_PointCloud *pTemplate);
123
124 virtual ~CSG_PointCloud(void);
125
126 virtual bool Destroy (void);
127
129
130 virtual bool Assign (CSG_Data_Object *pSource, bool bProgress = false);
131
132 virtual bool Save (const CSG_String &File, int Format = 0);
133 virtual bool Save (const char *File, int Format = 0) { return( Save(CSG_String(File), Format) ); }
134 virtual bool Save (const wchar_t *File, int Format = 0) { return( Save(CSG_String(File), Format) ); }
135
136 void Set_XYZ_Precision (bool bDouble) { m_bXYZPrecDbl = bDouble; }
137
138 static bool Get_Header_Content (const CSG_String &FileName, CSG_MetaData &Header);
139
140 //-----------------------------------------------------
141 virtual bool is_Valid (void) const { return( m_nFields > 0 ); }
142 bool is_Compatible (CSG_PointCloud *pPointCloud) const;
143
144 //-----------------------------------------------------
145 virtual bool Add_Field (const CSG_String &Name, TSG_Data_Type Type, int Field = -1);
146 virtual bool Del_Field (int Field);
147 virtual bool Mov_Field (int Field, int Position);
148
149 virtual int Get_Field_Length (int Field, int Encoding = SG_FILE_ENCODING_UNDEFINED) const;
150 virtual bool Set_Field_Type (int Field, TSG_Data_Type Type);
151
152 //-----------------------------------------------------
153 int Get_Attribute_Count (void) const { return( m_nFields - 3 ); }
154 const SG_Char * Get_Attribute_Name (int Field) const { Field += 3; return( Field >= 3 && Field < m_nFields ? m_Field_Info[Field]->m_Name.c_str() : NULL ); }
155 TSG_Data_Type Get_Attribute_Type (int Field) const { Field += 3; return( Field >= 3 && Field < m_nFields ? m_Field_Info[Field]->m_Type : SG_DATATYPE_Undefined ); }
156 int Get_Attribute_Length(int Field, int Encoding = SG_FILE_ENCODING_UNDEFINED) const { return( Get_Field_Length(Field + 3) ); }
157
158 //-----------------------------------------------------
159 bool Add_Point (double x, double y, double z);
160 bool Add_Point (const CSG_Point_3D &Point);
161 bool Del_Point (sLong Index);
162 bool Del_Points (void);
163
164 //-----------------------------------------------------
165 bool Set_Cursor (sLong Index) { return( (m_Cursor = Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL) != NULL ); }
166
167 double Get_X (void) const { return( _Get_Field_Value(m_Cursor , 0) ); }
168 double Get_Y (void) const { return( _Get_Field_Value(m_Cursor , 1) ); }
169 double Get_Z (void) const { return( _Get_Field_Value(m_Cursor , 2) ); }
170 double Get_X (sLong Index) const { return( _Get_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, 0) ); }
171 double Get_Y (sLong Index) const { return( _Get_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, 1) ); }
172 double Get_Z (sLong Index) const { return( _Get_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, 2) ); }
173
174 virtual bool is_NoData ( int Field) const { return( is_NoData_Value(Get_Value( Field)) ); }
175 virtual bool is_NoData (sLong Index, int Field) const { return( is_NoData_Value(Get_Value(Index, Field)) ); }
176
177 virtual bool Set_NoData ( int Field) { return( Set_Value( Field, Get_NoData_Value()) ); }
178 virtual bool Set_NoData (sLong Index, int Field) { return( Set_Value(Index, Field, Get_NoData_Value()) ); }
179
180 virtual double Get_Value ( int Field) const { return( _Get_Field_Value(m_Cursor , Field) ); }
181 virtual double Get_Value (sLong Index, int Field) const { return( _Get_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field) ); }
182
183 virtual bool Get_Value ( int Field, BYTE &Value) const { sLong v; if( Get_Value( Field, v) ) { Value = (BYTE )v; return( true ); } return( false ); }
184 virtual bool Get_Value ( int Field, char &Value) const { sLong v; if( Get_Value( Field, v) ) { Value = (char )v; return( true ); } return( false ); }
185 virtual bool Get_Value ( int Field, WORD &Value) const { sLong v; if( Get_Value( Field, v) ) { Value = (WORD )v; return( true ); } return( false ); }
186 virtual bool Get_Value ( int Field, short &Value) const { sLong v; if( Get_Value( Field, v) ) { Value = (short)v; return( true ); } return( false ); }
187 virtual bool Get_Value ( int Field, DWORD &Value) const { sLong v; if( Get_Value( Field, v) ) { Value = (DWORD)v; return( true ); } return( false ); }
188 virtual bool Get_Value ( int Field, int &Value) const { sLong v; if( Get_Value( Field, v) ) { Value = (int )v; return( true ); } return( false ); }
189 virtual bool Get_Value ( int Field, uLong &Value) const { sLong v; if( Get_Value( Field, v) ) { Value = (uLong)v; return( true ); } return( false ); }
190 virtual bool Get_Value ( int Field, sLong &Value) const { return( _Get_Field_Value(m_Cursor , Field, Value) ); }
191 virtual bool Get_Value ( int Field, double &Value) const { return( _Get_Field_Value(m_Cursor , Field, Value) ); }
192 virtual bool Get_Value ( int Field, CSG_String &Value) const { return( _Get_Field_Value(m_Cursor , Field, Value) ); }
193
194 virtual bool Get_Value (sLong Index, int Field, BYTE &Value) const { sLong v; if( Get_Value(Index, Field, v) ) { Value = (BYTE )v; return( true ); } return( false ); }
195 virtual bool Get_Value (sLong Index, int Field, char &Value) const { sLong v; if( Get_Value(Index, Field, v) ) { Value = (char )v; return( true ); } return( false ); }
196 virtual bool Get_Value (sLong Index, int Field, WORD &Value) const { sLong v; if( Get_Value(Index, Field, v) ) { Value = (WORD )v; return( true ); } return( false ); }
197 virtual bool Get_Value (sLong Index, int Field, short &Value) const { sLong v; if( Get_Value(Index, Field, v) ) { Value = (short)v; return( true ); } return( false ); }
198 virtual bool Get_Value (sLong Index, int Field, DWORD &Value) const { sLong v; if( Get_Value(Index, Field, v) ) { Value = (DWORD)v; return( true ); } return( false ); }
199 virtual bool Get_Value (sLong Index, int Field, int &Value) const { sLong v; if( Get_Value(Index, Field, v) ) { Value = (int )v; return( true ); } return( false ); }
200 virtual bool Get_Value (sLong Index, int Field, uLong &Value) const { sLong v; if( Get_Value(Index, Field, v) ) { Value = (uLong)v; return( true ); } return( false ); }
201 virtual bool Get_Value (sLong Index, int Field, sLong &Value) const { return( _Get_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, Value) ); }
202 virtual bool Get_Value (sLong Index, int Field, double &Value) const { return( _Get_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, Value) ); }
203 virtual bool Get_Value (sLong Index, int Field, CSG_String &Value) const { return( _Get_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, Value) ); }
204
205 virtual bool Set_Value ( int Field, const BYTE &Value) { return( _Set_Field_Value(m_Cursor, Field , (sLong)Value) ); }
206 virtual bool Set_Value ( int Field, const char &Value) { return( _Set_Field_Value(m_Cursor, Field , (sLong)Value) ); }
207 virtual bool Set_Value ( int Field, const WORD &Value) { return( _Set_Field_Value(m_Cursor, Field , (sLong)Value) ); }
208 virtual bool Set_Value ( int Field, const short &Value) { return( _Set_Field_Value(m_Cursor, Field , (sLong)Value) ); }
209 virtual bool Set_Value ( int Field, const DWORD &Value) { return( _Set_Field_Value(m_Cursor, Field , (sLong)Value) ); }
210 virtual bool Set_Value ( int Field, const int &Value) { return( _Set_Field_Value(m_Cursor, Field , (sLong)Value) ); }
211 virtual bool Set_Value ( int Field, const long &Value) { return( _Set_Field_Value(m_Cursor, Field , (sLong)Value) ); }
212 virtual bool Set_Value ( int Field, const uLong &Value) { return( _Set_Field_Value(m_Cursor, Field , (sLong)Value) ); }
213 virtual bool Set_Value ( int Field, const sLong &Value) { return( _Set_Field_Value(m_Cursor, Field , (sLong)Value) ); }
214 virtual bool Set_Value ( int Field, const double &Value) { return( _Set_Field_Value(m_Cursor, Field , Value) ); }
215 virtual bool Set_Value ( int Field, const SG_Char *Value) { return( _Set_Field_Value(m_Cursor, Field , Value) ); }
216
217 virtual bool Set_Value (sLong Index, int Field, const BYTE &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, (sLong)Value) ); }
218 virtual bool Set_Value (sLong Index, int Field, const char &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, (sLong)Value) ); }
219 virtual bool Set_Value (sLong Index, int Field, const WORD &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, (sLong)Value) ); }
220 virtual bool Set_Value (sLong Index, int Field, const short &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, (sLong)Value) ); }
221 virtual bool Set_Value (sLong Index, int Field, const DWORD &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, (sLong)Value) ); }
222 virtual bool Set_Value (sLong Index, int Field, const int &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, (sLong)Value) ); }
223 virtual bool Set_Value (sLong Index, int Field, const long &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, (sLong)Value) ); }
224 virtual bool Set_Value (sLong Index, int Field, const uLong &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, (sLong)Value) ); }
225 virtual bool Set_Value (sLong Index, int Field, const sLong &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, (sLong)Value) ); }
226 virtual bool Set_Value (sLong Index, int Field, const double &Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, Value) ); }
227 virtual bool Set_Value (sLong Index, int Field, const SG_Char *Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, Value) ); }
228
229 double Get_Attribute ( int Field) const { return( Get_Value( Field + 3) ); }
230 double Get_Attribute (sLong Index, int Field) const { return( Get_Value(Index, Field + 3) ); }
231
232 bool Get_Attribute ( int Field, BYTE &Value) const { return( Get_Value( Field + 3, Value) ); }
233 bool Get_Attribute ( int Field, char &Value) const { return( Get_Value( Field + 3, Value) ); }
234 bool Get_Attribute ( int Field, WORD &Value) const { return( Get_Value( Field + 3, Value) ); }
235 bool Get_Attribute ( int Field, short &Value) const { return( Get_Value( Field + 3, Value) ); }
236 bool Get_Attribute ( int Field, DWORD &Value) const { return( Get_Value( Field + 3, Value) ); }
237 bool Get_Attribute ( int Field, int &Value) const { return( Get_Value( Field + 3, Value) ); }
238 bool Get_Attribute ( int Field, uLong &Value) const { return( Get_Value( Field + 3, Value) ); }
239 bool Get_Attribute ( int Field, sLong &Value) const { return( Get_Value( Field + 3, Value) ); }
240 bool Get_Attribute ( int Field, double &Value) const { return( Get_Value( Field + 3, Value) ); }
241 bool Get_Attribute ( int Field, CSG_String &Value) const { return( Get_Value( Field + 3, Value) ); }
242
243 bool Get_Attribute (sLong Index, int Field, BYTE &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
244 bool Get_Attribute (sLong Index, int Field, char &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
245 bool Get_Attribute (sLong Index, int Field, WORD &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
246 bool Get_Attribute (sLong Index, int Field, short &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
247 bool Get_Attribute (sLong Index, int Field, DWORD &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
248 bool Get_Attribute (sLong Index, int Field, int &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
249 bool Get_Attribute (sLong Index, int Field, uLong &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
250 bool Get_Attribute (sLong Index, int Field, sLong &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
251 bool Get_Attribute (sLong Index, int Field, double &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
252 bool Get_Attribute (sLong Index, int Field, CSG_String &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
253
254 bool Set_Attribute ( int Field, const BYTE &Value) { return( Set_Value( Field + 3, Value) ); }
255 bool Set_Attribute ( int Field, const char &Value) { return( Set_Value( Field + 3, Value) ); }
256 bool Set_Attribute ( int Field, const WORD &Value) { return( Set_Value( Field + 3, Value) ); }
257 bool Set_Attribute ( int Field, const short &Value) { return( Set_Value( Field + 3, Value) ); }
258 bool Set_Attribute ( int Field, const DWORD &Value) { return( Set_Value( Field + 3, Value) ); }
259 bool Set_Attribute ( int Field, const int &Value) { return( Set_Value( Field + 3, Value) ); }
260 bool Set_Attribute ( int Field, const long &Value) { return( Set_Value( Field + 3, Value) ); }
261 bool Set_Attribute ( int Field, const uLong &Value) { return( Set_Value( Field + 3, Value) ); }
262 bool Set_Attribute ( int Field, const sLong &Value) { return( Set_Value( Field + 3, Value) ); }
263 bool Set_Attribute ( int Field, const double &Value) { return( Set_Value( Field + 3, Value) ); }
264 bool Set_Attribute ( int Field, const SG_Char *Value) { return( Set_Value( Field + 3, Value) ); }
265
266 bool Set_Attribute (sLong Index, int Field, const BYTE &Value) { return( Set_Value(Index, Field + 3, Value) ); }
267 bool Set_Attribute (sLong Index, int Field, const char &Value) { return( Set_Value(Index, Field + 3, Value) ); }
268 bool Set_Attribute (sLong Index, int Field, const WORD &Value) { return( Set_Value(Index, Field + 3, Value) ); }
269 bool Set_Attribute (sLong Index, int Field, const short &Value) { return( Set_Value(Index, Field + 3, Value) ); }
270 bool Set_Attribute (sLong Index, int Field, const DWORD &Value) { return( Set_Value(Index, Field + 3, Value) ); }
271 bool Set_Attribute (sLong Index, int Field, const int &Value) { return( Set_Value(Index, Field + 3, Value) ); }
272 bool Set_Attribute (sLong Index, int Field, const long &Value) { return( Set_Value(Index, Field + 3, Value) ); }
273 bool Set_Attribute (sLong Index, int Field, const uLong &Value) { return( Set_Value(Index, Field + 3, Value) ); }
274 bool Set_Attribute (sLong Index, int Field, const sLong &Value) { return( Set_Value(Index, Field + 3, Value) ); }
275 bool Set_Attribute (sLong Index, int Field, const double &Value) { return( Set_Value(Index, Field + 3, Value) ); }
276 bool Set_Attribute (sLong Index, int Field, const SG_Char *Value) { return( Set_Value(Index, Field + 3, Value) ); }
277
278 sLong Get_Point (const CSG_Point &Point, double Epsilon = 0.);
279 TSG_Point_3D Get_Point (void) const;
280 TSG_Point_3D Get_Point (sLong Index) const;
281 virtual bool Set_Point ( const TSG_Point_3D &Point);
282 virtual bool Set_Point (sLong Index, const TSG_Point_3D &Point);
283
284
285 //-----------------------------------------------------
286 // Overrides: CSG_Data_Object, CSG_Table, CSG_Shapes
287
288 virtual void Set_Modified (bool bModified = true) { CSG_Data_Object::Set_Modified(bModified); }
289
290 virtual CSG_Table_Record * Get_Record (sLong Index) const;
291
292 virtual CSG_Shape * Get_Shape (const CSG_Point &Point, double Epsilon = 0.);
293
294 virtual bool Del_Record (sLong Index) { return( Del_Point(Index) ); }
295 virtual bool Del_Shape (sLong Index) { return( Del_Point(Index) ); }
296 virtual bool Del_Records (void) { return( Del_Points() ); }
297 virtual bool Del_Shapes (void) { return( Del_Points() ); }
298
299 virtual CSG_Table_Record * Ins_Record (sLong Index, CSG_Table_Record *pCopy = NULL);
300 virtual CSG_Table_Record * Add_Record ( CSG_Table_Record *pCopy = NULL);
301 virtual CSG_Shape * Add_Shape ( CSG_Table_Record *pCopy = NULL, TSG_ADD_Shape_Copy_Mode mCopy = SHAPE_COPY);
302 virtual bool Del_Shape (CSG_Shape *pShape) { return( false ); }
303
304 virtual bool Select (sLong Index , bool bInvert = false);
305 virtual bool Select (CSG_Table_Record *pShape = NULL, bool bInvert = false);
306 virtual bool Select (const TSG_Rect &Extent , bool bInvert = false);
307 virtual bool Select (const TSG_Point &Point , bool bInvert = false);
308
309 virtual bool is_Selected (sLong Index) const;
310
311 virtual sLong Del_Selection (void);
312 virtual sLong Inv_Selection (void);
313 virtual CSG_Table_Record * Get_Selection (sLong Index = 0) const;
314 virtual const CSG_Rect & Get_Selection_Extent(void);
315
316 virtual bool Sort (const CSG_Index &Index);
317
318
319protected:
320
321 virtual bool On_Update (void);
322 virtual bool On_Reload (void);
323 virtual bool On_Delete (void);
324
325 virtual void _On_Construction (void);
326
327 virtual bool _Stats_Update (int Field) const;
328
329
330private:
331
332 bool m_bXYZPrecDbl = true;
333
334 char **m_Points = NULL, *m_Cursor = NULL;
335
336 int m_nPointBytes = 0, *m_Field_Offset = NULL;
337
338 CSG_Array m_Array_Points;
339
340 CSG_Shapes m_Shapes;
341
342
343 bool _Load (const CSG_String &File);
344 bool _Load (CSG_File &Stream);
345 bool _Save (CSG_File &Stream);
346 CSG_MetaData _Create_Header (void) const;
347
348 bool _Add_Field (const SG_Char *Name, TSG_Data_Type Type, int Field = -1);
349
350 bool _Set_Field_Value (char *Record, int Field, const sLong &Value);
351 bool _Set_Field_Value (char *Record, int Field, const double &Value);
352 bool _Set_Field_Value (char *Record, int Field, const SG_Char *Value);
353
354 double _Get_Field_Value (char *Record, int Field ) const;
355 bool _Get_Field_Value (char *Record, int Field, sLong &Value) const;
356 bool _Get_Field_Value (char *Record, int Field, double &Value) const;
357 bool _Get_Field_Value (char *Record, int Field, CSG_String &Value) const;
358
359 bool _Inc_Array (void);
360 bool _Dec_Array (void);
361
362 CSG_Shape * _Shape_Get (sLong Index);
363 void _Shape_Flush (void);
364
365};
366
367
369// //
370// //
371// //
373
374//---------------------------------------------------------
377
380
387
390
392// //
393// //
394// //
396
397//---------------------------------------------------------
398#endif // #ifndef HEADER_INCLUDED__SAGA_API__pointcloud_H
unsigned long long uLong
Definition api_core.h:159
signed long long sLong
Definition api_core.h:158
#define SAGA_API_DLL_EXPORT
Definition api_core.h:94
TSG_Data_Type
Definition api_core.h:1043
@ SG_DATATYPE_Undefined
Definition api_core.h:1059
#define SG_Char
Definition api_core.h:536
@ SG_FILE_ENCODING_UNDEFINED
Definition api_core.h:557
bool is_NoData_Value(double Value) const
Definition dataobject.h:258
double Get_NoData_Value(bool bUpper=false) const
Definition dataobject.h:256
virtual void Set_Modified(bool bOn=true)
Definition dataobject.h:230
bool Del_Point(sLong Index)
virtual bool Get_Value(int Field, int &Value) const
Definition pointcloud.h:188
bool Get_Attribute(int Field, short &Value) const
Definition pointcloud.h:235
virtual bool is_NoData(int Field) const
Definition pointcloud.h:174
double Get_Z(void) const
Definition pointcloud.h:169
bool Set_Attribute(int Field, const char &Value)
Definition pointcloud.h:255
double Get_Attribute(int Field) const
Definition pointcloud.h:229
double Get_Y(sLong Index) const
Definition pointcloud.h:171
virtual bool Set_Value(int Field, const char &Value)
Definition pointcloud.h:206
bool Set_Cursor(sLong Index)
Definition pointcloud.h:165
virtual bool Get_Value(sLong Index, int Field, double &Value) const
Definition pointcloud.h:202
virtual bool Set_NoData(sLong Index, int Field)
Definition pointcloud.h:178
bool Get_Attribute(int Field, WORD &Value) const
Definition pointcloud.h:234
virtual bool Del_Shapes(void)
Definition pointcloud.h:297
double Get_X(sLong Index) const
Definition pointcloud.h:170
virtual bool Set_Value(int Field, const WORD &Value)
Definition pointcloud.h:207
int Get_Attribute_Length(int Field, int Encoding=SG_FILE_ENCODING_UNDEFINED) const
Definition pointcloud.h:156
virtual bool Get_Value(int Field, CSG_String &Value) const
Definition pointcloud.h:192
virtual bool Set_Value(sLong Index, int Field, const DWORD &Value)
Definition pointcloud.h:221
const SG_Char * Get_Attribute_Name(int Field) const
Definition pointcloud.h:154
virtual bool Get_Value(sLong Index, int Field, uLong &Value) const
Definition pointcloud.h:200
bool Set_Attribute(sLong Index, int Field, const char &Value)
Definition pointcloud.h:267
virtual bool Set_Value(int Field, const double &Value)
Definition pointcloud.h:214
virtual bool Set_Value(int Field, const short &Value)
Definition pointcloud.h:208
bool Get_Attribute(int Field, char &Value) const
Definition pointcloud.h:233
bool Get_Attribute(sLong Index, int Field, short &Value) const
Definition pointcloud.h:246
bool Set_Attribute(sLong Index, int Field, const double &Value)
Definition pointcloud.h:275
bool Get_Attribute(sLong Index, int Field, sLong &Value) const
Definition pointcloud.h:250
virtual bool Set_Value(sLong Index, int Field, const sLong &Value)
Definition pointcloud.h:225
bool Get_Attribute(sLong Index, int Field, double &Value) const
Definition pointcloud.h:251
bool Set_Attribute(int Field, const int &Value)
Definition pointcloud.h:259
virtual bool Get_Value(int Field, BYTE &Value) const
Definition pointcloud.h:183
virtual void Set_Modified(bool bModified=true)
Definition pointcloud.h:288
bool Set_Attribute(sLong Index, int Field, const BYTE &Value)
Definition pointcloud.h:266
bool Set_Attribute(int Field, const SG_Char *Value)
Definition pointcloud.h:264
bool Set_Attribute(sLong Index, int Field, const int &Value)
Definition pointcloud.h:271
virtual bool Del_Record(sLong Index)
Definition pointcloud.h:294
virtual bool is_NoData(sLong Index, int Field) const
Definition pointcloud.h:175
bool Set_Attribute(int Field, const WORD &Value)
Definition pointcloud.h:256
int Get_Attribute_Count(void) const
Definition pointcloud.h:153
virtual double Get_Value(int Field) const
Definition pointcloud.h:180
virtual bool Get_Value(sLong Index, int Field, sLong &Value) const
Definition pointcloud.h:201
virtual bool Set_Value(int Field, const BYTE &Value)
Definition pointcloud.h:205
bool Set_Attribute(int Field, const long &Value)
Definition pointcloud.h:260
virtual bool Get_Value(sLong Index, int Field, CSG_String &Value) const
Definition pointcloud.h:203
bool Get_Attribute(sLong Index, int Field, uLong &Value) const
Definition pointcloud.h:249
virtual bool Set_Value(int Field, const SG_Char *Value)
Definition pointcloud.h:215
bool Get_Attribute(sLong Index, int Field, CSG_String &Value) const
Definition pointcloud.h:252
virtual bool Get_Value(sLong Index, int Field, short &Value) const
Definition pointcloud.h:197
double Get_Z(sLong Index) const
Definition pointcloud.h:172
virtual bool Get_Value(int Field, sLong &Value) const
Definition pointcloud.h:190
bool Set_Attribute(int Field, const DWORD &Value)
Definition pointcloud.h:258
bool Set_Attribute(int Field, const double &Value)
Definition pointcloud.h:263
virtual bool Set_Value(sLong Index, int Field, const uLong &Value)
Definition pointcloud.h:224
bool Get_Attribute(sLong Index, int Field, DWORD &Value) const
Definition pointcloud.h:247
bool Get_Attribute(int Field, double &Value) const
Definition pointcloud.h:240
virtual TSG_Data_Object_Type Get_ObjectType(void) const
Returns the object type as defined by TSG_Data_Object_Type. Used for run time type checking.
Definition pointcloud.h:128
virtual bool Set_Value(int Field, const sLong &Value)
Definition pointcloud.h:213
virtual bool Get_Value(int Field, char &Value) const
Definition pointcloud.h:184
TSG_Data_Type Get_Attribute_Type(int Field) const
Definition pointcloud.h:155
virtual bool Get_Value(sLong Index, int Field, DWORD &Value) const
Definition pointcloud.h:198
bool Get_Attribute(sLong Index, int Field, char &Value) const
Definition pointcloud.h:244
bool Get_Attribute(int Field, CSG_String &Value) const
Definition pointcloud.h:241
virtual bool Set_Value(sLong Index, int Field, const long &Value)
Definition pointcloud.h:223
bool Del_Points(void)
virtual bool Set_Value(sLong Index, int Field, const char &Value)
Definition pointcloud.h:218
virtual bool Set_Value(sLong Index, int Field, const double &Value)
Definition pointcloud.h:226
virtual bool Set_Value(int Field, const uLong &Value)
Definition pointcloud.h:212
bool Get_Attribute(sLong Index, int Field, BYTE &Value) const
Definition pointcloud.h:243
virtual bool Get_Value(sLong Index, int Field, char &Value) const
Definition pointcloud.h:195
bool Set_Attribute(int Field, const uLong &Value)
Definition pointcloud.h:261
bool Set_Attribute(sLong Index, int Field, const WORD &Value)
Definition pointcloud.h:268
virtual bool Get_Value(int Field, short &Value) const
Definition pointcloud.h:186
virtual bool Get_Value(int Field, uLong &Value) const
Definition pointcloud.h:189
bool Set_Attribute(sLong Index, int Field, const sLong &Value)
Definition pointcloud.h:274
virtual bool is_Valid(void) const
Definition pointcloud.h:141
bool Get_Attribute(int Field, BYTE &Value) const
Definition pointcloud.h:232
virtual bool Save(const wchar_t *File, int Format=0)
Definition pointcloud.h:134
virtual bool Get_Value(int Field, WORD &Value) const
Definition pointcloud.h:185
bool Set_Attribute(sLong Index, int Field, const long &Value)
Definition pointcloud.h:272
virtual bool Set_Value(sLong Index, int Field, const WORD &Value)
Definition pointcloud.h:219
virtual bool Del_Shape(sLong Index)
Definition pointcloud.h:295
double Get_X(void) const
Definition pointcloud.h:167
bool Set_Attribute(sLong Index, int Field, const short &Value)
Definition pointcloud.h:269
bool Set_Attribute(sLong Index, int Field, const uLong &Value)
Definition pointcloud.h:273
bool Get_Attribute(sLong Index, int Field, int &Value) const
Definition pointcloud.h:248
bool Set_Attribute(sLong Index, int Field, const SG_Char *Value)
Definition pointcloud.h:276
virtual bool Set_Value(sLong Index, int Field, const short &Value)
Definition pointcloud.h:220
virtual double Get_Value(sLong Index, int Field) const
Definition pointcloud.h:181
virtual bool Del_Shape(CSG_Shape *pShape)
Definition pointcloud.h:302
virtual bool Set_Value(int Field, const int &Value)
Definition pointcloud.h:210
virtual bool Set_Value(sLong Index, int Field, const SG_Char *Value)
Definition pointcloud.h:227
virtual bool Set_Value(int Field, const long &Value)
Definition pointcloud.h:211
bool Get_Attribute(sLong Index, int Field, WORD &Value) const
Definition pointcloud.h:245
bool Get_Attribute(int Field, uLong &Value) const
Definition pointcloud.h:238
bool Set_Attribute(int Field, const BYTE &Value)
Definition pointcloud.h:254
virtual bool Get_Value(sLong Index, int Field, int &Value) const
Definition pointcloud.h:199
virtual bool Get_Value(sLong Index, int Field, WORD &Value) const
Definition pointcloud.h:196
virtual bool Get_Value(int Field, double &Value) const
Definition pointcloud.h:191
double Get_Attribute(sLong Index, int Field) const
Definition pointcloud.h:230
bool Set_Attribute(int Field, const short &Value)
Definition pointcloud.h:257
virtual bool Set_NoData(int Field)
Definition pointcloud.h:177
virtual bool Get_Value(sLong Index, int Field, BYTE &Value) const
Definition pointcloud.h:194
virtual bool Set_Value(int Field, const DWORD &Value)
Definition pointcloud.h:209
virtual bool Del_Records(void)
Definition pointcloud.h:296
bool Get_Attribute(int Field, DWORD &Value) const
Definition pointcloud.h:236
virtual bool Save(const char *File, int Format=0)
Definition pointcloud.h:133
virtual bool Set_Value(sLong Index, int Field, const int &Value)
Definition pointcloud.h:222
double Get_Y(void) const
Definition pointcloud.h:168
virtual bool Get_Value(int Field, DWORD &Value) const
Definition pointcloud.h:187
bool Get_Attribute(int Field, int &Value) const
Definition pointcloud.h:237
virtual bool Set_Value(sLong Index, int Field, const BYTE &Value)
Definition pointcloud.h:217
bool Set_Attribute(int Field, const sLong &Value)
Definition pointcloud.h:262
bool Set_Attribute(sLong Index, int Field, const DWORD &Value)
Definition pointcloud.h:270
void Set_XYZ_Precision(bool bDouble)
Definition pointcloud.h:136
bool Get_Attribute(int Field, sLong &Value) const
Definition pointcloud.h:239
virtual bool Assign(CSG_Data_Object *pObject, bool bProgress=false)
Definition shapes.cpp:351
virtual CSG_Shape * Add_Shape(CSG_Table_Record *pCopy=NULL, TSG_ADD_Shape_Copy_Mode mCopy=SHAPE_COPY)
Definition shapes.cpp:402
virtual bool On_Delete(void)
Definition shapes_io.cpp:74
virtual bool Save(const CSG_String &File, int Format=0)
CSG_Shapes(void)
Definition shapes.cpp:156
virtual CSG_Shape * Get_Shape(const CSG_Point &Point, double Epsilon=0.)
Definition shapes.cpp:483
virtual void _On_Construction(void)
Definition shapes.cpp:193
TSG_Shape_Type m_Type
Definition shapes.h:858
virtual bool Destroy(void)
Definition shapes.cpp:331
virtual const CSG_Rect & Get_Selection_Extent(void)
friend class CSG_Shape
Definition shapes.h:781
virtual bool On_Update(void)
Definition shapes.cpp:433
virtual bool Select(sLong Index, bool bInvert=false)
virtual bool On_Reload(void)
Definition shapes_io.cpp:66
bool Create(void)
Definition table.cpp:153
virtual bool Set_Value(sLong Index, int Field, const SG_Char *Value)
Definition table.h:429
virtual CSG_Table_Record * Ins_Record(sLong Index, CSG_Table_Record *pCopy=NULL)
Definition table.cpp:829
virtual bool _Stats_Update(int Field) const
Definition table.cpp:1229
sLong m_nRecords
Definition table.h:505
bool is_Compatible(const CSG_Table &Table, bool bExactMatch=false) const
Definition table.cpp:413
CSG_Field_Info ** m_Field_Info
Definition table.h:501
virtual bool Get_Value(sLong Index, int Field, CSG_String &Value) const
Definition table.cpp:1159
virtual CSG_Table_Record * Add_Record(CSG_Table_Record *pCopy=NULL)
Definition table.cpp:823
virtual sLong Inv_Selection(void)
virtual bool Mov_Field(int Field, int Position)
Definition table.cpp:542
virtual CSG_Table_Record * Get_Record(sLong Index) const
Definition table.h:412
virtual int Get_Field_Length(int Field, int Encoding=SG_FILE_ENCODING_UNDEFINED) const
Definition table.cpp:674
virtual CSG_Table_Record * Get_Selection(sLong Index=0) const
Definition table.h:446
bool Sort(const char *Field, bool bAscending=true)
Definition table.cpp:1329
virtual bool is_Selected(sLong Index) const
Definition table.h:448
int m_nFields
Definition table.h:503
virtual bool Add_Field(const CSG_String &Name, TSG_Data_Type Type, int Position=-1)
Definition table.cpp:479
virtual bool Set_Field_Type(int Field, TSG_Data_Type Type)
Definition table.cpp:610
virtual bool Del_Field(int Field)
Definition table.cpp:510
virtual sLong Del_Selection(void)
TSG_Data_Object_Type
Definition dataobject.h:117
@ SG_DATAOBJECT_TYPE_PointCloud
Definition dataobject.h:123
struct SSG_Point TSG_Point
struct SSG_Point_3D TSG_Point_3D
struct SSG_Rect TSG_Rect
TSG_PointCloud_File_Type
Definition pointcloud.h:89
@ POINTCLOUD_FILE_FORMAT_Compressed
Definition pointcloud.h:92
@ POINTCLOUD_FILE_FORMAT_Undefined
Definition pointcloud.h:90
@ POINTCLOUD_FILE_FORMAT_Normal
Definition pointcloud.h:91
SAGA_API_DLL_EXPORT CSG_PointCloud * SG_Create_PointCloud(void)
TSG_ADD_Shape_Copy_Mode
Definition shapes.h:124
@ SHAPE_COPY
Definition shapes.h:128