isff.txt

来自「支持各种栅格图像和矢量图像读取的库」· 文本 代码 · 共 2,219 行 · 第 1/5 页

TXT
2,219
字号
                       of the matrices, as well as the quaternions, lie within the range of -1 to 1.                        These values are stored as signed double-precision integers with the                        low-order bit equal to 1/(231-1). Therefore, to convert these coefficients to                        floating point, the integers must be divided by 231-1.        Offset                                                      Offset                                                                                                                                                                                                                (1)                      Linkage                                                                                 Linkage       Cone Elements (Type 23)-----------------------A circular truncated cone is described by two circles lying in parallel  planes in a 3D design file. If the radius of both circles is identical,  the cone represents a cylinder. The cone can be skewed by adjusting the  positions of the circles. The C structure is    typedef struct      {      Elm_hdr        ehdr                    ;         /* element header */      Disp_hdr       dhdr                    ;         /* display header */      short       unknown                    ;         /* unknown data */      long        quat[4]                    ;         /* orientation quaternion */      Dpoint3d       center_1                ;        /* center of first circle */      double         radius_1                ;        /* radius of first circle */      Dpoint3d       center_2                ;        /* center of second circle */      double         radius_2                ;        /* radius of second circle */      } Cone_3d                              ;    Cone type    Parameters Cone type---------The cone type word describes characteristics of the cone. Valid cone types  include *  0 = general (nonspecific) cone *  1 = right cylinder *  2 = cylinder *  3 = right cone *  4 = cone *  5 = right truncated cone *  6 = truncated cone     Bits 3-14 of the cone type word are reserved and should be set to zero.  Bit 15 indicates whether the cone is a surface or a solid (0=solid,  1=surface).  Parameters----------                    Description   Orientation       The orientation for both circles is defined by a single set of quaternions.   Radii             The radii for the circles are stored as double-precision floating point                    values. Either of these values may be zero to cause a pointed cone.     Word                             Offset   0-17   Header                     18                             cone.rsrv   19     Quaternion              cone.quat            20                                21     Q1                         22                                23     Q2                         24                                25     Q3                         26                                27     X1                      cone.center 1   28                                29                                30                                31     Y1                         32                                33                                34                                35     Z1                         36                                37                                38                                39     R1                      cone.radius 1   40                                41                                42                                43     X2                      cone.center 2   44                                45                                46                                47     Y2                         48                                49                                50                                51     Z2                         52                                53                                54                                55     R2                      cone.radius 2   56                                57                                58                                59    A                                Linkage                                     B-spline Elements (Type 21, 24, 25, 26, 27, 28)-----------------------------------------------Rational, non-rational, uniform, and non-uniform B-spline curves and  surfaces are represented in the design file by several different element  types.    B-spline curves    B-spline Surfaces    B-spline curve header (type 27)    B-spline surface header (type 24)    B-spline pole element (type 21)    B-spline surface boundary element (type 25)    B-spline Knot element (type 26)    B-spline Weight Factor element (type 28) B-spline curves---------------Four element types are used to represent B-spline curves. A B-spline Curve  Header Element (type 27) stores curve parameters. A B-spline Pole Element  (type 21) stores poles. If the B-spline curve is rational, the pole  element is immediately followed by a Bspline Weight Factor Element (type  28) that stores the weights of the poles. If the B-spline curve is  non-uniform, the knots are stored in a B-spline Knot Element (type 26)  immediately following the header.  The order of these elements is fixed  and is  1. B-spline Curve Header Element (type 27) 2. Optional: B-spline Knot Element (type 26) if the curve is non-uniform 3. B-spline Pole Element (type 21) 4. Optional: B-spline Weight Factor Element (type 28) if the curve is     rational     B-spline Surfaces-----------------Five element types are used to represent B-spline surfaces. A B-spline  Surface Header Element (type 24) stores surface parameters. Subsequent  B-spline Pole Elements (type 21) store separate rows of poles. If the  surface is rational, each pole element is immediately followed by a  B-spline Weight Factor Element (type 28). If the surface is non-uniform, a  B-spline Knot Element (type 26) immediately follows the header. Finally,  if the surface is trimmed, one or more B-spline Surface Boundary Elements  (type 25) precede the first pole element. The order of these elements is  fixed and must follow the order specified below 1. Uniform, non-rational surfaces (type 24, 21, 21, 21...) 2. Uniform, rational surfaces (type 24, 21, 28, 21, 28, 21, 28...) 3. Non-uniform, non-rational (type 24, 26, 21, 21, 21...) 4. Non-uniform, rational (type 24, 26, 21, 28, 21, 28, 21, 28...) 5. Boundary immediately precedes poles (all type 25s must precede type 21,     but follow type 26, if present. The order of the elements is fixed and     can be either:    type 24, 25, 25, 25, ... , 21, 21, 21... or    type 24, 25, 25, 25, ... , 21, 28, 21, 28... or    type 24, 26, 25, 25, 25, ... , 21, 21, 21... or    type 24, 26, 25, 25, 25, ... , 21, 28, 21, 28...     B-spline curve header (type 27)-------------------------------A B-spline curve header begins the definition of a B-spline curve and  defines parameters describing the curve.    typedef struct      {      Elm_hdr           ehdr                 ;            /* element header */      Disp_hdr          dhdr                 ;            /* display header */      long           desc_words              ;            /* # of words in descr. */      struct         {         unsigned       order:4              ;            /* B-spline order - 2 */         unsigned       curve_display:1      ;          /* curve display flag */         unsigned       poly_display:1       ;           /* polygon display flag */         unsigned       rational:1           ;            /* rationalization flag */         unsigned       closed:1             ;           /* closed curve flag */         unsigned       curve_type:8         ;          /* curve type */         } flags                             ;      short          num_poles               ;          /* number of poles */      short          num_knots               ;          /* number of knots */      } Bspline_curve                        ;    Range    Curve parameters    Number of poles    Number of knots Range-----The range of a B-spline curve is the range of the control polygon. All  points on the stroked curve lie within this range.  Curve parameters----------------A word of data is included that contains various parameters. A number two  less than the B-spline order is stored in bits 0-3. Bit 7 is set for  closed curves and cleared for open curves. Bit 6 is set for rational  B-splines and cleared for non-rational splines. If bit 6 is set, a weight  factor element must be included. Bit 5 is set to indicate if display of  the polygon is enabled; bit 4 is set if curve display is enabled.  Number of poles---------------The maximum number of poles is 101.  Number of knots---------------For uniform B-spline curves, the number of knots is 0. The number of knots  stored in the type 26 element for non-uniform B-spline curves is  calculated as follows  #KNOTS = #POLES - ORDER                 (open curves)   #KNOTS = #POLES -1                      (closed curves)     Word                             Offset   0-17   Header                     18     Words in Description    Bspline_curve.dhdr.totlngth   19                                20                             Bspline_curve.flags   21     Number of Poles         Bspline_curve.num_poles   22     Number of Knots         Bspline_curve.num_knots   23    A                                Linkage                                       B-spline surface header (type 24)---------------------------------A B-spline surface header begins the definition of a B-spline surface and  defines parameters describing the surface.    typedef struct bspline_surface      {      Elm_hdr           ehdr                 ;            /* element header */      Disp_hdr          dhdr                 ;            /* display header */      long           desc_words              ;            /* # words in description */      struct         {         unsigned       order:4              ;            /* B-spline U order - 2 */         unsigned       curve_display:1      ;          /* surface display flag */         unsigned       poly_display:1       ;           /* polygon display flag */         unsigned       rational:1           ;            /* rationalization flag */         unsigned       closed:1             ;           /* closed U surface flag*/         unsigned       curve_type:8         ;          /* surface type */         } flags                             ;      short          num_poles_u             ;           /* number of poles */      short          num_knots_u             ;           /* number of knots */      short          rule_lines_u            ;          /* number of rule lines */      struct         {         unsigned short v_order:4            ;                /* B-spline order - 2                                 (v Direction) */                                                                                                                                                                                            

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?