home *** CD-ROM | disk | FTP | other *** search
/ Windows 95 v2.4 Fix / W95-v2.4fix.iso / ACADWIN / ADS / CPP / GENERAL / ADSDXF.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-02-08  |  7.4 KB  |  226 lines

  1. /* 
  2.     ADSDXF.H
  3.  
  4.     This file:
  5.  
  6.     Declares DXF group conversion functions and enums in converting
  7.     DXF group code.
  8.  
  9.     (C) Copyright 1988-1994 by Autodesk, Inc.
  10.  
  11.     This program is copyrighted by Autodesk, Inc. and is  licensed
  12.     to you under the following conditions.  You may not distribute
  13.     or  publish the source code of this program in any form.   You
  14.     may  incorporate this code in object form in derivative  works
  15.     provided  such  derivative  works  are  (i.) are  designed and
  16.     intended  to  work  solely  with  Autodesk, Inc. products, and
  17.     (ii.)  contain  Autodesk's  copyright  notice  "(C)  Copyright
  18.     1988-1994 by Autodesk, Inc."
  19.  
  20.     AUTODESK  PROVIDES THIS PROGRAM "AS IS" AND WITH  ALL  FAULTS.
  21.     AUTODESK  SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF  MER-
  22.     CHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK,  INC.
  23.     DOES  NOT  WARRANT THAT THE OPERATION OF THE PROGRAM  WILL  BE
  24.     UNINTERRUPTED OR ERROR FREE.
  25.  
  26. */
  27. #ifndef ADSDXF_H
  28. #define ADSDXF_H
  29.  
  30. #include "adsinc.h"
  31.  
  32. //-----------------------------------------------------------------------------
  33. // This can be broken down even deeper, depends on the application needs.
  34. //
  35. enum DXF_GROUP_CODE_BOUNDS
  36. {
  37.     /*******************************
  38.     *       String groups          *
  39.     *******************************/
  40.     DXF_PRIM_ENT_TEXT_LOWER_1   = 1
  41.     , DXF_PRIM_ENT_TEXT_UPPER_1 = 1
  42.     // General string coverage...
  43.     , DXF_STRING_LOWER_1        = 0
  44.     , DXF_STRING_UPPER_1        = DXF_STRING_LOWER_1 + 9
  45.  
  46.     /*******************************
  47.     *    Floating point group 1    *
  48.     *******************************/
  49.     , DXF_PRIM_X_LOWER          = 10
  50.     , DXF_PRIM_X_UPPER          = 10
  51.     , DXF_OTHER_X_LOWER         = 11
  52.     , DXF_OTHER_X_UPPER         = 17
  53.     , DXF_PRIM_Y_LOWER          = 20
  54.     , DXF_PRIM_Y_UPPER          = 20
  55.     , DXF_OTHER_Y_LOWER         = 21
  56.     , DXF_OTHER_Y_UPPER         = 27
  57.     , DXF_PRIM_Z_LOWER          = 30
  58.     , DXF_PRIM_Z_UPPER          = 30  
  59.     , DXF_OTHER_Z_LOWER         = 31
  60.     , DXF_OTHER_Z_UPPER         = 37
  61.     , DXF_FLOAT_FACT_LOWER_1    = 40
  62.     , DXF_FLOAT_FACT_UPPER_1    = 49
  63.     , DXF_ANGLE_LOWER           = 50
  64.     , DXF_ANGLE_UPPER           = 59
  65.     , DXF_FLOAT_LOWER_1         = 10
  66.     , DXF_FLOAT_UPPER_1         = 59
  67.  
  68.     /*******************************
  69.     *       integer group 1        *
  70.     *******************************/
  71.     , DXF_COLOR_NUMBER_LOWER    = 62
  72.     , DXF_COLOR_NUMBER_UPPER    = 62
  73.     // General intger 
  74.     , DXF_INTEGER_LOWER_1       = 61
  75.     , DXF_INTEGER_UPPER_1       = 70
  76.  
  77.     /*******************************
  78.     *   Long group 1               *
  79.     *******************************/
  80.     , DXF_LONG_LOWER            = 90
  81.     , DXF_LONG_UPPER            = 99
  82.  
  83.     /*******************************
  84.     *   String group 3             *
  85.     *******************************/
  86.     , DXF_STRING_LOWER_2        = 100
  87.     , DXF_STRING_UPPER_2        = 109
  88.  
  89.     /*******************************
  90.     *    Floating point group 2    *
  91.     *******************************/
  92.     , DXF_FLOAT_LOWER_2         = 140
  93.     , DXF_FLOAT_UPPER_2         = 149
  94.     /*******************************
  95.     *       integer group 2        *
  96.     *******************************/
  97.     , DXF_INTEGER_LOWER_2       = 170
  98.     , DXF_INTEGER_UPPER_2       = 179
  99.     /*******************************
  100.     *    Floating point group 3    *
  101.     *******************************/
  102.     , DXF_EXTRUSION_X_LOWER     = 210
  103.     , DXF_EXTRUSION_X_UPPER     = 210
  104.     , DXF_EXTRUSION_Y_LOWER     = 220
  105.     , DXF_EXTRUSION_Y_UPPER     = 220
  106.     , DXF_EXTRUSION_Z_LOWER     = 230
  107.     , DXF_EXTRUSION_Z_UPPER     = 230
  108.     // general floating point 3
  109.     , DXF_FLOAT_LOWER_3         = 210
  110.     , DXF_FLOAT_UPPER_3         = 239
  111.  
  112.     /********************************
  113.     *    integer group 3            *
  114.     ********************************/
  115.     , DXF_INTEGER_LOWER_3       = 270
  116.     , DXF_INTEGER_UPPER_3       = 279
  117.  
  118.     /********************************
  119.     *    string group 3             *
  120.     ********************************/
  121.     , DXF_STRING_LOWER_3         = 300
  122.     , DXF_STRING_UPPER_3         = 369
  123.  
  124.  
  125.     /*******************************
  126.     *        Comment group         *
  127.     *******************************/
  128.     , DXF_COMMENT_LOWER         = 999
  129.     , DXF_COMMENT_UPPER         = 999
  130.  
  131.     /*******************************
  132.     *      Extended stuff...       *
  133.     *******************************/
  134.     , DXF_STRING_LOWER_4        = 1000
  135.     , DXF_STRING_UPPER_4        = 1009
  136.     , DXF_FLOAT_LOWER_4         = 1010
  137.     , DXF_FLOAT_UPPER_4         = 1059
  138.     , DXF_INTEGER_LOWER_4       = 1060
  139.     , DXF_INTEGER_UPPER_4       = 1079
  140.     , DXF_UNKNOWN_LOWER         = 1080
  141.     , DXF_UNKNOWN_UPPER         = 0xFFFFFFFF
  142. };
  143.  
  144. //-----------------------------------------------------------------------------
  145. // How many upper/lower pairs in DXF_GROUP_CODE_BOUNDS
  146. //
  147. enum DXFGROUPCODE
  148. {
  149.     DXF_PRIM_ENT_TEXT = 0
  150.     , DXF_STRING1
  151.     , DXF_PRIM_X
  152.     , DXF_OTHER_X
  153.     , DXF_PRIM_Y
  154.     , DXF_OTHER_Y
  155.     , DXF_PRIM_Z
  156.     , DXF_OTHER_Z
  157.     , DXF_FLOAT_FACT
  158.     , DXF_ANGLE
  159.     , DXF_FLOAT1
  160.     , DXF_COLOR_NUMBER
  161.     , DXF_INTEGER1
  162.     , DXF_LONG
  163.     , DXF_STRING2
  164.     , DXF_FLOAT2
  165.     , DXF_INTEGER2
  166.     , DXF_EXTRUSION_X
  167.     , DXF_EXTRUSION_Y
  168.     , DXF_EXTRUSION_Z
  169.     , DXF_FLOAT3
  170.     , DXF_INTEGER3
  171.     , DXF_STRING3
  172.     , DXF_COMMENT_STRING
  173.     , DXF_STRING4
  174.     , DXF_FLOAT4
  175.     , DXF_INTEGER4
  176.     , DXF_UNKNOWN_GROUP
  177. };
  178.  
  179. //-----------------------------------------------------------------------------
  180. typedef char* ( *DXF2STRFUNC )( char*, struct resbuf* );
  181. typedef struct resbuf* ( *STR2DXFFUNC )( struct resbuf*, char* );
  182.  
  183. //-----------------------------------------------------------------------------
  184. char                *ThreeD2Str( char* dst, struct resbuf* src );
  185. struct resbuf       *Str2ThreeD( struct resbuf* dst, char* src );
  186.  
  187. char                *Double2Str( char* dst, struct resbuf* src );
  188. struct resbuf       *Str2Double( struct resbuf* dst, char* src );
  189.  
  190. char                *Double2Str( char* dst, double src );
  191. double              *Str2Double( double* dst, char* src );
  192.  
  193. char                *Int2Str( char* dst, struct resbuf* src );
  194. struct resbuf       *Str2Int( struct resbuf* dst, char* src );
  195.  
  196. char                *Long2Str( char* dst, struct resbuf* src );
  197. struct resbuf       *Str2Long( struct resbuf* dst, char* src );
  198.  
  199. char                *Str2Str( char* dst, struct resbuf* src );
  200. struct resbuf       *Str2Str( struct resbuf* dst, char* src );
  201.  
  202. char                *AdsName2Str( char* dst, struct resbuf *src );
  203. struct resbuf       *Str2AdsName( struct resbuf* dst, char *src);
  204.  
  205. char                *AdsName2Str( char* dst, ads_name& src );
  206. ads_name&           Str2AdsName( ads_name& dst, char *src);
  207.  
  208.  
  209. //-----------------------------------------------------------------------------
  210. struct DXF_GROUP_INFO
  211. {
  212.     DXFGROUPCODE                dxfgroup;
  213.     DXF_GROUP_CODE_BOUNDS       lower;
  214.     DXF_GROUP_CODE_BOUNDS       upper;
  215.     DXF2STRFUNC                 dxf2strfunc;
  216.     STR2DXFFUNC                 str2dxfunc;
  217.     char                        *string;
  218. };
  219.  
  220. //-----------------------------------------------------------------------------
  221. DXFGROUPCODE    DXFGroupCode( int dxfcode );
  222. char            *DXFGroupCode2Str( struct resbuf* src, char *buffer );
  223.  
  224. #endif
  225.  
  226.