|
Revision 13041, 2.7 kB
(checked in by robert, 14 months ago)
|
|
Ran script to remove trailing spaces and tabs
|
-
Property svn:eol-style set to
native
-
Property svn:keywords set to
Author Date Id Revision
|
| Line | |
|---|
| 1 | |
|---|
| 2 | |
|---|
| 3 | |
|---|
| 4 | |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | |
|---|
| 13 | #ifndef DXF_DATATYPES |
|---|
| 14 | #define DXF_DATATYPES 1 |
|---|
| 15 | |
|---|
| 16 | #include <osg/Group> |
|---|
| 17 | |
|---|
| 18 | typedef std::map<std::string, osg::ref_ptr<osg::Group> > LayerTable; |
|---|
| 19 | |
|---|
| 20 | class dxfDataType { |
|---|
| 21 | public: |
|---|
| 22 | enum TYPE { |
|---|
| 23 | UNKNOWN, |
|---|
| 24 | STRING, |
|---|
| 25 | HEX, |
|---|
| 26 | BOOL, |
|---|
| 27 | SHORT, |
|---|
| 28 | INT, |
|---|
| 29 | LONG, |
|---|
| 30 | DOUBLE |
|---|
| 31 | }; |
|---|
| 32 | inline static bool between(int a, int m, int x) { return (a >= m && a <= x); } |
|---|
| 33 | inline static int typeForCode(int gc) { |
|---|
| 34 | if ( between(gc, 0, 9) || |
|---|
| 35 | gc == 100 || gc == 102 || |
|---|
| 36 | between(gc, 300, 309) || |
|---|
| 37 | between(gc, 410, 419) || |
|---|
| 38 | between(gc, 430, 439) || |
|---|
| 39 | between(gc, 470, 479) || |
|---|
| 40 | gc == 999 || |
|---|
| 41 | between(gc, 1000, 1009) |
|---|
| 42 | ) |
|---|
| 43 | return STRING; |
|---|
| 44 | else if ( gc == 105 || |
|---|
| 45 | between(gc, 310, 319) || |
|---|
| 46 | between(gc, 320, 329) || |
|---|
| 47 | between(gc, 330, 369) || |
|---|
| 48 | between(gc, 390, 399) |
|---|
| 49 | ) |
|---|
| 50 | return HEX; |
|---|
| 51 | else if ( between(gc, 290, 299 ) ) |
|---|
| 52 | return BOOL; |
|---|
| 53 | else if ( between(gc, 70, 78 ) ) |
|---|
| 54 | return INT; |
|---|
| 55 | else if ( between(gc, 60, 79) || |
|---|
| 56 | between(gc, 170, 179) || |
|---|
| 57 | between(gc, 270, 279) || |
|---|
| 58 | between(gc, 280, 289) || |
|---|
| 59 | between(gc, 370, 379) || |
|---|
| 60 | between(gc, 380, 389) || |
|---|
| 61 | between(gc, 400, 409) |
|---|
| 62 | ) |
|---|
| 63 | return SHORT; |
|---|
| 64 | else if ( between(gc, 90, 99) || |
|---|
| 65 | between(gc, 450, 459) || |
|---|
| 66 | between(gc, 1060, 1070) |
|---|
| 67 | ) |
|---|
| 68 | return LONG; |
|---|
| 69 | else if ( between(gc, 420, 429) || |
|---|
| 70 | between(gc, 440, 449) || |
|---|
| 71 | gc == 1071 |
|---|
| 72 | ) |
|---|
| 73 | return INT; |
|---|
| 74 | else if ( between(gc, 10, 39) || |
|---|
| 75 | between(gc, 40, 59) || |
|---|
| 76 | between(gc, 110, 119) || |
|---|
| 77 | between(gc, 120, 129) || |
|---|
| 78 | between(gc, 130, 139) || |
|---|
| 79 | between(gc, 140, 149) || |
|---|
| 80 | between(gc, 210, 239) || |
|---|
| 81 | between(gc, 460, 469) || |
|---|
| 82 | between(gc, 1010, 1019) |
|---|
| 83 | ) |
|---|
| 84 | return DOUBLE; |
|---|
| 85 | else |
|---|
| 86 | return UNKNOWN; |
|---|
| 87 | } |
|---|
| 88 | }; |
|---|
| 89 | |
|---|
| 90 | #endif |
|---|