diff options
author | Karl Berry <karl@freefriends.org> | 2010-04-19 23:59:33 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-04-19 23:59:33 +0000 |
commit | dddce3148a2bc785603576b18ffcf72d39adbe47 (patch) | |
tree | 14f4c79ef11bcf0820a8d4ff2ab0c5ac009c365c /Build/source/utils/asymptote/prc | |
parent | a01e51b01f5819b6091af48cdca581e9f2a9282e (diff) |
asy 1.93
git-svn-id: svn://tug.org/texlive/trunk@17934 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/prc')
-rw-r--r-- | Build/source/utils/asymptote/prc/PRCTools/bitData.cc | 10 | ||||
-rw-r--r-- | Build/source/utils/asymptote/prc/oPRCFile.cc | 12 | ||||
-rw-r--r-- | Build/source/utils/asymptote/prc/oPRCFile.h | 14 |
3 files changed, 21 insertions, 15 deletions
diff --git a/Build/source/utils/asymptote/prc/PRCTools/bitData.cc b/Build/source/utils/asymptote/prc/PRCTools/bitData.cc index 19274a8b4b7..9fba0eb0b19 100644 --- a/Build/source/utils/asymptote/prc/PRCTools/bitData.cc +++ b/Build/source/utils/asymptote/prc/PRCTools/bitData.cc @@ -188,14 +188,14 @@ double BitByBitData::readDouble() b4 |= readBit(); } -#if defined(WORDS_LITTLE_ENDIAN) - *(reinterpret_cast<unsigned char*>(&value)+6) |= b4; - unsigned char *lastByte = reinterpret_cast<unsigned char*>(&value)+0; - unsigned char *currentByte = reinterpret_cast<unsigned char*>(&value)+5; -#elif defined(WORDS_BIG_ENDIAN) +#ifdef WORDS_BIGENDIAN *(reinterpret_cast<unsigned char*>(&value)+1) |= b4; unsigned char *lastByte = reinterpret_cast<unsigned char*>(&value)+7; unsigned char *currentByte = reinterpret_cast<unsigned char*>(&value)+2; +#else + *(reinterpret_cast<unsigned char*>(&value)+6) |= b4; + unsigned char *lastByte = reinterpret_cast<unsigned char*>(&value)+0; + unsigned char *currentByte = reinterpret_cast<unsigned char*>(&value)+5; #endif for(;MOREBYTE(currentByte,lastByte); NEXTBYTE(currentByte)) diff --git a/Build/source/utils/asymptote/prc/oPRCFile.cc b/Build/source/utils/asymptote/prc/oPRCFile.cc index d472092b9dc..73c7ef32efe 100644 --- a/Build/source/utils/asymptote/prc/oPRCFile.cc +++ b/Build/source/utils/asymptote/prc/oPRCFile.cc @@ -153,8 +153,10 @@ void PRCcurve::writeTopologicalContext(PRCbitStream &out) // control points for(uint32_t i = 0; i < numberOfControlPoints; ++i) { - out << controlPoints[i][0]*scale << controlPoints[i][1]*scale - << controlPoints[i][2]*scale; + double Scale=scale; + if(isRational) Scale *= weights[i]; + out << controlPoints[i][0]*Scale << controlPoints[i][1]*Scale + << controlPoints[i][2]*Scale; if(isRational) out << weights[i]; } @@ -246,8 +248,10 @@ void PRCsurface::writeTopologicalContext(PRCbitStream &out) // control points for(uint32_t i = 0; i < numberOfControlPointsU*numberOfControlPointsV; ++i) { - out << controlPoints[i][0]*scale << controlPoints[i][1]*scale - << controlPoints[i][2]*scale; + double Scale=scale; + if(isRational) Scale *= weights[i]; + out << controlPoints[i][0]*Scale << controlPoints[i][1]*Scale + << controlPoints[i][2]*Scale; if(isRational) out << weights[i]; } diff --git a/Build/source/utils/asymptote/prc/oPRCFile.h b/Build/source/utils/asymptote/prc/oPRCFile.h index ddddd043b4d..2ee01ddcba4 100644 --- a/Build/source/utils/asymptote/prc/oPRCFile.h +++ b/Build/source/utils/asymptote/prc/oPRCFile.h @@ -360,14 +360,16 @@ class oPRCFile { public: oPRCFile(std::ostream &os, uint32_t n=1) : - number_of_file_structures(n), - fileStructures(new PRCFileStructure*[n]),modelFile(this), - fout(NULL),output(os) {} + number_of_file_structures(n), + fileStructures(new PRCFileStructure*[n]),modelFile(this), + fout(NULL),output(os) {} oPRCFile(const std::string &name, uint32_t n=1) : - number_of_file_structures(n), - fileStructures(new PRCFileStructure*[n]),modelFile(this), - fout(new std::ofstream(name.c_str())),output(*fout) {} + number_of_file_structures(n), + fileStructures(new PRCFileStructure*[n]),modelFile(this), + fout(new std::ofstream(name.c_str(), + std::ios::out|std::ios::binary|std::ios::trunc)), + output(*fout) {} ~oPRCFile() { |