SAGA API v9.10
Loading...
Searching...
No Matches
api_core.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// api_core.h //
15// //
16// Copyright (C) 2005 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 Goettingen //
44// Goldschmidtstr. 5 //
45// 37077 Goettingen //
46// Germany //
47// //
48// e-mail: oconrad@saga-gis.org //
49// //
51
52//---------------------------------------------------------
53#ifndef HEADER_INCLUDED__SAGA_API__api_core_H
54#define HEADER_INCLUDED__SAGA_API__api_core_H
55
56
58// //
59// //
60// //
62
63//---------------------------------------------------------
73
74
76// //
77// //
78// //
80
81//---------------------------------------------------------
82#ifdef _SAGA_MSW
83 #define _SAGA_DLL_EXPORT __declspec( dllexport )
84 #define _SAGA_DLL_IMPORT __declspec( dllimport )
85#else
86 #define _SAGA_DLL_EXPORT
87 #define _SAGA_DLL_IMPORT
88#endif
89
90//---------------------------------------------------------
91#ifdef _SAGA_API_EXPORTS
92 #define SAGA_API_DLL_EXPORT _SAGA_DLL_EXPORT
93#else
94 #define SAGA_API_DLL_EXPORT _SAGA_DLL_IMPORT
95#endif
96
97
99// //
100// //
101// //
103
104//---------------------------------------------------------
105#ifndef SWIG
106
107#include <math.h>
108#include <memory.h>
109#include <stdlib.h>
110#include <stdio.h>
111#include <string.h>
112#include <wchar.h>
113#include <string>
114
115#endif // #ifdef SWIG
116
117
119// //
120// //
121// //
123
124//---------------------------------------------------------
125// this is defined by configure, but will not be on a normal application build
126
127#ifndef SIZEOF_LONG
128 #if defined(__alpha) || defined(__sparcv9) || defined(__LP64__) || (defined(__HOS_AIX__) && defined(_LP64))
129 #define SIZEOF_LONG 8
130 #else
131 #define SIZEOF_LONG 4
132 #endif
133#endif
134
135//---------------------------------------------------------
136#ifdef _TYPEDEF_BOOL
137 typedef unsigned int bool;
138 #define true ((bool)1)
139 #define false ((bool)0)
140#endif // _TYPEDEF_BOOL
141
142//---------------------------------------------------------
143#ifdef _TYPEDEF_BYTE
144 typedef unsigned char BYTE;
145#endif // _TYPEDEF_BYTE
146
147//---------------------------------------------------------
148#ifdef _TYPEDEF_WORD
149 typedef unsigned short WORD;
150 #if SIZEOF_LONG == 4
151 typedef unsigned long DWORD;
152 #else
153 typedef unsigned int DWORD;
154 #endif
155#endif // _TYPEDEF_WORD
156
157//---------------------------------------------------------
158typedef signed long long sLong;
159typedef unsigned long long uLong;
160
161//---------------------------------------------------------
162#if defined(_SAGA_MSW)
163 #include <float.h>
164 #define SG_is_NaN _isnan
165#elif defined(isnan)
166 #define SG_is_NaN isnan
167#else
168 #define SG_is_NaN(x) (x != x)
169#endif
170
171
173// //
174// Parallelization //
175// //
177
178//---------------------------------------------------------
183
184
186// //
187// Memory //
188// //
190
191//---------------------------------------------------------
192#define SG_GET_LONG(b0, b1, b2, b3) ((long) (((BYTE)(b0) | ((WORD)(b1) << 8)) | (((DWORD)(BYTE)(b2)) << 16) | (((DWORD)(BYTE)(b3)) << 24)))
193
194#define SG_GET_BYTE_0(vLong) ((BYTE) ((vLong) ))
195#define SG_GET_BYTE_1(vLong) ((BYTE) ((vLong) >> 8))
196#define SG_GET_BYTE_2(vLong) ((BYTE) ((vLong) >> 16))
197#define SG_GET_BYTE_3(vLong) ((BYTE) ((vLong) >> 24))
198
199//---------------------------------------------------------
200SAGA_API_DLL_EXPORT void * SG_Malloc (size_t size);
201SAGA_API_DLL_EXPORT void * SG_Calloc (size_t num, size_t size);
202SAGA_API_DLL_EXPORT void * SG_Realloc (void *memblock, size_t size);
203SAGA_API_DLL_EXPORT void SG_Free (void *memblock);
204
205#define SG_FREE_SAFE(PTR) { if( PTR ) { SG_Free (PTR); PTR = NULL; } }
206#define SG_DELETE_SAFE(PTR) { if( PTR ) { delete (PTR); PTR = NULL; } }
207#define SG_DELETE_ARRAY(PTR) { if( PTR ) { delete[](PTR); PTR = NULL; } }
208
209//---------------------------------------------------------
210SAGA_API_DLL_EXPORT void SG_Swap_Bytes (void *Buffer, int nBytes);
211
212SAGA_API_DLL_EXPORT int SG_Mem_Get_Int (const char *Buffer , bool bSwapBytes);
213SAGA_API_DLL_EXPORT void SG_Mem_Set_Int (char *Buffer, int Value , bool bSwapBytes);
214SAGA_API_DLL_EXPORT double SG_Mem_Get_Double (const char *Buffer , bool bSwapBytes);
215SAGA_API_DLL_EXPORT void SG_Mem_Set_Double (char *Buffer, double Value, bool bSwapBytes);
216
217
219// //
221
222//---------------------------------------------------------
224{
225public:
226
227 CSG_Buffer (void);
228 bool Create (void);
229
230 CSG_Buffer (const CSG_Buffer &Buffer);
231 bool Create (const CSG_Buffer &Buffer);
232
233 CSG_Buffer (size_t Size);
234 bool Create (size_t Size);
235
236 virtual ~CSG_Buffer (void);
237 void Destroy (void);
238
239 bool Set_Size (size_t Size, bool bShrink = true);
240 bool Inc_Size (size_t Size) { return( Set_Size(m_Size + Size) ); }
241 size_t Get_Size (void) const { return( m_Size ); }
242
243 bool Set_Data (const char *Data, size_t Size, bool bShrink = true);
244 char * Get_Data (int Offset = 0) const { return( m_Data + Offset ); }
245
246 CSG_Buffer & operator = (const CSG_Buffer &Buffer) { Create(Buffer); return( *this ); }
247 char & operator [] (int Position) { return( m_Data[Position] ); }
248 char operator [] (int Position) const { return( m_Data[Position] ); }
249
250 void Add_Value (char Value, bool bBigEndian = false) { if( Inc_Size(sizeof(Value)) ) Set_Value((int)m_Size - sizeof(Value), Value, bBigEndian); }
251 void Add_Value (short Value, bool bBigEndian = false) { if( Inc_Size(sizeof(Value)) ) Set_Value((int)m_Size - sizeof(Value), Value, bBigEndian); }
252 void Add_Value (int Value, bool bBigEndian = false) { if( Inc_Size(sizeof(Value)) ) Set_Value((int)m_Size - sizeof(Value), Value, bBigEndian); }
253 void Add_Value (float Value, bool bBigEndian = false) { if( Inc_Size(sizeof(Value)) ) Set_Value((int)m_Size - sizeof(Value), Value, bBigEndian); }
254 void Add_Value (double Value, bool bBigEndian = false) { if( Inc_Size(sizeof(Value)) ) Set_Value((int)m_Size - sizeof(Value), Value, bBigEndian); }
255
256 CSG_Buffer & operator += (char Value) { Add_Value(Value); return( *this ); }
257 CSG_Buffer & operator += (short Value) { Add_Value(Value); return( *this ); }
258 CSG_Buffer & operator += (int Value) { Add_Value(Value); return( *this ); }
259 CSG_Buffer & operator += (float Value) { Add_Value(Value); return( *this ); }
260 CSG_Buffer & operator += (double Value) { Add_Value(Value); return( *this ); }
261
262 void Set_Value (int Offset, char Value, bool bBigEndian = false) { m_Data[Offset] = Value; }
263 void Set_Value (int Offset, short Value, bool bBigEndian = false) { if( bBigEndian ) SG_Swap_Bytes(&Value, sizeof(Value)); *(short *)(m_Data + Offset) = Value; }
264 void Set_Value (int Offset, int Value, bool bBigEndian = false) { if( bBigEndian ) SG_Swap_Bytes(&Value, sizeof(Value)); *(int *)(m_Data + Offset) = Value; }
265 void Set_Value (int Offset, float Value, bool bBigEndian = false) { if( bBigEndian ) SG_Swap_Bytes(&Value, sizeof(Value)); *(float *)(m_Data + Offset) = Value; }
266 void Set_Value (int Offset, double Value, bool bBigEndian = false) { if( bBigEndian ) SG_Swap_Bytes(&Value, sizeof(Value)); *(double *)(m_Data + Offset) = Value; }
267
268 short asShort (int Offset, bool bBigEndian = false) const { short Value = *(short *)(m_Data + Offset); if( bBigEndian ) SG_Swap_Bytes(&Value, sizeof(Value)); return( Value ); }
269 int asInt (int Offset, bool bBigEndian = false) const { int Value = *(int *)(m_Data + Offset); if( bBigEndian ) SG_Swap_Bytes(&Value, sizeof(Value)); return( Value ); }
270 float asFloat (int Offset, bool bBigEndian = false) const { float Value = *(float *)(m_Data + Offset); if( bBigEndian ) SG_Swap_Bytes(&Value, sizeof(Value)); return( Value ); }
271 double asDouble (int Offset, bool bBigEndian = false) const { double Value = *(double *)(m_Data + Offset); if( bBigEndian ) SG_Swap_Bytes(&Value, sizeof(Value)); return( Value ); }
272
273
274private:
275
276 char *m_Data;
277
278 size_t m_Size;
279
280};
281
282
284// //
285// //
286// //
288
289//---------------------------------------------------------
305
306//---------------------------------------------------------
308{
309public:
310 CSG_Array(void);
311 ~CSG_Array(void);
312
313 CSG_Array (const CSG_Array &Array);
314 void * Create (const CSG_Array &Array);
315
316 CSG_Array (size_t Value_Size, sLong nValues = 0, TSG_Array_Growth Growth = TSG_Array_Growth::SG_ARRAY_GROWTH_0);
317 void * Create (size_t Value_Size, sLong nValues = 0, TSG_Array_Growth Growth = TSG_Array_Growth::SG_ARRAY_GROWTH_0);
318
319 bool Destroy (void);
320
321 CSG_Array & operator = (const CSG_Array &Array) { Create(Array); return( *this ); }
322
323 bool Set_Growth (TSG_Array_Growth Growth);
324 TSG_Array_Growth Get_Growth (void) const { return( m_Growth ); }
325
326 size_t Get_Value_Size (void) const { return( m_Value_Size ); }
327 sLong Get_Size (void) const { return( m_nValues ); }
328 size_t Get_uSize (void) const { return( (size_t)m_nValues ); }
329
331 void * Get_Entry (sLong Index) const { return( Index >= 0 && Index < m_nValues ? (char *)m_Values + Index * m_Value_Size : NULL ); }
332 void * operator [] (sLong Index) const { return( Get_Entry(Index) ); }
333
334 bool Del_Entry (sLong Index, bool bShrink = true);
335
336 void * Get_Array (void) const { return( m_Values ); }
337 void * Get_Array (sLong nValues) { Set_Array(nValues); return( m_Values ); }
338
339 bool Set_Array (sLong nValues, bool bShrink = true);
340 bool Set_Array (sLong nValues, void **pArray, bool bShrink = true);
341
342 bool Inc_Array (sLong nValues = 1);
343 bool Inc_Array (void **pArray);
344
345 bool Dec_Array (bool bShrink = true);
346 bool Dec_Array (void **pArray, bool bShrink = true);
347
348
349private:
350
351 TSG_Array_Growth m_Growth;
352
353 size_t m_Value_Size;
354
355 sLong m_nValues, m_nBuffer;
356
357 void *m_Values;
358
359};
360
361
363// //
365
366//---------------------------------------------------------
368{
369public:
370 CSG_Array_Pointer (const CSG_Array_Pointer &Array) { Create(Array); }
371 void ** Create (const CSG_Array_Pointer &Array);
372
374 void ** Create (sLong nValues = 0, TSG_Array_Growth Growth = TSG_Array_Growth::SG_ARRAY_GROWTH_0);
375
376 void Destroy (void) { m_Array.Destroy(); }
377
378 bool Set_Growth (TSG_Array_Growth Growth) { return( m_Array.Set_Growth(Growth) ); }
379 TSG_Array_Growth Get_Growth (void) const { return( m_Array.Get_Growth() ); }
380
381 sLong Get_Size (void) const { return( m_Array.Get_Size() ); }
382 size_t Get_uSize (void) const { return( m_Array.Get_uSize() ); }
383
384 void ** Get_Array (void) const { return( (void **)m_Array.Get_Array() ); }
385 void ** Get_Array (sLong nValues) { return( (void **)m_Array.Get_Array(nValues) ); }
386
387 bool Set_Array (sLong nValues, bool bShrink = true) { return( m_Array.Set_Array(nValues, bShrink) ); }
388 bool Inc_Array (sLong nValues = 1) { return( m_Array.Inc_Array(nValues) ); }
389 bool Dec_Array ( bool bShrink = true) { return( m_Array.Dec_Array(bShrink) ); }
390
391 bool Add (void *Value);
392 bool Add (const CSG_Array_Pointer &Array);
393 bool Set (sLong Index, void *Value) { if( !m_Array.Get_Entry(Index) ) return( false ); *((void **)m_Array.Get_Entry(Index)) = Value; return( true ); }
394#ifndef SWIG
395 void *& Get (sLong Index) { return( *((void **)m_Array.Get_Entry(Index)) ); }
396#endif
397 void * Get (sLong Index) const { return( *((void **)m_Array.Get_Entry(Index)) ); }
398 bool Del (sLong Index);
399 sLong Del (void *Value);
400
401 CSG_Array_Pointer & operator = (const CSG_Array_Pointer &Array) { Create(Array); return( *this ); }
402
403 void *& operator [] (sLong Index) { return( Get(Index) ); }
404 void * operator [] (sLong Index) const { return( Get(Index) ); }
405
406 CSG_Array_Pointer & operator += (void *Value) { Add(Value); return( *this ); }
407 CSG_Array_Pointer & operator += (const CSG_Array_Pointer &Array) { Add(Array); return( *this ); }
408
409
410private:
411
412 CSG_Array m_Array;
413
414};
415
416
418// //
420
421//---------------------------------------------------------
423{
424public:
425 CSG_Array_Int (const CSG_Array_Int &Array) { Create(Array); }
426 int * Create (const CSG_Array_Int &Array);
427
429 int * Create (sLong nValues = 0, TSG_Array_Growth Growth = TSG_Array_Growth::SG_ARRAY_GROWTH_0);
430
431 void Destroy (void) { m_Array.Destroy(); }
432
433 bool Set_Growth (TSG_Array_Growth Growth) { return( m_Array.Set_Growth(Growth) ); }
434 TSG_Array_Growth Get_Growth (void) const { return( m_Array.Get_Growth() ); }
435
436 sLong Get_Size (void) const { return( m_Array.Get_Size() ); }
437 size_t Get_uSize (void) const { return( m_Array.Get_uSize() ); }
438
439 int * Get_Array (void) const { return( (int *)m_Array.Get_Array() ); }
440 int * Get_Array (sLong nValues) { return( (int *)m_Array.Get_Array(nValues) ); }
441
442 bool Set_Array (sLong nValues, bool bShrink = true) { return( m_Array.Set_Array(nValues, bShrink) ); }
443 bool Inc_Array (sLong nValues = 1) { return( m_Array.Inc_Array(nValues) ); }
444 bool Dec_Array ( bool bShrink = true) { return( m_Array.Dec_Array(bShrink) ); }
445
446 bool Add (int Value);
447 bool Add (const CSG_Array_Int &Array);
448 bool Set (sLong Index, int Value) { if( !m_Array.Get_Entry(Index) ) return( false ); *((int *)m_Array.Get_Entry(Index)) = Value; return( true ); }
449#ifndef SWIG
450 int & Get (sLong Index) { return( *((int *)m_Array.Get_Entry(Index)) ); }
451#endif
452 int Get (sLong Index) const { return( *((int *)m_Array.Get_Entry(Index)) ); }
453
454 bool Assign (int Value);
455
456 CSG_Array_Int & operator = (const CSG_Array_Int &Array) { Create(Array); return( *this ); }
457 CSG_Array_Int & operator = (int Value) { Assign(Value); return( *this ); }
458
459 int & operator [] (sLong Index) { return( Get(Index) ); }
460 int operator [] (sLong Index) const { return( Get(Index) ); }
461
462 CSG_Array_Int & operator += (int Value) { Add(Value); return( *this ); }
463 CSG_Array_Int & operator += (const CSG_Array_Int &Array) { Add(Array); return( *this ); }
464
465
466private:
467
468 CSG_Array m_Array;
469
470};
471
472
474// //
476
477//---------------------------------------------------------
479{
480public:
481 CSG_Array_sLong (const CSG_Array_sLong &Array) { Create(Array); }
482 sLong * Create (const CSG_Array_sLong &Array);
483
485 sLong * Create (sLong nValues = 0, TSG_Array_Growth Growth = TSG_Array_Growth::SG_ARRAY_GROWTH_0);
486
487 void Destroy (void) { m_Array.Destroy(); }
488
489 bool Set_Growth (TSG_Array_Growth Growth) { return( m_Array.Set_Growth(Growth) ); }
490 TSG_Array_Growth Get_Growth (void) const { return( m_Array.Get_Growth() ); }
491
492 sLong Get_Size (void) const { return( m_Array.Get_Size() ); }
493 size_t Get_uSize (void) const { return( m_Array.Get_uSize() ); }
494
495 sLong * Get_Array (void) const { return( (sLong *)m_Array.Get_Array() ); }
496 sLong * Get_Array (sLong nValues) { return( (sLong *)m_Array.Get_Array(nValues) ); }
497
498 bool Set_Array (sLong nValues, bool bShrink = true) { return( m_Array.Set_Array(nValues, bShrink) ); }
499 bool Inc_Array (sLong nValues = 1) { return( m_Array.Inc_Array(nValues) ); }
500 bool Dec_Array ( bool bShrink = true) { return( m_Array.Dec_Array(bShrink) ); }
501
502 bool Add (sLong Value);
503 bool Add (const CSG_Array_sLong &Array);
504 bool Set (sLong Index, sLong Value) { if( !m_Array.Get_Entry(Index) ) return( false ); *((sLong *)m_Array.Get_Entry(Index)) = Value; return( true ); }
505#ifndef SWIG
506 sLong & Get (sLong Index) { return( *((sLong *)m_Array.Get_Entry(Index)) ); }
507#endif
508 sLong Get (sLong Index) const { return( *((sLong *)m_Array.Get_Entry(Index)) ); }
509
510 bool Assign (sLong Value);
511
512 CSG_Array_sLong & operator = (const CSG_Array_sLong &Array) { Create(Array); return( *this ); }
513 CSG_Array_sLong & operator = (sLong Value) { Assign(Value); return( *this ); }
514
515 sLong & operator [] (sLong Index) { return( Get(Index) ); }
516 sLong operator [] (sLong Index) const { return( Get(Index) ); }
517
518 CSG_Array_sLong & operator += (sLong Value) { Add(Value); return( *this ); }
519 CSG_Array_sLong & operator += (const CSG_Array_sLong &Array) { Add(Array); return( *this ); }
520
521
522private:
523
524 CSG_Array m_Array;
525
526};
527
528
530// //
531// String //
532// //
534
535//---------------------------------------------------------
536#define SG_Char wchar_t
537#define SG_T(s) L ## s
538#define SG_PRINTF wprintf
539#define SG_FPRINTF fwprintf
540#define SG_SSCANF swscanf
541#define SG_STR_CPY wcscpy
542#define SG_STR_LEN wcslen
543#define SG_STR_TOD wcstod
544#define SG_STR_CMP(s1, s2) CSG_String(s1).Cmp(s2)
545#define SG_STR_MBTOSG(s) CSG_String(s).w_str()
546
547//---------------------------------------------------------
560
561//---------------------------------------------------------
563{
564public:
565 CSG_String(void);
566 CSG_String(const CSG_String &String);
567 CSG_String(const char *String);
568 CSG_String(const wchar_t *String);
569 CSG_String(char Character, size_t nRepeat = 1);
570 CSG_String(wchar_t Character, size_t nRepeat = 1);
571
572 CSG_String (const class wxString *pString);
573 bool Create (const class wxString *pString);
574
575 virtual ~CSG_String(void);
576
577 CSG_String & operator = (const CSG_String &String);
578 CSG_String & operator = (const char *String);
579 CSG_String & operator = (const wchar_t *String);
580 CSG_String & operator = (char Character);
581 CSG_String & operator = (wchar_t Character);
582
583 size_t Length (void) const;
584
585 bool is_Empty (void) const;
586
587 SG_Char operator [] (int i) const;
588 SG_Char operator [] (size_t i) const;
589 SG_Char Get_Char (size_t i) const;
590
591 void Set_Char (size_t i, char Character);
592 void Set_Char (size_t i, wchar_t Character);
593
594 const char * b_str (void) const;
595 const wchar_t * w_str (void) const;
596 const SG_Char * c_str (void) const;
597
598 operator const char * (void) const { return( b_str() ); }
599 operator const wchar_t * (void) const { return( w_str() ); }
600
601 CSG_String & Prepend (const CSG_String &String);
602
603 CSG_String & Append (const CSG_String &String);
604 CSG_String & Append (const char *String);
605 CSG_String & Append (const wchar_t *String);
606 CSG_String & Append (char Character, size_t nRepeat = 1);
607 CSG_String & Append (wchar_t Character, size_t nRepeat = 1);
608
609 void operator += (const CSG_String &String);
610 void operator += (const char *String);
611 void operator += (const wchar_t *String);
612 void operator += (char Character);
613 void operator += (wchar_t Character);
614
615 CSG_String operator + (const CSG_String &String) const;
616 CSG_String operator + (const char *String) const;
617 CSG_String operator + (const wchar_t *String) const;
618 CSG_String operator + (char Character) const;
619 CSG_String operator + (wchar_t Character) const;
620
621 int Cmp (const CSG_String &String) const;
622 int CmpNoCase (const CSG_String &String) const;
623
624 bool is_Same_As (const CSG_String &String, bool bCase = true) const;
625 bool is_Same_As (const char Character, bool bCase = true) const;
626 bool is_Same_As (const wchar_t Character, bool bCase = true) const;
627
628 CSG_String & Make_Lower (void);
629 CSG_String & Make_Upper (void);
630
631 void Clear (void);
632
633 static CSG_String Format (const char *Format, ...);
634 static CSG_String Format (const wchar_t *Format, ...);
635 int Printf (const char *Format, ...);
636 int Printf (const wchar_t *Format, ...);
637
638 size_t Replace (const CSG_String &Old, const CSG_String &New, bool bReplaceAll = true);
639 size_t Replace_Single_Char (const SG_Char Old, const CSG_String &New, bool bReplaceAll = true);
640 size_t Replace_Single_Char (const SG_Char Old, const SG_Char New, bool bReplaceAll = true);
641
642 CSG_String & Remove (size_t pos);
643 CSG_String & Remove (size_t pos, size_t len);
644
645 int Trim (bool fromRight = false);
646 int Trim_Both (void);
647
648 int Find (char Character, bool fromEnd = false) const;
649 int Find (wchar_t Character, bool fromEnd = false) const;
650 int Find (const CSG_String &String) const;
651 bool Contains (const CSG_String &String) const;
652
653 CSG_String AfterFirst (char Character) const;
654 CSG_String AfterFirst (wchar_t Character) const;
655 CSG_String AfterLast (char Character) const;
656 CSG_String AfterLast (wchar_t Character) const;
657 CSG_String BeforeFirst (char Character) const;
658 CSG_String BeforeFirst (wchar_t Character) const;
659 CSG_String BeforeLast (char Character) const;
660 CSG_String BeforeLast (wchar_t Character) const;
661
662 CSG_String Right (size_t count) const;
663 CSG_String Mid (size_t first, size_t count = 0) const;
664 CSG_String Left (size_t count) const;
665
666 bool is_Number (void) const;
667
668 int asInt (void) const;
669 bool asInt (int &Value) const;
670 sLong asLongLong (void) const;
671 bool asLongLong (sLong &Value) const;
672
673 double asDouble (void) const;
674 bool asDouble (double &Value) const;
675
676 static CSG_String from_UTF8 (const char *String, size_t Length = 0);
677
678 size_t to_UTF8 (char **pString) const;
679 CSG_Buffer to_UTF8 (void) const;
680 size_t to_MBChar (char **pString, int Encoding) const;
681 CSG_Buffer to_MBChar ( int Encoding) const;
682 bool to_ASCII (char **pString, char Replace = '_') const;
683 CSG_Buffer to_ASCII ( char Replace = '_') const;
684 std::string to_StdString (void) const;
685 std::wstring to_StdWstring (void) const;
686
687protected:
688
689 class wxString *m_pString;
690
691};
692
693//---------------------------------------------------------
698
699//---------------------------------------------------------
701{
702public:
703 CSG_Strings(void);
704 CSG_Strings(const CSG_Strings &Strings);
705 CSG_Strings(int nStrings, const SG_Char **Strings);
706
707 virtual ~CSG_Strings(void);
708
709 bool Create (const CSG_Strings &Strings);
710 bool Destroy (void);
711
712 bool Set_Count (int Count) { return( Set_Count((size_t)Count) ); }
713 bool Set_Count (size_t Count);
714 int Get_Count (void) const { return( (int)m_Strings.Get_Size() ); }
715 size_t Get_Size (void) const { return( m_Strings.Get_Size() ); }
716
717 bool Add (const CSG_Strings &Strings);
718 bool Add (const CSG_String &String );
719 bool Ins (const CSG_String &String , int Index) { return( Ins(String, (size_t)Index) ); }
720 bool Ins (const CSG_String &String , size_t Index);
721 bool Del (int Index) { return( Del((size_t)Index) ); }
722 bool Del (size_t Index);
723
724 CSG_String & Get_String (int Index) const { return( *((CSG_String *)m_Strings[Index]) ); }
725 CSG_String & Get_String (size_t Index) const { return( *((CSG_String *)m_Strings[Index]) ); }
726
727 CSG_String & operator [] (int Index) const { return( Get_String(Index) ); }
728 CSG_String & operator [] (size_t Index) const { return( Get_String(Index) ); }
729
730 CSG_Strings & operator = (const CSG_Strings &Strings) { Create(Strings); return( *this ); }
731 CSG_Strings & operator += (const CSG_Strings &Strings) { Add (Strings); return( *this ); }
732 CSG_Strings & operator += (const CSG_String &String ) { Add (String ); return( *this ); }
733
734 bool Sort (bool Ascending = true);
735
736 void Clear (void) { Destroy(); }
737 bool Assign (const CSG_Strings &Strings) { return( Create(Strings) ); }
738
739
740protected:
741
743
744};
745
746//---------------------------------------------------------
747#define SG_DEFAULT_DELIMITERS " \t\r\n"
748
759
760//---------------------------------------------------------
762{
763public:
766
768
769
770 size_t Get_Tokens_Count (void) const;
771 SG_Char Get_Last_Delimiter (void) const;
773 size_t Get_Position (void) const;
774 CSG_String Get_String (void) const;
775 bool Has_More_Tokens (void) const;
777
778
779private:
780
781 class wxStringTokenizer *m_pTokenizer;
782
783};
784
785//---------------------------------------------------------
787
788//---------------------------------------------------------
790
792
795
796SAGA_API_DLL_EXPORT int SG_Get_Significant_Decimals (double Value, int maxDecimals = 6);
797
799
800SAGA_API_DLL_EXPORT CSG_String SG_Get_String (double Value, int Precision = -99);
801SAGA_API_DLL_EXPORT CSG_String SG_Get_String (int Value, int Precision = 0);
802
804
805
807// //
808// //
809// //
811
812//---------------------------------------------------------
814{
815public:
816 CSG_Bytes (void);
817 bool Create (void);
818
819 CSG_Bytes (const CSG_Bytes &Bytes);
820 bool Create (const CSG_Bytes &Bytes);
821
822 CSG_Bytes (const BYTE *Bytes, int nBytes);
823 bool Create (const BYTE *Bytes, int nBytes);
824
825 virtual ~CSG_Bytes(void);
826
827 bool Destroy (void);
828 bool Clear (void);
829
830 void Rewind (void) { m_Cursor = 0; }
831 bool is_EOF (void) { return( m_Cursor >= m_nBytes ); }
832
833 int Get_Count (void) const { return( m_nBytes ); }
834 BYTE * Get_Bytes (void) const { return( m_Bytes ); }
835
836 CSG_Bytes Get_Bytes (int i) const { if( i < 0 || i >= m_nBytes ) i = 0; return( CSG_Bytes(m_Bytes + i, m_nBytes - i) ); }
837 CSG_Bytes operator + (int i) const { return( Get_Bytes(i) ); }
838
839 BYTE Get_Byte (int i) const { return( i >= 0 && i < m_nBytes ? m_Bytes[i] : 0 ); }
840 BYTE operator [] (int i) const { return( Get_Byte(i) ); }
841
842 bool Assign (const CSG_Bytes &Bytes);
843 CSG_Bytes & operator = (const CSG_Bytes &Bytes) { Assign(Bytes); return( *this ); }
844
845 bool Add (const CSG_Bytes &Bytes);
846 CSG_Bytes & operator += (const CSG_Bytes &Bytes) { Add(Bytes); return( *this ); }
847
848 bool Add (void *Bytes, int nBytes, bool bSwapBytes);
849
850 bool Add (BYTE Value) { return( Add(&Value, sizeof(Value), false) ); }
851 CSG_Bytes & operator += (BYTE Value) { Add(Value); return( *this ); }
852 bool Add (char Value) { return( Add(&Value, sizeof(Value), false) ); }
853 CSG_Bytes & operator += (char Value) { Add(Value); return( *this ); }
854 bool Add (short Value, bool bSwapBytes = false) { return( Add(&Value, sizeof(Value), bSwapBytes) ); }
855 CSG_Bytes & operator += (short Value) { Add(Value); return( *this ); }
856 bool Add (WORD Value, bool bSwapBytes = false) { return( Add(&Value, sizeof(Value), bSwapBytes) ); }
857 CSG_Bytes & operator += (WORD Value) { Add(Value); return( *this ); }
858 bool Add (int Value, bool bSwapBytes = false) { return( Add(&Value, sizeof(Value), bSwapBytes) ); }
859 CSG_Bytes & operator += (int Value) { Add(Value); return( *this ); }
860 bool Add (DWORD Value, bool bSwapBytes = false) { return( Add(&Value, sizeof(Value), bSwapBytes) ); }
861 CSG_Bytes & operator += (DWORD Value) { Add(Value); return( *this ); }
862 bool Add (float Value, bool bSwapBytes = false) { return( Add(&Value, sizeof(Value), bSwapBytes) ); }
863 CSG_Bytes & operator += (float Value) { Add(Value); return( *this ); }
864 bool Add (double Value, bool bSwapBytes = false) { return( Add(&Value, sizeof(Value), bSwapBytes) ); }
865 CSG_Bytes & operator += (double Value) { Add(Value); return( *this ); }
866
867 BYTE asByte (int i) const { return( Get_Byte (i) ); }
868 char asChar (int i) const { return( (char)Get_Byte (i) ); }
869 short asShort (int i, bool bSwapBytes = false) const { short v = *((short *)(m_Bytes + i)); if( bSwapBytes ) SG_Swap_Bytes(&v, sizeof(v)); return( v ); }
870 WORD asWord (int i, bool bSwapBytes = false) const { WORD v = *((WORD *)(m_Bytes + i)); if( bSwapBytes ) SG_Swap_Bytes(&v, sizeof(v)); return( v ); }
871 int asInt (int i, bool bSwapBytes = false) const { int v = *((int *)(m_Bytes + i)); if( bSwapBytes ) SG_Swap_Bytes(&v, sizeof(v)); return( v ); }
872 DWORD asDWord (int i, bool bSwapBytes = false) const { DWORD v = *((DWORD *)(m_Bytes + i)); if( bSwapBytes ) SG_Swap_Bytes(&v, sizeof(v)); return( v ); }
873 float asFloat (int i, bool bSwapBytes = false) const { float v = *((float *)(m_Bytes + i)); if( bSwapBytes ) SG_Swap_Bytes(&v, sizeof(v)); return( v ); }
874 double asDouble (int i, bool bSwapBytes = false) const { double v = *((double *)(m_Bytes + i)); if( bSwapBytes ) SG_Swap_Bytes(&v, sizeof(v)); return( v ); }
875
876 BYTE Read_Byte (void) { BYTE v = asByte (m_Cursor); m_Cursor += sizeof(v); return( v ); }
877 char Read_Char (void) { char v = asByte (m_Cursor); m_Cursor += sizeof(v); return( v ); }
878 short Read_Short (bool bSwapBytes = false) { short v = asShort (m_Cursor, bSwapBytes); m_Cursor += sizeof(v); return( v ); }
879 WORD Read_Word (bool bSwapBytes = false) { WORD v = asWord (m_Cursor, bSwapBytes); m_Cursor += sizeof(v); return( v ); }
880 int Read_Int (bool bSwapBytes = false) { int v = asInt (m_Cursor, bSwapBytes); m_Cursor += sizeof(v); return( v ); }
881 DWORD Read_DWord (bool bSwapBytes = false) { DWORD v = asDWord (m_Cursor, bSwapBytes); m_Cursor += sizeof(v); return( v ); }
882 float Read_Float (bool bSwapBytes = false) { float v = asFloat (m_Cursor, bSwapBytes); m_Cursor += sizeof(v); return( v ); }
883 double Read_Double (bool bSwapBytes = false) { double v = asDouble(m_Cursor, bSwapBytes); m_Cursor += sizeof(v); return( v ); }
884
885 CSG_String toHexString (void) const;
886 bool fromHexString (const CSG_String &HexString);
887
888
889private:
890
891 int m_nBytes, m_nBuffer, m_Cursor;
892
893 BYTE *m_Bytes;
894
895
896 bool _Inc_Array (int nBytes);
897
898};
899
900//---------------------------------------------------------
902{
903public:
904 CSG_Bytes_Array(void);
905 virtual ~CSG_Bytes_Array(void);
906
907 bool Destroy (void);
908
909 int Get_Count (void) const { return( m_nBytes ); }
910 CSG_Bytes * Get_Bytes (int i) { return( i >= 0 && i < m_nBytes ? m_pBytes[i] : NULL ); }
911 CSG_Bytes & operator [] (int i) { return( *Get_Bytes(i) ); }
912
913 CSG_Bytes * Add (void);
914
915
916private:
917
918 int m_nBytes, m_nBuffer;
919
920 CSG_Bytes **m_pBytes;
921
922};
923
924
926// //
927// //
928// //
930
931//---------------------------------------------------------
933{
934public:
935 CSG_Stack(size_t RecordSize)
936 {
937 m_Stack.Create(RecordSize, 1, TSG_Array_Growth::SG_ARRAY_GROWTH_FIX_256);
938 }
939
940 virtual ~CSG_Stack(void) {}
941
942 bool Destroy (void) { return( m_Stack.Set_Array(1) ); }
943
944 size_t Get_RecordSize (void) const { return( m_Stack.Get_Value_Size() ); }
945 size_t Get_Size (void) const { return( m_Stack.Get_uSize() - 1 ); }
946
947 bool Clear (bool bFreeMemory = false)
948 {
949 return( m_Stack.Set_Array(1, bFreeMemory) );
950 }
951
952
953protected:
954
955 void * Get_Record (size_t i) const
956 {
957 return( m_Stack.Get_Entry((sLong)(i + 1)) );
958 }
959
960 void * Get_Record_Push (void)
961 {
962 return( m_Stack.Inc_Array() ? m_Stack.Get_Entry(m_Stack.Get_Size() - 1) : NULL );
963 }
964
965 void * Get_Record_Pop (void)
966 {
967 if( m_Stack.Get_Size() > 1 )
968 {
969 memcpy(m_Stack.Get_Array(), m_Stack.Get_Entry(m_Stack.Get_Size() - 1), m_Stack.Get_Value_Size());
970
971 m_Stack.Dec_Array(true);
972
973 return( m_Stack.Get_Array() );
974 }
975
976 return( NULL );
977 }
978
979 void * Get_Array (void) const { return( m_Stack.Get_Entry(1) ); }
980
981
982private:
983
984 CSG_Array m_Stack;
985
986};
987
988
990// //
991// Data Types //
992// //
994
995//---------------------------------------------------------
1016
1017//---------------------------------------------------------
1018#define SG_DATATYPES_Undefined 0x0000
1019#define SG_DATATYPES_Bit 0x0001
1020#define SG_DATATYPES_Byte 0x0002
1021#define SG_DATATYPES_Char 0x0004
1022#define SG_DATATYPES_Word 0x0008
1023#define SG_DATATYPES_Short 0x0010
1024#define SG_DATATYPES_DWord 0x0020
1025#define SG_DATATYPES_Int 0x0040
1026#define SG_DATATYPES_ULong 0x0080
1027#define SG_DATATYPES_Long 0x0100
1028#define SG_DATATYPES_Float 0x0200
1029#define SG_DATATYPES_Double 0x0400
1030#define SG_DATATYPES_String 0x0800
1031#define SG_DATATYPES_Date 0x1000
1032#define SG_DATATYPES_Color 0x2000
1033#define SG_DATATYPES_Binary 0x4000
1034#define SG_DATATYPES_Standard 0xFFFF // all flags set
1035#define SG_DATATYPES_SInteger (SG_DATATYPES_Char|SG_DATATYPES_Short|SG_DATATYPES_Int |SG_DATATYPES_Long)
1036#define SG_DATATYPES_UInteger (SG_DATATYPES_Byte|SG_DATATYPES_Word |SG_DATATYPES_DWord|SG_DATATYPES_ULong)
1037#define SG_DATATYPES_Integer (SG_DATATYPES_SInteger|SG_DATATYPES_UInteger)
1038#define SG_DATATYPES_Real (SG_DATATYPES_Float|SG_DATATYPES_Double)
1039#define SG_DATATYPES_Numeric (SG_DATATYPES_Integer|SG_DATATYPES_Real)
1040#define SG_DATATYPES_Table (SG_DATATYPES_String|SG_DATATYPES_Date|SG_DATATYPES_Color|SG_DATATYPES_Numeric|SG_DATATYPES_Binary)
1041
1042//---------------------------------------------------------
1044{
1045 "BIT",
1046 "BYTE_UNSIGNED",
1047 "BYTE",
1048 "SHORTINT_UNSIGNED",
1049 "SHORTINT",
1050 "INTEGER_UNSIGNED",
1051 "INTEGER",
1052 "LONGINT_UNSIGNED",
1053 "LONGINT",
1054 "FLOAT",
1055 "DOUBLE",
1056 "STRING",
1057 "DATE",
1058 "COLOR",
1059 "BINARY",
1060 "UNDEFINED"
1061};
1062
1063//---------------------------------------------------------
1065{
1066 switch( Type )
1067 {
1068 case SG_DATATYPE_Bit : return( 0 );
1069 case SG_DATATYPE_Byte : return( sizeof(unsigned char) );
1070 case SG_DATATYPE_Char : return( sizeof(char) );
1071 case SG_DATATYPE_Word : return( sizeof(unsigned short int) );
1072 case SG_DATATYPE_Short : return( sizeof(short int) );
1073 case SG_DATATYPE_DWord : return( sizeof(unsigned int) );
1074 case SG_DATATYPE_Int : return( sizeof(int) );
1075 case SG_DATATYPE_ULong : return( sizeof(uLong) );
1076 case SG_DATATYPE_Long : return( sizeof(sLong) );
1077 case SG_DATATYPE_Float : return( sizeof(float) );
1078 case SG_DATATYPE_Double: return( sizeof(double) );
1079 case SG_DATATYPE_String: return( 0 );
1080 case SG_DATATYPE_Date : return( 0 );
1081 case SG_DATATYPE_Color : return( sizeof(unsigned int) );
1082 case SG_DATATYPE_Binary: return( 0 );
1083 default : return( 0 );
1084 }
1085}
1086
1087//---------------------------------------------------------
1094
1095
1097// //
1098// File //
1099// //
1101
1102//---------------------------------------------------------
1110
1111//---------------------------------------------------------
1118
1119//---------------------------------------------------------
1126
1127//---------------------------------------------------------
1129{
1130public:
1131
1132 CSG_File(void);
1133 virtual ~CSG_File(void);
1134
1135 CSG_File (const SG_Char *FileName, int Mode = SG_FILE_R, bool bBinary = true, int Encoding = SG_FILE_ENCODING_ANSI);
1136 virtual bool Open (const SG_Char *FileName, int Mode = SG_FILE_R, bool bBinary = true, int Encoding = SG_FILE_ENCODING_ANSI);
1137
1138 virtual bool Close (void);
1139
1140 virtual const CSG_String & Get_File_Name (void) const { return( m_FileName ); }
1141 virtual CSG_String Get_File_Name (size_t Index) { return( m_FileName ); }
1142 virtual TSG_File_Type Get_File_Type (void) const { return( SG_FILE_TYPE_NORMAL ); }
1143
1144 class wxStreamBase * Get_Stream (void) const { return( (class wxStreamBase *)m_pStream ); }
1145
1146 bool Set_Encoding (int Encoding);
1147 int Get_Encoding (void) const { return( m_Encoding ); }
1148
1149 bool is_Open (void) const { return( m_pStream != NULL ); }
1150 bool is_Reading (void) const { return( m_pStream != NULL && m_Mode != SG_FILE_W ); }
1151 bool is_Writing (void) const { return( m_pStream != NULL && m_Mode != SG_FILE_R ); }
1152 bool is_EOF (void) const;
1153
1154 sLong Length (void) const;
1155
1156 bool Seek (sLong Offset, int Origin = SG_FILE_START) const;
1157 bool Seek_Start (void) const;
1158 bool Seek_End (void) const;
1159
1160 sLong Tell (void) const;
1161
1162 bool Flush (void);
1163
1164 int Printf (const char *Format, ...);
1165 int Printf (const wchar_t *Format, ...);
1166
1167 size_t Read (void *Buffer, size_t Size, size_t Count = 1) const;
1168 size_t Write (void *Buffer, size_t Size, size_t Count = 1) const;
1169 size_t Read ( CSG_String &Buffer, size_t Size) const;
1170 size_t Write (const CSG_String &Buffer) const;
1171
1172 bool Read_Line (CSG_String &Line) const;
1173
1174 int Read_Char (void) const;
1175 int Read_Int ( bool bBigEndian = false) const;
1176 bool Write_Int (int Value, bool bBigEndian = false);
1177 double Read_Double ( bool bBigEndian = false) const;
1178 bool Write_Double (double Value, bool bBigEndian = false);
1179
1180 bool Scan (int &Value) const;
1181 bool Scan (double &Value) const;
1182 bool Scan (CSG_String &Value, SG_Char Separator) const;
1183
1184 int Scan_Int (void) const;
1185 double Scan_Double (void) const;
1186 CSG_String Scan_String (SG_Char Separator) const;
1187
1188
1189protected:
1190
1192
1194
1196
1197
1198 void On_Construction (void);
1199
1200};
1201
1202//---------------------------------------------------------
1204{
1205public:
1206
1207 CSG_Archive(void);
1208 virtual ~CSG_Archive(void);
1209
1210 CSG_Archive (const SG_Char *FileName, int Mode = SG_FILE_R, int Encoding = SG_FILE_ENCODING_ANSI);
1211 virtual bool Open (const SG_Char *FileName, int Mode = SG_FILE_R, int Encoding = SG_FILE_ENCODING_ANSI);
1212 virtual bool Open (const SG_Char *FileName, int Mode, bool bBinary, int Encoding) { return( Open(FileName, Mode, Encoding) ); }
1213
1214 virtual bool Close (void);
1215
1216 virtual const CSG_String & Get_Archive (void) const { return( m_Archive ); }
1217 virtual TSG_File_Type Get_File_Type (void) const { return( m_Type ); }
1218 bool is_Zip (void) const { return( m_Type == SG_FILE_TYPE_ZIP ); }
1219 bool is_Tar (void) const { return( m_Type == SG_FILE_TYPE_TAR ); }
1220
1221 bool Add_Directory (const SG_Char *Name);
1222 bool Add_File (const SG_Char *Name, bool bBinary = true);
1223
1224 size_t Get_File_Count (void) { return( m_Files.Get_Size() ); }
1225 bool Get_File (const SG_Char *Name);
1226 bool Get_File (size_t Index);
1227 virtual CSG_String Get_File_Name (size_t Index);
1228 bool is_Directory (size_t Index);
1229
1230 bool Extract_All (const SG_Char *toDirectory = NULL);
1231 bool Extract (const SG_Char *File, const SG_Char *toFile = NULL);
1232
1233
1234protected:
1235
1237
1239
1241
1242};
1243
1244//---------------------------------------------------------
1246{
1247public:
1248
1249 CSG_ZLib(void);
1250
1251 static bool is_GZip_Supported (void);
1252
1253 static CSG_String Compress (const CSG_String &File, const CSG_String &Target = "");
1254 static CSG_String Uncompress (const CSG_String &File, const CSG_String &Target = "");
1255
1256};
1257
1258//---------------------------------------------------------
1259#define CSG_File_Zip CSG_Archive // for backward compatibility
1260
1261//---------------------------------------------------------
1262SAGA_API_DLL_EXPORT bool SG_Dir_Exists (const CSG_String &Directory);
1263SAGA_API_DLL_EXPORT bool SG_Dir_Create (const CSG_String &Directory, bool bFullPath = false);
1264SAGA_API_DLL_EXPORT bool SG_Dir_Delete (const CSG_String &Directory, bool bRecursive = false);
1267SAGA_API_DLL_EXPORT bool SG_Dir_List_Subdirectories (CSG_Strings &List, const CSG_String &Directory , bool bRecursive = false);
1268SAGA_API_DLL_EXPORT bool SG_Dir_List_Files (CSG_Strings &List, const CSG_String &Directory, const CSG_String &Extension = "", bool bRecursive = false);
1269
1270SAGA_API_DLL_EXPORT bool SG_File_Exists (const CSG_String &FileName);
1271SAGA_API_DLL_EXPORT bool SG_File_Delete (const CSG_String &FileName);
1274SAGA_API_DLL_EXPORT CSG_String SG_File_Get_Name (const CSG_String &full_Path, bool bExtension);
1279SAGA_API_DLL_EXPORT CSG_String SG_File_Make_Path (const CSG_String &Directory, const CSG_String &Name, const CSG_String &Extension);
1280SAGA_API_DLL_EXPORT bool SG_File_Cmp_Path (const CSG_String &Path1, const CSG_String &Path2);
1281SAGA_API_DLL_EXPORT bool SG_File_Cmp_Extension (const CSG_String &File, const CSG_String &Extension);
1283SAGA_API_DLL_EXPORT bool SG_File_Set_Extension ( CSG_String &File, const CSG_String &Extension);
1284
1285//---------------------------------------------------------
1286SAGA_API_DLL_EXPORT bool SG_Get_Environment (const CSG_String &Variable, CSG_String *Value = NULL);
1287SAGA_API_DLL_EXPORT bool SG_Set_Environment (const CSG_String &Variable, const CSG_String &Value);
1288
1289
1291// //
1292// Colors //
1293// //
1295
1296//---------------------------------------------------------
1297#define SG_GET_RGB( r, g, b ) ((DWORD) (((BYTE)(r) | ((WORD)(g) << 8)) | (((DWORD)(BYTE)(b)) << 16)))
1298#define SG_GET_RGBA(r, g, b, a) ((DWORD) (((BYTE)(r) | ((WORD)(g) << 8)) | (((DWORD)(BYTE)(b)) << 16) | (((DWORD)(BYTE)(a)) << 24)))
1299
1300#define SG_GET_R(rgb) ((BYTE) ((rgb) ))
1301#define SG_GET_G(rgb) ((BYTE) ((rgb) >> 8))
1302#define SG_GET_B(rgb) ((BYTE) ((rgb) >> 16))
1303#define SG_GET_A(rgb) ((BYTE) ((rgb) >> 24))
1304
1305//---------------------------------------------------------
1306#define SG_COLOR_BLACK SG_GET_RGB( 0, 0, 0)
1307#define SG_COLOR_GREY SG_GET_RGB(128, 128, 128)
1308#define SG_COLOR_GREY_LIGHT SG_GET_RGB(192, 192, 192)
1309#define SG_COLOR_WHITE SG_GET_RGB(255, 255, 255)
1310#define SG_COLOR_RED SG_GET_RGB(255, 0, 0)
1311#define SG_COLOR_RED_DARK SG_GET_RGB(128, 0, 0)
1312#define SG_COLOR_YELLOW SG_GET_RGB(255, 255, 0)
1313#define SG_COLOR_YELLOW_DARK SG_GET_RGB(128, 128, 0)
1314#define SG_COLOR_GREEN SG_GET_RGB( 0, 255, 0)
1315#define SG_COLOR_GREEN_DARK SG_GET_RGB( 0, 128, 0)
1316#define SG_COLOR_GREEN_LIGHT SG_GET_RGB( 0, 255, 0)
1317#define SG_COLOR_BLUE SG_GET_RGB( 0, 0, 255)
1318#define SG_COLOR_BLUE_DARK SG_GET_RGB( 0, 0, 128)
1319#define SG_COLOR_BLUE_LIGHT SG_GET_RGB( 0, 255, 255)
1320#define SG_COLOR_BLUE_GREEN SG_GET_RGB( 0, 128, 128)
1321#define SG_COLOR_PURPLE SG_GET_RGB(128, 0, 128)
1322#define SG_COLOR_PINK SG_GET_RGB(255, 0, 255)
1323#define SG_COLOR_NONE -1
1324#define SG_COLOR_RANDOM -2
1325
1326//---------------------------------------------------------
1328{
1333
1338
1342
1346
1350
1354
1358
1364
1369
1374
1379
1383
1386
1392
1394
1398
1400};
1401
1402//---------------------------------------------------------
1404
1406SAGA_API_DLL_EXPORT long SG_Color_From_RGB (int Red, int Green, int Blue, int Alpha = 0);
1407SAGA_API_DLL_EXPORT bool SG_Color_From_Text (const CSG_String &Text, long &Color);
1408SAGA_API_DLL_EXPORT CSG_String SG_Color_To_Text (long Color, bool bHexadecimal = true);
1409
1410//---------------------------------------------------------
1412{
1413public:
1414 CSG_Colors (void);
1415 bool Create (void);
1416
1417 CSG_Colors (const CSG_Colors &Colors);
1418 bool Create (const CSG_Colors &Colors);
1419
1420 CSG_Colors (int nColors, int Palette = SG_COLORS_DEFAULT, bool bRevert = false);
1421 bool Create (int nColors, int Palette = SG_COLORS_DEFAULT, bool bRevert = false);
1422
1423 CSG_Colors (const CSG_String &Palette, int nColors = 0, bool bRevert = false);
1424 bool Create (const CSG_String &Palette, int nColors = 0, bool bRevert = false);
1425
1426 virtual ~CSG_Colors(void);
1427
1428 void Destroy (void);
1429
1430 bool Set_Count (int nColors);
1431 int Get_Count (void) const { return( m_nColors ); }
1432
1433 CSG_Colors & operator = (const CSG_Colors &Colors);
1434 long & operator [] (int Index) { return( m_Colors[Index < 0 ? 0 : Index >= m_nColors ? m_nColors - 1 : Index] ); }
1435
1436 bool Set_Color (int Index, long Color);
1437 bool Set_Color (int Index, int Red, int Green, int Blue);
1438 bool Set_Red (int Index, int Value);
1439 bool Set_Green (int Index, int Value);
1440 bool Set_Blue (int Index, int Value);
1441 bool Set_Brightness (int Index, int Value);
1442
1443 long Get_Color (int Index) const { return( m_nColors > 0 ? m_Colors[Index < 0 ? 0 : Index >= m_nColors ? m_nColors - 1 : Index] : 0 ); }
1444 long Get_Red (int Index) const { return( SG_GET_R(Get_Color(Index)) ); }
1445 long Get_Green (int Index) const { return( SG_GET_G(Get_Color(Index)) ); }
1446 long Get_Blue (int Index) const { return( SG_GET_B(Get_Color(Index)) ); }
1447 long Get_Brightness (int Index) const { return( (Get_Red(Index) + Get_Green(Index) + Get_Blue(Index)) / 3 ); }
1448
1449 long Get_Interpolated (double Index) const
1450 {
1451 if( m_nColors <= 0 ) return( 0 );
1452 if( Index <= 0. ) return( m_Colors[0] );
1453 if( Index >= m_nColors - 1. ) return( m_Colors[m_nColors - 1] );
1454
1455 int i = (int)Index; Index -= i;
1456 int r = (int)(Get_Red (i) + Index * ((double)Get_Red (i + 1) - Get_Red (i)));
1457 int g = (int)(Get_Green(i) + Index * ((double)Get_Green(i + 1) - Get_Green(i)));
1458 int b = (int)(Get_Blue (i) + Index * ((double)Get_Blue (i + 1) - Get_Blue (i)));
1459
1460 return( SG_GET_RGB(r, g, b) );
1461 }
1462
1463 static int Get_Predefined_Count(void);
1464 static CSG_String Get_Predefined_Name (int Index, bool bWithIndex = true);
1465 bool Set_Predefined (int Index , bool bRevert = false, int nColors = 0);
1466 bool Set_Predefined (const CSG_String &Name, bool bRevert = false, int nColors = 0);
1467 bool Set_Palette (int Index , bool bRevert = false, int nColors = 0) { return( Set_Predefined(Index, bRevert, nColors) ); }
1468 bool Set_Palette (const CSG_String &Name, bool bRevert = false, int nColors = 0) { return( Set_Predefined(Name, bRevert, nColors) ); }
1469 bool Set_Default (int nColors = 11);
1470 bool Set_Ramp (long Color_A, long Color_B);
1471 bool Set_Ramp (long Color_A, long Color_B, int iColor_A, int iColor_B);
1472 bool Set_Ramp_Brighness (int Brightness_A, int Brightness_B);
1473 bool Set_Ramp_Brighness (int Brightness_A, int Brightness_B, int iColor_A, int iColor_B);
1474
1475 bool Random (void);
1476 bool Invert (void);
1477 bool Revert (void);
1478 bool Greyscale (void);
1479
1480 bool Assign (const CSG_Colors &Colors);
1481 bool Assign (CSG_Colors *pSource);
1482
1483 bool Load (const CSG_String &File_Name);
1484 bool Save (const CSG_String &File_Name, bool bBinary);
1485
1486 bool Serialize (CSG_File &Stream, bool bSave, bool bBinary);
1487
1488 bool to_Text ( CSG_String &String);
1489 bool from_Text (const CSG_String &String);
1490
1491
1492private:
1493
1494 int m_nColors;
1495
1496 long *m_Colors;
1497
1498
1499 void _Set_Brightness (double &a, double &b, double &c, int Pass = 0);
1500
1501};
1502
1503
1505// //
1506// Translator //
1507// //
1509
1510//---------------------------------------------------------
1512{
1513public:
1514 CSG_Translator(void);
1515 virtual ~CSG_Translator(void);
1516
1517 CSG_Translator (const CSG_String &File_Name, bool bSetExtension = true, int iText = 0, int iTranslation = 1, bool bCmpNoCase = false);
1518 bool Create (const CSG_String &File_Name, bool bSetExtension = true, int iText = 0, int iTranslation = 1, bool bCmpNoCase = false);
1519
1520 CSG_Translator (class CSG_Table *pTranslations, int iText = 0, int iTranslation = 1, bool bCmpNoCase = false);
1521 bool Create (class CSG_Table *pTranslations, int iText = 0, int iTranslation = 1, bool bCmpNoCase = false);
1522
1523 void Destroy (void);
1524
1525 bool is_CaseSensitive (void) const { return( !m_bCmpNoCase ); }
1526
1527 int Get_Count (void) const { return( m_nTranslations ); }
1528 const SG_Char * Get_Text (int i) const { return( i >= 0 && i < m_nTranslations ? m_Translations[i]->m_Text : SG_T("") ); }
1529 const SG_Char * Get_Translation (int i) const { return( i >= 0 && i < m_nTranslations ? m_Translations[i]->m_Translation : SG_T("") ); }
1530
1531 const SG_Char * Get_Translation (const SG_Char *Text, bool bReturnNullOnNotFound = false) const;
1532 bool Get_Translation (const SG_Char *Text, CSG_String &Translation) const;
1533
1534
1535private:
1536
1537 class CSG_Translation
1538 {
1539 public:
1540 CSG_Translation(const CSG_String &Text, const CSG_String &Translation)
1541 {
1542 m_Text = Text;
1543 m_Translation = Translation;
1544 }
1545
1546 CSG_String m_Text, m_Translation;
1547 };
1548
1549
1550private:
1551
1552 bool m_bCmpNoCase;
1553
1554 int m_nTranslations;
1555
1556 CSG_Translation **m_Translations;
1557
1558
1559 int _Get_Index (const CSG_String &Text) const;
1560
1561};
1562
1563//---------------------------------------------------------
1565
1567
1568#define _TL(s) SG_Translate(L ## s)
1569#define _TW(s) SG_Translate(CSG_String(s))
1570
1571
1573// //
1574// UI Callback //
1575// //
1577
1578//---------------------------------------------------------
1593
1594//---------------------------------------------------------
1604
1605//---------------------------------------------------------
1613
1614//---------------------------------------------------------
1628
1629//---------------------------------------------------------
1678
1679//---------------------------------------------------------
1681{
1682public:
1683 CSG_UI_Parameter(void) : Boolean(false), Number( 0. ), Pointer(NULL) {}
1684 CSG_UI_Parameter(bool Value) : Boolean(Value), Number( 0. ), Pointer(NULL) {}
1685 CSG_UI_Parameter(int Value) : Boolean(false), Number(Value), Pointer(NULL) {}
1686 CSG_UI_Parameter(double Value) : Boolean(false), Number(Value), Pointer(NULL) {}
1687 CSG_UI_Parameter(const CSG_String &Value) : Boolean(false), Number( 0. ), Pointer(NULL), String(Value) {}
1688 CSG_UI_Parameter(void *Value) : Boolean(false), Number( 0. ), Pointer(Value) {}
1690
1692
1693 double Number;
1694
1695 void *Pointer;
1696
1698
1699};
1700
1701//---------------------------------------------------------
1703
1704//---------------------------------------------------------
1707
1708//---------------------------------------------------------
1711
1712SAGA_API_DLL_EXPORT void SG_UI_Console_Print_StdOut (const char *Text, SG_Char End = '\n', bool bFlush = true);
1713SAGA_API_DLL_EXPORT void SG_UI_Console_Print_StdOut (const wchar_t *Text, SG_Char End = '\n', bool bFlush = true);
1714SAGA_API_DLL_EXPORT void SG_UI_Console_Print_StdOut (const CSG_String &Text, SG_Char End = '\n', bool bFlush = true);
1715SAGA_API_DLL_EXPORT void SG_UI_Console_Print_StdErr (const char *Text, SG_Char End = '\n', bool bFlush = true);
1716SAGA_API_DLL_EXPORT void SG_UI_Console_Print_StdErr (const wchar_t *Text, SG_Char End = '\n', bool bFlush = true);
1717SAGA_API_DLL_EXPORT void SG_UI_Console_Print_StdErr (const CSG_String &Text, SG_Char End = '\n', bool bFlush = true);
1718
1719//---------------------------------------------------------
1723SAGA_API_DLL_EXPORT bool SG_UI_Process_Get_Okay (bool bBlink = false);
1724SAGA_API_DLL_EXPORT bool SG_UI_Process_Set_Okay (bool bOkay = true);
1725SAGA_API_DLL_EXPORT bool SG_UI_Process_Set_Busy (bool bOn = true, const CSG_String &Message = "");
1726SAGA_API_DLL_EXPORT bool SG_UI_Process_Set_Progress (int Position, int Range);
1728SAGA_API_DLL_EXPORT bool SG_UI_Process_Set_Progress (double Position, double Range);
1731
1732SAGA_API_DLL_EXPORT bool SG_UI_Stop_Execution (bool bDialog);
1733
1734SAGA_API_DLL_EXPORT void SG_UI_Dlg_Message (const CSG_String &Message, const CSG_String &Caption);
1735SAGA_API_DLL_EXPORT bool SG_UI_Dlg_Continue (const CSG_String &Message, const CSG_String &Caption);
1736SAGA_API_DLL_EXPORT int SG_UI_Dlg_Error (const CSG_String &Message, const CSG_String &Caption);
1737SAGA_API_DLL_EXPORT void SG_UI_Dlg_Info (const CSG_String &Message, const CSG_String &Caption);
1738SAGA_API_DLL_EXPORT bool SG_UI_Dlg_Parameters (class CSG_Parameters *pParameters, const CSG_String &Caption);
1739
1740SAGA_API_DLL_EXPORT int SG_UI_Msg_Lock (bool bOn);
1743SAGA_API_DLL_EXPORT void SG_UI_Msg_Add (const char *Message, bool bNewLine = true, TSG_UI_MSG_STYLE Style = SG_UI_MSG_STYLE_NORMAL);
1744SAGA_API_DLL_EXPORT void SG_UI_Msg_Add (const wchar_t *Message, bool bNewLine = true, TSG_UI_MSG_STYLE Style = SG_UI_MSG_STYLE_NORMAL);
1745SAGA_API_DLL_EXPORT void SG_UI_Msg_Add (const CSG_String &Message, bool bNewLine = true, TSG_UI_MSG_STYLE Style = SG_UI_MSG_STYLE_NORMAL);
1746SAGA_API_DLL_EXPORT void SG_UI_Msg_Add_Execution (const char *Message, bool bNewLine = true, TSG_UI_MSG_STYLE Style = SG_UI_MSG_STYLE_NORMAL);
1747SAGA_API_DLL_EXPORT void SG_UI_Msg_Add_Execution (const wchar_t *Message, bool bNewLine = true, TSG_UI_MSG_STYLE Style = SG_UI_MSG_STYLE_NORMAL);
1748SAGA_API_DLL_EXPORT void SG_UI_Msg_Add_Execution (const CSG_String &Message, bool bNewLine = true, TSG_UI_MSG_STYLE Style = SG_UI_MSG_STYLE_NORMAL);
1749SAGA_API_DLL_EXPORT void SG_UI_Msg_Add_Error (const char *Message);
1750SAGA_API_DLL_EXPORT void SG_UI_Msg_Add_Error (const wchar_t *Message);
1753
1756
1757SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Add (class CSG_Data_Object *pDataObject, int Show);
1758SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Del (class CSG_Data_Object *pDataObject, bool bConfirm);
1759SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Update (class CSG_Data_Object *pDataObject, int Show, class CSG_Parameters *pParameters);
1760SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Show (class CSG_Data_Object *pDataObject, int Show);
1761SAGA_API_DLL_EXPORT bool SG_UI_DataObject_asImage (class CSG_Data_Object *pDataObject, class CSG_Grid *pGrid);
1762
1763SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Colors_Get (class CSG_Data_Object *pDataObject, class CSG_Colors *pColors);
1764SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Colors_Set (class CSG_Data_Object *pDataObject, class CSG_Colors *pColors);
1765
1766SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Classify (class CSG_Data_Object *pDataObject, const class CSG_MetaData &Options);
1767
1768SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Params_Get (class CSG_Data_Object *pDataObject, class CSG_Parameters *pParameters);
1769SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Params_Set (class CSG_Data_Object *pDataObject, class CSG_Parameters *pParameters);
1770
1771SAGA_API_DLL_EXPORT bool SG_UI_Set_Map_Extent (double xMin, double yMin, double xMax, double yMax, int Maps = SG_UI_MAP_ACTIVE);
1772
1773SAGA_API_DLL_EXPORT bool SG_UI_Diagram_Show (class CSG_Table *pTable, class CSG_Parameters *pParameters);
1774
1776
1778
1784
1785
1787// //
1788// Environment //
1789// //
1791
1792//---------------------------------------------------------
1793SAGA_API_DLL_EXPORT bool SG_Initialize_Environment (bool bLibraries = true, bool bProjections = true, const SG_Char *SAGA_Path = NULL, bool bInitializeWX = true);
1795
1796
1798// //
1799// //
1800// //
1802
1803//---------------------------------------------------------
1804#endif // #ifndef HEADER_INCLUDED__SAGA_API__api_core_H
SAGA_API_DLL_EXPORT long SG_Color_Get_Random(void)
SAGA_API_DLL_EXPORT bool SG_Get_Environment(const CSG_String &Variable, CSG_String *Value=NULL)
SAGA_API_DLL_EXPORT bool SG_File_Exists(const CSG_String &FileName)
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Colors_Get(class CSG_Data_Object *pDataObject, class CSG_Colors *pColors)
SAGA_API_DLL_EXPORT double SG_Mem_Get_Double(const char *Buffer, bool bSwapBytes)
SAGA_API_DLL_EXPORT void SG_UI_Console_Print_StdErr(const char *Text, SG_Char End='\n', bool bFlush=true)
SAGA_API_DLL_EXPORT void SG_Flip_Decimal_Separators(CSG_String &String)
SAGA_API_DLL_EXPORT CSG_String SG_Get_CurrentTimeStr(bool bWithDate=true)
SAGA_API_DLL_EXPORT void SG_UI_Console_Set_UTF8(bool bOn)
TSG_Array_Growth
Definition api_core.h:291
SAGA_API_DLL_EXPORT bool SG_UI_Dlg_Continue(const CSG_String &Message, const CSG_String &Caption)
SAGA_API_DLL_EXPORT CSG_String SG_Double_To_Degree(double Value)
SAGA_API_DLL_EXPORT void SG_UI_Console_Print_StdOut(const char *Text, SG_Char End='\n', bool bFlush=true)
#define SG_GET_B(rgb)
Definition api_core.h:1302
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Params_Get(class CSG_Data_Object *pDataObject, class CSG_Parameters *pParameters)
TSG_UI_MSG_STYLE
Definition api_core.h:1580
@ SG_UI_MSG_STYLE_03
Definition api_core.h:1590
@ SG_UI_MSG_STYLE_FAILURE
Definition api_core.h:1585
@ SG_UI_MSG_STYLE_SUCCESS
Definition api_core.h:1584
@ SG_UI_MSG_STYLE_02
Definition api_core.h:1589
@ SG_UI_MSG_STYLE_BOLD
Definition api_core.h:1582
@ SG_UI_MSG_STYLE_BIG
Definition api_core.h:1586
@ SG_UI_MSG_STYLE_NORMAL
Definition api_core.h:1581
@ SG_UI_MSG_STYLE_SMALL
Definition api_core.h:1587
@ SG_UI_MSG_STYLE_ITALIC
Definition api_core.h:1583
@ SG_UI_MSG_STYLE_01
Definition api_core.h:1588
unsigned long long uLong
Definition api_core.h:159
SAGA_API_DLL_EXPORT void SG_Mem_Set_Int(char *Buffer, int Value, bool bSwapBytes)
SAGA_API_DLL_EXPORT bool SG_File_Cmp_Extension(const CSG_String &File, const CSG_String &Extension)
#define SG_GET_G(rgb)
Definition api_core.h:1301
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Add(class CSG_Data_Object *pDataObject, int Show)
SAGA_API_DLL_EXPORT int SG_OMP_Get_Thread_Num(void)
Definition api_core.cpp:112
SAGA_API_DLL_EXPORT CSG_String SG_HTML_Tag_Replacer(const CSG_String &Text)
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Colors_Set(class CSG_Data_Object *pDataObject, class CSG_Colors *pColors)
SAGA_API_DLL_EXPORT void * SG_UI_Get_Window_Main(void)
SAGA_API_DLL_EXPORT bool SG_UI_Process_Set_Okay(bool bOkay=true)
SAGA_API_DLL_EXPORT TSG_Data_Type SG_Data_Type_Get_Type(const CSG_String &Identifier)
Definition api_core.cpp:153
SAGA_API_DLL_EXPORT bool SG_UI_Dlg_Parameters(class CSG_Parameters *pParameters, const CSG_String &Caption)
SAGA_API_DLL_EXPORT int SG_UI_Msg_Reset(void)
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Show(class CSG_Data_Object *pDataObject, int Show)
SAGA_API_DLL_EXPORT CSG_String SG_Dir_Get_Temp(void)
SAGA_API_DLL_EXPORT bool SG_Color_From_Text(const CSG_String &Text, long &Color)
SAGA_API_DLL_EXPORT void * SG_Malloc(size_t size)
SAGA_API_DLL_EXPORT void SG_UI_Dlg_Message(const CSG_String &Message, const CSG_String &Caption)
signed long long sLong
Definition api_core.h:158
SAGA_API_DLL_EXPORT void SG_UI_ProgressAndMsg_Lock(bool bOn)
SAGA_API_DLL_EXPORT CSG_String SG_File_Get_Path_Absolute(const CSG_String &full_Path)
SAGA_API_DLL_EXPORT const SG_Char * SG_Translate(const CSG_String &Text)
SAGA_API_DLL_EXPORT bool SG_Dir_Create(const CSG_String &Directory, bool bFullPath=false)
Definition api_file.cpp:972
SAGA_API_DLL_EXPORT bool SG_Dir_List_Files(CSG_Strings &List, const CSG_String &Directory, const CSG_String &Extension="", bool bRecursive=false)
#define SG_T(s)
Definition api_core.h:537
SAGA_API_DLL_EXPORT void SG_Free(void *memblock)
SAGA_API_DLL_EXPORT CSG_String SG_File_Get_Path(const CSG_String &full_Path)
SAGA_API_DLL_EXPORT CSG_String SG_Color_To_Text(long Color, bool bHexadecimal=true)
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Classify(class CSG_Data_Object *pDataObject, const class CSG_MetaData &Options)
SAGA_API_DLL_EXPORT CSG_String SG_File_Make_Path(const CSG_String &Directory, const CSG_String &Name)
SAGA_API_DLL_EXPORT int SG_UI_Progress_Lock(bool bOn)
SAGA_API_DLL_EXPORT bool SG_UI_Process_Get_Okay(bool bBlink=false)
TSG_String_Tokenizer_Mode
Definition api_core.h:750
@ SG_TOKEN_RET_DELIMS
Definition api_core.h:755
@ SG_TOKEN_RET_EMPTY_ALL
Definition api_core.h:754
@ SG_TOKEN_DEFAULT
Definition api_core.h:752
@ SG_TOKEN_RET_EMPTY
Definition api_core.h:753
@ SG_TOKEN_INVALID
Definition api_core.h:751
@ SG_TOKEN_STRTOK
Definition api_core.h:756
SAGA_API_DLL_EXPORT CSG_String SG_File_Get_Path_Relative(const CSG_String &Directory, const CSG_String &full_Path)
SAGA_API_DLL_EXPORT bool SG_File_Delete(const CSG_String &FileName)
SAGA_API_DLL_EXPORT int SG_UI_Msg_Lock(bool bOn)
SAGA_API_DLL_EXPORT CSG_String SG_Data_Type_Get_Identifier(TSG_Data_Type Type)
Definition api_core.cpp:147
#define SG_GET_R(rgb)
Definition api_core.h:1300
SAGA_API_DLL_EXPORT bool SG_UI_Process_Set_Progress(int Position, int Range)
TSG_UI_Window_Arrange
Definition api_core.h:1616
@ SG_UI_WINDOW_ARRANGE_TDI_TILE_HOR
Definition api_core.h:1621
@ SG_UI_WINDOW_ARRANGE_MDI_TILE_VER
Definition api_core.h:1618
@ SG_UI_WINDOW_ARRANGE_TDI_SPLIT_RIGHT
Definition api_core.h:1623
@ SG_UI_WINDOW_ARRANGE_MDI_TILE_HOR
Definition api_core.h:1619
@ SG_UI_WINDOW_ARRANGE_TDI_SPLIT_BOTTOM
Definition api_core.h:1625
@ SG_UI_WINDOW_ARRANGE_TDI_SPLIT_TOP
Definition api_core.h:1624
@ SG_UI_WINDOW_ARRANGE_TDI_TILE_VER
Definition api_core.h:1620
@ SG_UI_WINDOW_ARRANGE_MDI_CASCADE
Definition api_core.h:1617
@ SG_UI_WINDOW_ARRANGE_TDI_SPLIT_LEFT
Definition api_core.h:1622
SAGA_API_DLL_EXPORT TSG_PFNC_UI_Callback SG_Get_UI_Callback(void)
SAGA_API_DLL_EXPORT CSG_String SG_File_Get_Name(const CSG_String &full_Path, bool bExtension)
SAGA_API_DLL_EXPORT void * SG_Realloc(void *memblock, size_t size)
SAGA_API_DLL_EXPORT bool SG_UI_ODBC_Update(const CSG_String &Server)
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Del(class CSG_Data_Object *pDataObject, bool bConfirm)
SAGA_API_DLL_EXPORT long SG_Color_From_RGB(int Red, int Green, int Blue, int Alpha=0)
SAGA_API_DLL_EXPORT void * SG_Calloc(size_t num, size_t size)
SAGA_API_DLL_EXPORT void SG_UI_Msg_Add_Error(const char *Message)
SAGA_API_DLL_EXPORT bool SG_Set_Environment(const CSG_String &Variable, const CSG_String &Value)
SAGA_API_DLL_EXPORT void SG_OMP_Set_Max_Num_Threads(int iCores)
Definition api_core.cpp:109
SAGA_API_DLL_EXPORT CSG_Strings SG_String_Tokenize(const CSG_String &String, const CSG_String &Delimiters=SG_DEFAULT_DELIMITERS, TSG_String_Tokenizer_Mode Mode=SG_TOKEN_DEFAULT)
SAGA_API_DLL_EXPORT CSG_String SG_Colors_Get_Name(int Index)
SAGA_API_DLL_EXPORT bool SG_Initialize_Environment(bool bLibraries=true, bool bProjections=true, const SG_Char *SAGA_Path=NULL, bool bInitializeWX=true)
Definition api_core.cpp:452
TSG_UI_DataObject_Update
Definition api_core.h:1596
@ SG_UI_DATAOBJECT_SHOW_MAP_LAST
Definition api_core.h:1601
@ SG_UI_DATAOBJECT_SHOW_MAP
Definition api_core.h:1598
@ SG_UI_DATAOBJECT_UPDATE
Definition api_core.h:1597
@ SG_UI_DATAOBJECT_SHOW_MAP_ACTIVE
Definition api_core.h:1599
@ SG_UI_DATAOBJECT_SHOW_MAP_NEW
Definition api_core.h:1600
SAGA_API_DLL_EXPORT bool SG_is_Character_Numeric(int Character)
SAGA_API_DLL_EXPORT CSG_Translator & SG_Get_Translator(void)
const char gSG_Data_Type_Identifier[][32]
Definition api_core.h:1043
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Update(class CSG_Data_Object *pDataObject, int Show, class CSG_Parameters *pParameters)
SAGA_API_DLL_EXPORT int SG_UI_Dlg_Error(const CSG_String &Message, const CSG_String &Caption)
SAGA_API_DLL_EXPORT CSG_String SG_UI_Get_API_Path(void)
Definition api_core.cpp:345
SAGA_API_DLL_EXPORT bool SG_Dir_List_Subdirectories(CSG_Strings &List, const CSG_String &Directory, bool bRecursive=false)
SAGA_API_DLL_EXPORT bool SG_UI_Console_Get_UTF8(void)
SAGA_API_DLL_EXPORT void SG_UI_Process_Set_Text(const CSG_String &Text)
SAGA_API_DLL_EXPORT int SG_OMP_Get_Max_Num_Procs(void)
Definition api_core.cpp:111
SAGA_API_DLL_EXPORT bool SG_Dir_Exists(const CSG_String &Directory)
Definition api_file.cpp:966
SAGA_API_DLL_EXPORT bool SG_Data_Type_is_Numeric(TSG_Data_Type Type)
Definition api_core.cpp:198
SAGA_API_DLL_EXPORT bool SG_UI_Set_Map_Extent(double xMin, double yMin, double xMax, double yMax, int Maps=SG_UI_MAP_ACTIVE)
SAGA_API_DLL_EXPORT void SG_Mem_Set_Double(char *Buffer, double Value, bool bSwapBytes)
SAGA_API_DLL_EXPORT bool SG_UI_Progress_is_Locked(void)
TSG_File_Type
Definition api_core.h:1104
@ SG_FILE_TYPE_NORMAL
Definition api_core.h:1105
@ SG_FILE_TYPE_TAR
Definition api_core.h:1107
@ SG_FILE_TYPE_ZIP
Definition api_core.h:1106
SAGA_API_DLL_EXPORT int SG_Mem_Get_Int(const char *Buffer, bool bSwapBytes)
#define SAGA_API_DLL_EXPORT
Definition api_core.h:94
SAGA_API_DLL_EXPORT CSG_String SG_File_Get_Name_Temp(const CSG_String &Prefix)
SAGA_API_DLL_EXPORT void SG_UI_Msg_Add_Execution(const char *Message, bool bNewLine=true, TSG_UI_MSG_STYLE Style=SG_UI_MSG_STYLE_NORMAL)
SAGA_API_DLL_EXPORT int SG_OMP_Get_Max_Num_Threads(void)
Definition api_core.cpp:110
TSG_UI_Maps
Definition api_core.h:1607
@ SG_UI_MAP_LAST
Definition api_core.h:1609
@ SG_UI_MAP_ALL
Definition api_core.h:1610
@ SG_UI_MAP_ACTIVE
Definition api_core.h:1608
SAGA_API_DLL_EXPORT bool SG_UI_Process_Set_Busy(bool bOn=true, const CSG_String &Message="")
SAGA_API_DLL_EXPORT CSG_String SG_UI_Get_Application_Name(void)
Definition api_core.cpp:378
SAGA_API_DLL_EXPORT int SG_Data_Type_Get_Flag(TSG_Data_Type Type)
Definition api_core.cpp:174
int(* TSG_PFNC_UI_Callback)(TSG_UI_Callback_ID ID, CSG_UI_Parameter &Param_1, CSG_UI_Parameter &Param_2)
Definition api_core.h:1702
SAGA_API_DLL_EXPORT CSG_String SG_Dir_Get_Current(void)
Definition api_file.cpp:994
SAGA_API_DLL_EXPORT void SG_UI_Dlg_Info(const CSG_String &Message, const CSG_String &Caption)
ESG_File_Flags_Seek
Definition api_core.h:1121
@ SG_FILE_CURRENT
Definition api_core.h:1123
@ SG_FILE_END
Definition api_core.h:1124
@ SG_FILE_START
Definition api_core.h:1122
SAGA_API_DLL_EXPORT double SG_Degree_To_Double(const CSG_String &String)
SAGA_API_DLL_EXPORT void SG_UI_Msg_Add(const char *Message, bool bNewLine=true, TSG_UI_MSG_STYLE Style=SG_UI_MSG_STYLE_NORMAL)
SAGA_API_DLL_EXPORT bool SG_File_Set_Extension(CSG_String &File, const CSG_String &Extension)
SAGA_API_DLL_EXPORT bool SG_Data_Type_Range_Check(TSG_Data_Type Type, double &Value)
Definition api_core.cpp:224
TSG_Data_Type
Definition api_core.h:997
@ SG_DATATYPE_Long
Definition api_core.h:1006
@ SG_DATATYPE_Byte
Definition api_core.h:999
@ SG_DATATYPE_Bit
Definition api_core.h:998
@ SG_DATATYPE_Short
Definition api_core.h:1002
@ SG_DATATYPE_Word
Definition api_core.h:1001
@ SG_DATATYPE_ULong
Definition api_core.h:1005
@ SG_DATATYPE_Float
Definition api_core.h:1007
@ SG_DATATYPE_Undefined
Definition api_core.h:1013
@ SG_DATATYPE_Binary
Definition api_core.h:1012
@ SG_DATATYPE_Double
Definition api_core.h:1008
@ SG_DATATYPE_Color
Definition api_core.h:1011
@ SG_DATATYPE_Int
Definition api_core.h:1004
@ SG_DATATYPE_Char
Definition api_core.h:1000
@ SG_DATATYPE_String
Definition api_core.h:1009
@ SG_DATATYPE_DWord
Definition api_core.h:1003
@ SG_DATATYPE_Date
Definition api_core.h:1010
SAGA_API_DLL_EXPORT void SG_UI_Msg_Flush(void)
#define SG_DEFAULT_DELIMITERS
Definition api_core.h:747
SAGA_API_DLL_EXPORT bool SG_Dir_Delete(const CSG_String &Directory, bool bRecursive=false)
Definition api_file.cpp:983
#define SG_Char
Definition api_core.h:536
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_Params_Set(class CSG_Data_Object *pDataObject, class CSG_Parameters *pParameters)
#define SG_GET_RGB(r, g, b)
Definition api_core.h:1297
TSG_UI_Callback_ID
Definition api_core.h:1631
@ CALLBACK_GET_APP_WINDOW
Definition api_core.h:1674
@ CALLBACK_DLG_INFO
Definition api_core.h:1644
@ CALLBACK_SET_MAP_EXTENT
Definition api_core.h:1666
@ CALLBACK_PROCESS_SET_PROGRESS
Definition api_core.h:1635
@ CALLBACK_STOP_EXECUTION
Definition api_core.h:1639
@ CALLBACK_DLG_ERROR
Definition api_core.h:1643
@ CALLBACK_WINDOW_ARRANGE
Definition api_core.h:1672
@ CALLBACK_MESSAGE_ADD_ERROR
Definition api_core.h:1649
@ CALLBACK_DATAOBJECT_UPDATE
Definition api_core.h:1654
@ CALLBACK_PROCESS_SET_TEXT
Definition api_core.h:1637
@ CALLBACK_DATAOBJECT_PARAMS_GET
Definition api_core.h:1663
@ CALLBACK_PROCESS_SET_BUSY
Definition api_core.h:1634
@ CALLBACK_DIAGRAM_SHOW
Definition api_core.h:1668
@ CALLBACK_DLG_MESSAGE
Definition api_core.h:1641
@ CALLBACK_DATAOBJECT_COLORS_GET
Definition api_core.h:1658
@ CALLBACK_DLG_CONTINUE
Definition api_core.h:1642
@ CALLBACK_DATAOBJECT_COLORS_SET
Definition api_core.h:1659
@ CALLBACK_DLG_PARAMETERS
Definition api_core.h:1646
@ CALLBACK_MESSAGE_ADD
Definition api_core.h:1648
@ CALLBACK_DATAOBJECT_ASIMAGE
Definition api_core.h:1656
@ CALLBACK_DATAOBJECT_PARAMS_SET
Definition api_core.h:1664
@ CALLBACK_DATABASE_UPDATE
Definition api_core.h:1670
@ CALLBACK_DATAOBJECT_ADD
Definition api_core.h:1652
@ CALLBACK_GET_APP_PATH
Definition api_core.h:1675
@ CALLBACK_DATAOBJECT_SHOW
Definition api_core.h:1655
@ CALLBACK_DATAOBJECT_DEL
Definition api_core.h:1653
@ CALLBACK_PROCESS_SET_READY
Definition api_core.h:1636
@ CALLBACK_PROCESS_GET_OKAY
Definition api_core.h:1632
@ CALLBACK_PROCESS_SET_OKAY
Definition api_core.h:1633
@ CALLBACK_DATAOBJECT_CLASSIFY
Definition api_core.h:1661
@ CALLBACK_MESSAGE_ADD_EXECUTION
Definition api_core.h:1650
SAGA_API_DLL_EXPORT bool SG_File_Cmp_Path(const CSG_String &Path1, const CSG_String &Path2)
SAGA_API_DLL_EXPORT CSG_String operator+(const char *A, const CSG_String &B)
SAGA_API_DLL_EXPORT int SG_UI_Window_Arrange(int Arrange)
SAGA_API_DLL_EXPORT int SG_UI_Progress_Reset(void)
TSG_File_Flags_Encoding
Definition api_core.h:549
@ SG_FILE_ENCODING_UTF16LE
Definition api_core.h:553
@ SG_FILE_ENCODING_UTF16BE
Definition api_core.h:554
@ SG_FILE_ENCODING_UTF8
Definition api_core.h:552
@ SG_FILE_ENCODING_UTF7
Definition api_core.h:551
@ SG_FILE_ENCODING_UNDEFINED
Definition api_core.h:557
@ SG_FILE_ENCODING_ANSI
Definition api_core.h:550
@ SG_FILE_ENCODING_UTF32BE
Definition api_core.h:556
@ SG_FILE_ENCODING_UTF32LE
Definition api_core.h:555
SAGA_API_DLL_EXPORT int SG_Get_Significant_Decimals(double Value, int maxDecimals=6)
SAGA_API_DLL_EXPORT void SG_UI_ProgressAndMsg_Reset(void)
SAGA_API_DLL_EXPORT void SG_Swap_Bytes(void *Buffer, int nBytes)
SAGA_API_DLL_EXPORT CSG_String SG_UI_Set_Application_Name(const CSG_String &Name="")
Definition api_core.cpp:388
SAGA_API_DLL_EXPORT bool SG_UI_Msg_is_Locked(void)
SAGA_API_DLL_EXPORT CSG_String SG_UI_Get_Application_Path(bool bPathOnly=false)
Definition api_core.cpp:356
size_t SG_Data_Type_Get_Size(TSG_Data_Type Type)
Definition api_core.h:1064
SAGA_API_DLL_EXPORT bool SG_Set_UI_Callback(TSG_PFNC_UI_Callback Function)
SAGA_API_DLL_EXPORT bool SG_UI_Stop_Execution(bool bDialog)
SAGA_API_DLL_EXPORT CSG_String SG_File_Get_Extension(const CSG_String &File)
SAGA_API_DLL_EXPORT CSG_String SG_Get_String(double Value, int Precision=-99)
ESG_File_Flags_Open
Definition api_core.h:1113
@ SG_FILE_W
Definition api_core.h:1115
@ SG_FILE_R
Definition api_core.h:1114
@ SG_FILE_RW
Definition api_core.h:1116
SAGA_API_DLL_EXPORT bool SG_Uninitialize_Environment(void)
Definition api_core.cpp:528
SAGA_API_DLL_EXPORT CSG_String SG_Data_Type_Get_Name(TSG_Data_Type Type, bool bShort=false)
Definition api_core.cpp:123
ESG_Colors
Definition api_core.h:1328
@ SG_COLORS_SPECTRUM_3
Definition api_core.h:1397
@ SG_COLORS_BLUE_YELLOW_RED
Definition api_core.h:1365
@ SG_COLORS_DEFAULT_BRIGHT
Definition api_core.h:1330
@ SG_COLORS_YELLOW_WHITE
Definition api_core.h:1345
@ SG_COLORS_TOPOGRAPHY_3
Definition api_core.h:1377
@ SG_COLORS_WHITE_GREEN
Definition api_core.h:1340
@ SG_COLORS_GREEN_BLUE
Definition api_core.h:1353
@ SG_COLORS_BLACK_GREEN
Definition api_core.h:1336
@ SG_COLORS_PRECIPITATION_1
Definition api_core.h:1387
@ SG_COLORS_PRECIPITATION_3
Definition api_core.h:1389
@ SG_COLORS_WHITE_RED
Definition api_core.h:1339
@ SG_COLORS_RED_GREY_BLUE
Definition api_core.h:1360
@ SG_COLORS_GREEN_WHITE_RED
Definition api_core.h:1356
@ SG_COLORS_WHITE_BLUE
Definition api_core.h:1341
@ SG_COLORS_RED_GREY_GREEN
Definition api_core.h:1362
@ SG_COLORS_RAINBOW_2
Definition api_core.h:1332
@ SG_COLORS_GREEN_GREY_BLUE
Definition api_core.h:1363
@ SG_COLORS_RED_BLUE_GREEN
Definition api_core.h:1371
@ SG_COLORS_BLACK_WHITE
Definition api_core.h:1334
@ SG_COLORS_GREEN_YELLOW_RED
Definition api_core.h:1366
@ SG_COLORS_YELLOW_RED
Definition api_core.h:1347
@ SG_COLORS_NEON
Definition api_core.h:1373
@ SG_COLORS_SPECTRUM_2
Definition api_core.h:1396
@ SG_COLORS_GREEN_GREY_RED
Definition api_core.h:1361
@ SG_COLORS_THERMAL_1
Definition api_core.h:1384
@ SG_COLORS_GREEN_WHITE_BLUE
Definition api_core.h:1357
@ SG_COLORS_BLACK_BLUE
Definition api_core.h:1337
@ SG_COLORS_RED_GREEN_BLUE
Definition api_core.h:1370
@ SG_COLORS_PRECIPITATION_4
Definition api_core.h:1390
@ SG_COLORS_RED_YELLOW_GREEN
Definition api_core.h:1367
@ SG_COLORS_GREEN_YELLOW_BLUE
Definition api_core.h:1368
@ SG_COLORS_ASPECT_3
Definition api_core.h:1382
@ SG_COLORS_YELLOW_BLUE
Definition api_core.h:1349
@ SG_COLORS_TOPOGRAPHY_2
Definition api_core.h:1376
@ SG_COLORS_BLACK_RED
Definition api_core.h:1335
@ SG_COLORS_BLUE_WHITE_RED
Definition api_core.h:1355
@ SG_COLORS_VEGETATION
Definition api_core.h:1393
@ SG_COLORS_TOPOGRAPHY_4
Definition api_core.h:1378
@ SG_COLORS_MAGENTA_WHITE
Definition api_core.h:1344
@ SG_COLORS_SPECTRUM_1
Definition api_core.h:1395
@ SG_COLORS_ASPECT_2
Definition api_core.h:1381
@ SG_COLORS_ASPECT_1
Definition api_core.h:1380
@ SG_COLORS_GREEN_RED
Definition api_core.h:1352
@ SG_COLORS_RAINBOW
Definition api_core.h:1331
@ SG_COLORS_YELLOW_GREEN
Definition api_core.h:1348
@ SG_COLORS_CYAN_WHITE
Definition api_core.h:1343
@ SG_COLORS_THERMAL_2
Definition api_core.h:1385
@ SG_COLORS_GREEN_RED_BLUE
Definition api_core.h:1372
@ SG_COLORS_TOPOGRAPHY
Definition api_core.h:1375
@ SG_COLORS_BLUE_RED
Definition api_core.h:1351
@ SG_COLORS_BLUE_GREY_RED
Definition api_core.h:1359
@ SG_COLORS_DEFAULT
Definition api_core.h:1329
@ SG_COLORS_PRECIPITATION_5
Definition api_core.h:1391
@ SG_COLORS_COUNT
Definition api_core.h:1399
@ SG_COLORS_PRECIPITATION_2
Definition api_core.h:1388
SAGA_API_DLL_EXPORT bool SG_UI_Diagram_Show(class CSG_Table *pTable, class CSG_Parameters *pParameters)
SAGA_API_DLL_EXPORT bool SG_UI_Process_Set_Ready(void)
SAGA_API_DLL_EXPORT bool SG_UI_DataObject_asImage(class CSG_Data_Object *pDataObject, class CSG_Grid *pGrid)
bool is_Zip(void) const
Definition api_core.h:1218
virtual TSG_File_Type Get_File_Type(void) const
Definition api_core.h:1217
TSG_File_Type m_Type
Definition api_core.h:1236
bool is_Tar(void) const
Definition api_core.h:1219
CSG_Archive(void)
Definition api_file.cpp:580
size_t Get_File_Count(void)
Definition api_core.h:1224
virtual bool Open(const SG_Char *FileName, int Mode=SG_FILE_R, int Encoding=SG_FILE_ENCODING_ANSI)
Definition api_file.cpp:600
CSG_Array_Pointer m_Files
Definition api_core.h:1240
virtual bool Open(const SG_Char *FileName, int Mode, bool bBinary, int Encoding)
Definition api_core.h:1212
virtual const CSG_String & Get_Archive(void) const
Definition api_core.h:1216
CSG_String m_Archive
Definition api_core.h:1238
bool Set_Growth(TSG_Array_Growth Growth)
Definition api_core.h:433
bool Set_Array(sLong nValues, bool bShrink=true)
Definition api_core.h:442
int * Get_Array(sLong nValues)
Definition api_core.h:440
TSG_Array_Growth Get_Growth(void) const
Definition api_core.h:434
size_t Get_uSize(void) const
Definition api_core.h:437
CSG_Array_Int(sLong nValues=0, TSG_Array_Growth Growth=TSG_Array_Growth::SG_ARRAY_GROWTH_0)
Definition api_core.h:428
sLong Get_Size(void) const
Definition api_core.h:436
CSG_Array_Int(const CSG_Array_Int &Array)
Definition api_core.h:425
int * Create(const CSG_Array_Int &Array)
int * Get_Array(void) const
Definition api_core.h:439
int Get(sLong Index) const
Definition api_core.h:452
bool Dec_Array(bool bShrink=true)
Definition api_core.h:444
bool Assign(int Value)
bool Set(sLong Index, int Value)
Definition api_core.h:448
int & Get(sLong Index)
Definition api_core.h:450
void Destroy(void)
Definition api_core.h:431
bool Add(int Value)
bool Inc_Array(sLong nValues=1)
Definition api_core.h:443
void Destroy(void)
Definition api_core.h:376
bool Set_Array(sLong nValues, bool bShrink=true)
Definition api_core.h:387
sLong Get_Size(void) const
Definition api_core.h:381
void * Get(sLong Index) const
Definition api_core.h:397
size_t Get_uSize(void) const
Definition api_core.h:382
bool Set_Growth(TSG_Array_Growth Growth)
Definition api_core.h:378
void *& Get(sLong Index)
Definition api_core.h:395
bool Add(void *Value)
TSG_Array_Growth Get_Growth(void) const
Definition api_core.h:379
void ** Get_Array(void) const
Definition api_core.h:384
void ** Get_Array(sLong nValues)
Definition api_core.h:385
bool Dec_Array(bool bShrink=true)
Definition api_core.h:389
bool Set(sLong Index, void *Value)
Definition api_core.h:393
void ** Create(const CSG_Array_Pointer &Array)
CSG_Array_Pointer(sLong nValues=0, TSG_Array_Growth Growth=TSG_Array_Growth::SG_ARRAY_GROWTH_0)
Definition api_core.h:373
bool Inc_Array(sLong nValues=1)
Definition api_core.h:388
CSG_Array_Pointer(const CSG_Array_Pointer &Array)
Definition api_core.h:370
bool Set_Growth(TSG_Array_Growth Growth)
Definition api_core.h:489
CSG_Array_sLong(const CSG_Array_sLong &Array)
Definition api_core.h:481
sLong & Get(sLong Index)
Definition api_core.h:506
sLong Get_Size(void) const
Definition api_core.h:492
CSG_Array_sLong(sLong nValues=0, TSG_Array_Growth Growth=TSG_Array_Growth::SG_ARRAY_GROWTH_0)
Definition api_core.h:484
bool Dec_Array(bool bShrink=true)
Definition api_core.h:500
size_t Get_uSize(void) const
Definition api_core.h:493
bool Add(sLong Value)
bool Set_Array(sLong nValues, bool bShrink=true)
Definition api_core.h:498
sLong * Get_Array(sLong nValues)
Definition api_core.h:496
sLong * Get_Array(void) const
Definition api_core.h:495
sLong * Create(const CSG_Array_sLong &Array)
void Destroy(void)
Definition api_core.h:487
TSG_Array_Growth Get_Growth(void) const
Definition api_core.h:490
bool Inc_Array(sLong nValues=1)
Definition api_core.h:499
sLong Get(sLong Index) const
Definition api_core.h:508
bool Set(sLong Index, sLong Value)
Definition api_core.h:504
bool Assign(sLong Value)
bool Destroy(void)
void * Create(const CSG_Array &Array)
bool Set_Array(sLong nValues, bool bShrink=true)
void * Get_Array(sLong nValues)
Definition api_core.h:337
size_t Get_Value_Size(void) const
Definition api_core.h:326
CSG_Array(void)
void * Get_Array(void) const
Definition api_core.h:336
sLong Get_Size(void) const
Definition api_core.h:327
size_t Get_uSize(void) const
Definition api_core.h:328
TSG_Array_Growth Get_Growth(void) const
Definition api_core.h:324
void * Get_Entry(sLong Index) const
Returns a pointer to the memory address of the requested variable. You have to type cast and derefere...
Definition api_core.h:331
void Add_Value(float Value, bool bBigEndian=false)
Definition api_core.h:253
float asFloat(int Offset, bool bBigEndian=false) const
Definition api_core.h:270
CSG_Buffer(void)
void Add_Value(char Value, bool bBigEndian=false)
Definition api_core.h:250
bool Inc_Size(size_t Size)
Definition api_core.h:240
void Set_Value(int Offset, short Value, bool bBigEndian=false)
Definition api_core.h:263
int asInt(int Offset, bool bBigEndian=false) const
Definition api_core.h:269
void Set_Value(int Offset, int Value, bool bBigEndian=false)
Definition api_core.h:264
void Set_Value(int Offset, char Value, bool bBigEndian=false)
Definition api_core.h:262
size_t Get_Size(void) const
Definition api_core.h:241
bool Create(void)
bool Set_Size(size_t Size, bool bShrink=true)
void Add_Value(int Value, bool bBigEndian=false)
Definition api_core.h:252
void Add_Value(double Value, bool bBigEndian=false)
Definition api_core.h:254
short asShort(int Offset, bool bBigEndian=false) const
Definition api_core.h:268
void Set_Value(int Offset, double Value, bool bBigEndian=false)
Definition api_core.h:266
void Add_Value(short Value, bool bBigEndian=false)
Definition api_core.h:251
void Set_Value(int Offset, float Value, bool bBigEndian=false)
Definition api_core.h:265
void Destroy(void)
char * Get_Data(int Offset=0) const
Definition api_core.h:244
double asDouble(int Offset, bool bBigEndian=false) const
Definition api_core.h:271
bool Destroy(void)
CSG_Bytes * Get_Bytes(int i)
Definition api_core.h:910
int Get_Count(void) const
Definition api_core.h:909
BYTE Read_Byte(void)
Definition api_core.h:876
DWORD asDWord(int i, bool bSwapBytes=false) const
Definition api_core.h:872
CSG_Bytes(void)
bool Destroy(void)
int Get_Count(void) const
Definition api_core.h:833
DWORD Read_DWord(bool bSwapBytes=false)
Definition api_core.h:881
char asChar(int i) const
Definition api_core.h:868
bool Add(WORD Value, bool bSwapBytes=false)
Definition api_core.h:856
bool Add(DWORD Value, bool bSwapBytes=false)
Definition api_core.h:860
char Read_Char(void)
Definition api_core.h:877
double Read_Double(bool bSwapBytes=false)
Definition api_core.h:883
bool Add(double Value, bool bSwapBytes=false)
Definition api_core.h:864
bool Add(short Value, bool bSwapBytes=false)
Definition api_core.h:854
bool Add(float Value, bool bSwapBytes=false)
Definition api_core.h:862
WORD Read_Word(bool bSwapBytes=false)
Definition api_core.h:879
short asShort(int i, bool bSwapBytes=false) const
Definition api_core.h:869
double asDouble(int i, bool bSwapBytes=false) const
Definition api_core.h:874
bool Add(char Value)
Definition api_core.h:852
WORD asWord(int i, bool bSwapBytes=false) const
Definition api_core.h:870
int Read_Int(bool bSwapBytes=false)
Definition api_core.h:880
bool Add(BYTE Value)
Definition api_core.h:850
bool Assign(const CSG_Bytes &Bytes)
BYTE * Get_Bytes(void) const
Definition api_core.h:834
bool is_EOF(void)
Definition api_core.h:831
BYTE asByte(int i) const
Definition api_core.h:867
CSG_Bytes Get_Bytes(int i) const
Definition api_core.h:836
short Read_Short(bool bSwapBytes=false)
Definition api_core.h:878
float Read_Float(bool bSwapBytes=false)
Definition api_core.h:882
bool Add(int Value, bool bSwapBytes=false)
Definition api_core.h:858
bool Clear(void)
BYTE Get_Byte(int i) const
Definition api_core.h:839
float asFloat(int i, bool bSwapBytes=false) const
Definition api_core.h:873
int asInt(int i, bool bSwapBytes=false) const
Definition api_core.h:871
bool Add(const CSG_Bytes &Bytes)
bool Create(void)
void Rewind(void)
Definition api_core.h:830
bool Set_Palette(const CSG_String &Name, bool bRevert=false, int nColors=0)
Definition api_core.h:1468
long Get_Brightness(int Index) const
Definition api_core.h:1447
long Get_Blue(int Index) const
Definition api_core.h:1446
long Get_Color(int Index) const
Definition api_core.h:1443
bool Set_Count(int nColors)
long Get_Red(int Index) const
Definition api_core.h:1444
CSG_Colors(void)
long Get_Green(int Index) const
Definition api_core.h:1445
bool Set_Palette(int Index, bool bRevert=false, int nColors=0)
Definition api_core.h:1467
bool Create(void)
void Destroy(void)
int Get_Count(void) const
Definition api_core.h:1431
bool Set_Predefined(int Index, bool bRevert=false, int nColors=0)
long Get_Interpolated(double Index) const
Definition api_core.h:1449
virtual bool Open(const SG_Char *FileName, int Mode=SG_FILE_R, bool bBinary=true, int Encoding=SG_FILE_ENCODING_ANSI)
Definition api_file.cpp:113
CSG_String m_FileName
Definition api_core.h:1193
int m_Mode
Definition api_core.h:1191
virtual CSG_String Get_File_Name(size_t Index)
Definition api_core.h:1141
virtual const CSG_String & Get_File_Name(void) const
Definition api_core.h:1140
virtual bool Close(void)
Definition api_file.cpp:164
bool is_Open(void) const
Definition api_core.h:1149
CSG_File(void)
Definition api_file.cpp:88
class wxStreamBase * Get_Stream(void) const
Definition api_core.h:1144
void * m_pStream
Definition api_core.h:1195
bool is_Writing(void) const
Definition api_core.h:1151
bool is_Reading(void) const
Definition api_core.h:1150
int Get_Encoding(void) const
Definition api_core.h:1147
virtual TSG_File_Type Get_File_Type(void) const
Definition api_core.h:1142
void * m_pConvert
Definition api_core.h:1195
void On_Construction(void)
Definition api_file.cpp:184
int m_Encoding
Definition api_core.h:1191
size_t Get_Size(void) const
Definition api_core.h:945
bool Clear(bool bFreeMemory=false)
Definition api_core.h:947
void * Get_Record(size_t i) const
Definition api_core.h:955
size_t Get_RecordSize(void) const
Definition api_core.h:944
bool Destroy(void)
Definition api_core.h:942
void * Get_Record_Pop(void)
Definition api_core.h:965
void * Get_Array(void) const
Definition api_core.h:979
void * Get_Record_Push(void)
Definition api_core.h:960
virtual ~CSG_Stack(void)
Definition api_core.h:940
CSG_Stack(size_t RecordSize)
Definition api_core.h:935
size_t Get_Position(void) const
SG_Char Get_Last_Delimiter(void) const
size_t Get_Tokens_Count(void) const
CSG_String Get_Next_Token(void)
bool Has_More_Tokens(void) const
void Set_String(const CSG_String &String, const CSG_String &Delimiters=SG_DEFAULT_DELIMITERS, TSG_String_Tokenizer_Mode Mode=SG_TOKEN_DEFAULT)
CSG_String Get_String(void) const
size_t Length(void) const
const char * b_str(void) const
void Set_Char(size_t i, char Character)
SG_Char Get_Char(size_t i) const
const SG_Char * c_str(void) const
class wxString * m_pString
Definition api_core.h:689
bool is_Empty(void) const
CSG_String(void)
bool Create(const class wxString *pString)
const wchar_t * w_str(void) const
bool Add(const CSG_Strings &Strings)
CSG_Array_Pointer m_Strings
Definition api_core.h:742
CSG_String & Get_String(int Index) const
Definition api_core.h:724
CSG_String & Get_String(size_t Index) const
Definition api_core.h:725
bool Set_Count(int Count)
Definition api_core.h:712
bool Create(const CSG_Strings &Strings)
bool Assign(const CSG_Strings &Strings)
Definition api_core.h:737
size_t Get_Size(void) const
Definition api_core.h:715
int Get_Count(void) const
Definition api_core.h:714
bool Destroy(void)
bool Del(int Index)
Definition api_core.h:721
void Clear(void)
Definition api_core.h:736
bool Ins(const CSG_String &String, int Index)
Definition api_core.h:719
const SG_Char * Get_Translation(int i) const
Definition api_core.h:1529
bool Create(const CSG_String &File_Name, bool bSetExtension=true, int iText=0, int iTranslation=1, bool bCmpNoCase=false)
bool is_CaseSensitive(void) const
Definition api_core.h:1525
const SG_Char * Get_Text(int i) const
Definition api_core.h:1528
int Get_Count(void) const
Definition api_core.h:1527
CSG_UI_Parameter(const CSG_String &Value)
Definition api_core.h:1687
CSG_UI_Parameter(int Value)
Definition api_core.h:1685
CSG_UI_Parameter(void *Value)
Definition api_core.h:1688
CSG_UI_Parameter(void)
Definition api_core.h:1683
CSG_UI_Parameter(double Value)
Definition api_core.h:1686
CSG_UI_Parameter(bool Value)
Definition api_core.h:1684
CSG_String String
Definition api_core.h:1697
static CSG_String Uncompress(const CSG_String &File, const CSG_String &Target="")
Definition api_file.cpp:929
static bool is_GZip_Supported(void)
Definition api_file.cpp:893
static CSG_String Compress(const CSG_String &File, const CSG_String &Target="")
Definition api_file.cpp:899
CSG_ZLib(void)
Definition api_file.cpp:887
#define B
#define A