isff.txt
来自「支持各种栅格图像和矢量图像读取的库」· 文本 代码 · 共 2,219 行 · 第 1/5 页
TXT
2,219 行
short numverts ; /* number of vertices */ Point3d vertice[1] ; /* points */ } Line_String_3d ; Offset Offset line_string3d.numverts line_string3d.vertice[0] line_string3d.vertice[n-1] Linkage Linkage The curve (type 11) element is a 2D or 3D parametric spline curve completely defined by a set of n points. The first two and last two points define endpoint derivatives and do not display. The interpolated curve passes through all other points. A curve with n points defines n-1 line segments; interpolation occurs over the middle n-5 segments. Each segment has its own parametric cubic interpolation polynomial for the x and y (and z in 3D) dimensions. The parameter for each of these polynomials is the length along the line segment. Thus, for a segment k, the interpolated points P are expressed as a function of the distance d along the segment as follows: Pk(d) = {Fk,x(d), Fk,y(d), Fk,z(d)} with 0 <= d <= Dk Fk,x, Fk,y, and Fk,z are cubic polynomials and Dk is the length of segment k. In addition, the polynomial coefficients are functions of the segment length and the endpoint derivatives of Fk,x, Fk,y, and Fk,z. The subscript k is merely a reminder that these functions depend on the segment. The cubic polynomials are defined as follows: Fk,x = axd3 + bxd2 + cxd + Xk cx = tk bx = [3(Xk+1-Xk)/Dk - 2tk,x - tk+1,x] / Dk ax = [tk,x + tk+1,x - 2(xk+1-xk)/Dk] / Dk2 The m variable is analogous to the slope of the segment. If (|mk+1,x-mk,x| + |mk-1,x-mk-2,x|) <> 0, then: tk,x = (mk-1,x|mk+1,x-mk,x| + mk,x|mk-1,x-mk-2,x|)/(|mk+1,x-mk,x| + |mk-1,x-mk-2,x|) else: tk,x = (mk+1,x+mk,x) / 2 mk,x = (Xk+1 - Xk) / Dk Fk,y(d) and Fk,z(d) are defined analogously. Text Node Header (Type 7)-------------------------Text node header elements are complex headers for groups of text elements, specifying the number of text strings, the line spacing between text strings, the origin of the text node, the node number, and the maximum number of characters in each text string. 2D: typedef struct { Elm_hdr ehdr ; /* element header */ Disp_hdr dhdr ; /* display header */ unsigned short totwords ; /* total words following */ short numstrngs ; /* # of text strings */ short nodenumber ; /* text node number */ byte maxlngth ; /* maximum length allowed */ byte maxused ; /* maximum length used */ byte font ; /* text font used */ byte just ; /* justification type */ long linespc ; /* line spacing */ long lngthmult ; /* length multiplier */ long hghtmult ; /* height multiplier */ long rotation ; /* rotation angle */ Point2d origin ; /* origin */ } Text_node_2d ; 3D: typedef struct { Elm_hdr ehdr ; /* element header */ Disp_hdr dhdr ; /* display header */ unsigned short totwords ; /* total words following */ short numstrngs ; /* # of text strings */ short nodenumber ; /* text node number */ byte maxlngth ; /* maximum length allowed */ byte maxused ; /* maximum length used */ byte font ; /* text font used */ byte just ; /* justification type */ long linespc ; /* line spacing */ long lngthmult ; /* length multiplier */ long hghtmult ; /* height multiplier */ long quat[4] ; /* quaternion rotations */ Point3d origin ; /* origin */ } Text_node_3d ; Text node number Line length Justification and origin Line spacing Text node number----------------Each text node is assigned a unique number (nodenumber). This number is displayed at the node origin when node display is on. Applications can use it to uniquely identify the node. Line length-----------The user specifies the maximum number of characters (maxlngth) in a line of text when the node is created. The maximum used (maxused) line length indicates the number of characters currently in the longest text line. Justification and origin------------------------The justification defines the position of text strings relative to the origin. The origin retained in the design file is the true, user-defined origin. The following justifications are possible Left/Top (0) Center/Top (6) Right margin/Top (9) Left/Center (1) Center/Center (7) Right margin/Center (10) Left/Bottom (2) Center/Bottom (8) Right margin/Bottom (11) Left margin/Top (3) Right/Top (12) Left margin/Center (4) Right/Center (13) Left margin/Bottom (5) Right/Bottom (14) Line spacing------------This long integer indicates the number of UORs from the bottom of a text string to the top of the next string. Offset Offset text_node3d.totwords Description Description text_node3d.numstrings Strings Strings text_node3d.nodenumber Number Number text_node3d.maxlngth text_node3d.font text_node3d.linespc Spacing Spacing text_node3d.lngthmult Multiplier Multiplier text_node3d.hghtmult Multiplier Multiplier text_node3d.quat Angle Quaternion Linkage text_node3d.origin Linkage Complex Chain Headers (Type 12) and Complex Shape Headers (Type 14)-------------------------------------------------------------------Complex chains (open) and complex shapes (closed) are complex elements formed from a series of elements (lines, line strings, arcs, curves, and open B-Spline curves). A complex chain or complex shape consists of a header followed by its component elements. These structure of the header is identical for both complex chains and complex shapes in 2D and 3D files. The element is a complex shape if the endpoints of the first and last component elements are the same. typedef struct { Elm_hdr ehdr ; /* element header */ Disp_hdr dhdr ; /* display header */ unsigned short totlength ; /* total length of surface */ unsigned short numelems ; /* # of elements in surface */ short attributes[4] ; /* to reach min. element size */ } Complex_string ; Four words of attribute data are included in complex chains and shapes to ensure that they are at least 24 words long, which is the minimum element length required for some Intergraph file processors. Word Offset 0-17 Header 18 Words in Description complex_string.totlngth 19 Number of Elements complex_string.numelems 20 Four Byte complex_string.attributes 21 22 23 24 A Linkage Ellipse Elements (Type 15)--------------------------Ellipse elements are specified with a center, rotation angle, and major and minor axes. A circle is an ellipse with the major and minor axes equal. The ellipse element is defined in C as follows 2D: typedef struct { Elm_hdr ehdr ; /* element header */ Disp_hdr dhdr ; /* display header */ double primary ; /* primary axis */ double secondary ; /* secondary axis */ long rotation ; /* rotation angle */ Dpoint2d origin ; /* origin */ } Ellipse_2d ; 3D: typedef struct { Elm_hdr ehdr ; /* element header */ Disp_hdr dhdr ; /* display header */ double primary ; /* primary axis */ double secondary ; /* secondary axis */ long quat[4] ; /* quaternion rotations */ Dpoint3d origin ; /* origin */ } Ellipse_3d ; Primary and secondary axes Orientation Origin Primary and secondary axes--------------------------Ellipse axes are defined by two double-precision floating point values that specify the lengths in UORs of the semi-major and semi-minor axes. The primary axis is not necessarily the longest (semi-major) axis, but rather is the axis whose orientation is specified by the rotation angle or quaternion. Orientation-----------The rotation angle or quaternion defines the orientation of the primary axis with respect to the design file coordinate system. Origin------The origin (center) of the ellipse is expressed as double-precision floating point coordinates. Offset Offset ellipse_3d.primary ellipse_3d.secondary ellipse_3d.quat ellipse_3d.origin Linkage
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?