// (Steve) #include #include using namespace std; #include "langlib.h" #include "slices.h" ///////////////////////////////////////////////////////////////////// // // output utililities // ///////////////////////////////////////////////////////////////////// VOID StartLayerOutput() { #ifndef NPRINT fprintf(gfpOutputFile, "(%s\n", gcppcLSIFReservedWords[lsifrwtLayer]); #endif } VOID EndConstructOutput() { #ifndef NPRINT fprintf(gfpOutputFile, ")\n"); #endif } VOID StartLoop() { #ifndef NPRINT fprintf(gfpOutputFile, "(%s\n", gcppcLSIFReservedWords[lsifrwtContour]); #endif } VOID StartNested1dOutput() { #ifndef NPRINT fprintf(gfpOutputFile, "(%s\n", gcppcLSIFReservedWords[lsifrwtNested1D]); #endif } VOID StartUnionOutput() { #ifndef NPRINT fprintf(gfpOutputFile, "(%s\n", gcppcLSIFReservedWords[lsifrwtUnion]); #endif } VOID StartIntersectionOutput() { #ifndef NPRINT fprintf(gfpOutputFile, "(%s\n", gcppcLSIFReservedWords[lsifrwtIntersection]); #endif } VOID StartDifferenceOutput() { #ifndef NPRINT fprintf(gfpOutputFile, "(%s\n", gcppcLSIFReservedWords[lsifrwtDifference]); #endif } VOID OutputVertex(INT_32 iPrecisionExp, UINT_32 uiIdNo, Point *pPt) { OutputLSIFVertex(iPrecisionExp, uiIdNo, pPt); } VOID OutputSIFVertex(UINT_32 *puiIdNo, FLOAT *pfX, FLOAT *pfY, FLOAT *pfZ) { fprintf(gfpOutputFile, "(%s %ld ", gcppcSIFReservedWords[sifrwtVertex], *puiIdNo); WriteSIFValue(-8, *pfX); fprintf(gfpOutputFile, " "); WriteSIFValue(-8, *pfY); fprintf(gfpOutputFile, " "); WriteSIFValue(-8, *pfZ); fprintf(gfpOutputFile, ")\n"); } VOID OutputLSIFVertex(INT_32 iPrecisionExp, UINT_32 uiIdNo, Point *pPt) { #ifndef NPRINT fprintf(gfpOutputFile, "(%s %ld ", gcppcLSIFReservedWords[lsifrwtVertex], uiIdNo); WriteSIFValue(iPrecisionExp, (*pPt)(X)); fprintf(gfpOutputFile, " "); WriteSIFValue(iPrecisionExp, (*pPt)(Y)); fprintf(gfpOutputFile, ")\n"); #endif } // inline these? VOID CSlices::OutputHeader(CSIFPart *pCSIFPart) { OutputLSIFHeader(pCSIFPart); } ///////////////////////////////////////////////////////////////////// // // SIF output utililities // ///////////////////////////////////////////////////////////////////// VOID CSlices::OutputSIFHeader() { // output header info fprintf(gfpOutputFile, "(%s 0 5\n", gcppcSIFReservedWords[sifrwtSIF_SFF]); fprintf(gfpOutputFile, "(%s\n", gcppcSIFReservedWords[sifrwtBody]); fprintf(gfpOutputFile, "(%s\n", gcppcSIFReservedWords[sifrwtLump]); fprintf(gfpOutputFile, "(%s\n", gcppcSIFReservedWords[sifrwtShell]); } /* VOID CSlices::OutputTrailer() { // close those earlier parentheses fprintf(gfpOutputFile, "))))\n"); } */ ///////////////////////////////////////////////////////////////////// // // LSIF output utililities // ///////////////////////////////////////////////////////////////////// // Rename these all to include LSIF, and call from the generally named ones. VOID CComponent::PrintLoopVertices() { #ifndef NPRINT UINT_32 i; CComponent *pComponent = this; for (i = pComponent->GetFirstID(); i <= pComponent->GetLastID(); i++) { fprintf(gfpOutputFile, " %ld", i); } #endif } VOID CSlices::OutputThickness(float fThickness) { #ifndef NPRINT fprintf(gfpOutputFile, "(%s ", gcppcLSIFReservedWords[lsifrwtThickness]); WriteSIFValue(-8, fThickness); fprintf(gfpOutputFile, ")\n"); #endif } VOID CSlices::OutputLSIFHeader(CSIFPart *pCSIFPart) { #ifndef NPRINT fprintf(gfpOutputFile, "(%s 1 0\n", gcppcLSIFReservedWords[lsifrwtLSIF]); fprintf(gfpOutputFile, "(%s ", gcppcLSIFReservedWords[lsifrwtUnits]); WriteSIFValue(m_iPrecisionExp, pCSIFPart->GetUnits()); fprintf(gfpOutputFile, ")\n"); /* fprintf(gfpOutputFile, "(%s ", gcppcLSIFReservedWords[lsifrwtCoord_Precision]); WriteSIFValue(m_iPrecisionExp, pCSIFPart->GetCoordPrecision()); fprintf(gfpOutputFile, ")\n"); */ fprintf(gfpOutputFile, "(%s ", gcppcLSIFReservedWords[lsifrwtDesired_Accuracy]); WriteSIFValue(m_iPrecisionExp, pCSIFPart->GetDesiredAccuracy()); fprintf(gfpOutputFile, ")\n"); #endif } VOID CSlices::OutputTrailer() { #ifndef NPRINT fprintf(gfpOutputFile, ")\n"); #endif }