summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/prc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-04-19 23:59:33 +0000
committerKarl Berry <karl@freefriends.org>2010-04-19 23:59:33 +0000
commitdddce3148a2bc785603576b18ffcf72d39adbe47 (patch)
tree14f4c79ef11bcf0820a8d4ff2ab0c5ac009c365c /Build/source/utils/asymptote/prc
parenta01e51b01f5819b6091af48cdca581e9f2a9282e (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.cc10
-rw-r--r--Build/source/utils/asymptote/prc/oPRCFile.cc12
-rw-r--r--Build/source/utils/asymptote/prc/oPRCFile.h14
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()
{