summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/base/three_surface.asy
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-06-18 23:24:00 +0000
committerKarl Berry <karl@freefriends.org>2010-06-18 23:24:00 +0000
commit47fea6d4aa5c9cfb2e71c51f769dac3023630035 (patch)
tree6a4b15f0b85d8bb5602146e20241b49e938f409b /Build/source/utils/asymptote/base/three_surface.asy
parent0dfdf5c49b160d464b74a9cae8882ea81cc47878 (diff)
asy 1.99
git-svn-id: svn://tug.org/texlive/trunk@19047 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/base/three_surface.asy')
-rw-r--r--Build/source/utils/asymptote/base/three_surface.asy7
1 files changed, 4 insertions, 3 deletions
diff --git a/Build/source/utils/asymptote/base/three_surface.asy b/Build/source/utils/asymptote/base/three_surface.asy
index c4f05c7882f..6d0c54d2479 100644
--- a/Build/source/utils/asymptote/base/three_surface.asy
+++ b/Build/source/utils/asymptote/base/three_surface.asy
@@ -10,7 +10,7 @@ private real Fuzz=10.0*realEpsilon;
private real nineth=1/9;
struct patch {
- triple[][] P=new triple[4][4];
+ triple[][] P;
triple[] normals; // Optionally specify 4 normal vectors at the corners.
pen[] colors; // Optionally specify 4 corner colors.
bool straight; // Patch is based on a piecewise straight external path.
@@ -186,9 +186,9 @@ struct patch {
void operator init(triple[][] P, triple[] normals=new triple[],
pen[] colors=new pen[], bool straight=false,
- bool3 planar=default) {
+ bool3 planar=default, bool copy=true) {
init();
- this.P=copy(P);
+ this.P=copy ? copy(P) : P;
if(normals.length != 0)
this.normals=copy(normals);
if(colors.length != 0)
@@ -306,6 +306,7 @@ struct patch {
patch operator * (transform3 t, patch s)
{
patch S;
+ S.P=new triple[4][4];
for(int i=0; i < 4; ++i) {
triple[] si=s.P[i];
triple[] Si=S.P[i];