/* * File: dxf.h * Project: DXF to RIB * (c) SPDsoft Tuesday, June 21, 1994, GTIC */ /******************************************************************************/ /* BLOCK stuff. ASCII Drawing Interchange (DXF) Files, p. 535, 536*/ #define BlockFlagBits PolylineInts[0] #define BL_Anonymous (BlockFlagBits & 1) #define BL_HasAttrib (BlockFlagBits & 2) #define BL_IsXref (BlockFlagBits & 4) #define BL_ExtDepend (BlockFlagBits & 16) #define BL_ResXref (BlockFlagBits & 32) #define BL_IsReferenced (BlockFlagBits & 64) /******************************************************************************/ /* POLYLINE stuff. ASCII Drawing Interchange (DXF) Files, p. 537, 538*/ #define PFACEVMAX 4 int PolylineInts[6]; #define PolylineFlagBits PolylineInts[0] #define PL_Closed (PolylineFlagBits & 1) /* closed in M direction */ #define PL_CurveFit (PolylineFlagBits & 2) #define PL_SplineFit (PolylineFlagBits & 4) #define PL_3DPolyline (PolylineFlagBits & 8) #define PL_3DPolygMesh (PolylineFlagBits & 16) #define PL_ClosedPMesh (PolylineFlagBits & 32) /* closed in N direction */ #define PL_PolyfaceMesh (PolylineFlagBits & 64) #define PL_Pattern (PolylineFlagBits & 128) #define PolylineMCount PolylineInts[1] #define PolylineNCount PolylineInts[2] #define PolylineMDens PolylineInts[3] #define PolylineNDens PolylineInts[4] #define PolylineSurf PolylineInts[5] #define PM_NoSmooth 0 #define PM_Quadratic 5 #define PM_BSpline 6 #define PM_Bezier 8 /* Polyface stuff */ #define PolyfaceNVerts PolylineInts[1] #define PolyfaceNFaces PolylineInts[2] /* AutoCAD never relies upon their accuracy */ /******************************************************************************/ /* VERTEX stuff. ASCII Drawing Interchange (DXF) Files, p. 538, 539*/ float *VertexCoords; #define VertexFlagBits ints[0] #define V_IsInCurve (VertexFlagBits & 1) #define V_HasTangent (VertexFlagBits & 2) #define V_IsInSpline (VertexFlagBits & 8) #define V_IsSplineFrame (VertexFlagBits & 16) #define V_In3DPolyline (VertexFlagBits & 32) #define V_In3DPolygMesh (VertexFlagBits & 64) #define V_IsInPolyface (VertexFlagBits & 128) #define V_defsPoint (V_IsInPolyface && V_In3DPolygMesh) /* index by order */ #define V_defsFace (V_IsInPolyface && !V_In3DPolygMesh) #define VertexFace(i) ((abs(ints[1+(i)])-1)*3) /* i=1..4 */ #define VertexIdx(i,j) ((i)*PolylineNCount+(j)) #define NormIdx(i,j) ((i)*(en)+(j))