diff options
author | Karl Berry <karl@freefriends.org> | 2013-05-18 22:47:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-05-18 22:47:34 +0000 |
commit | 8da523330e61ea8e7b930c09cecaddec0b3a72a0 (patch) | |
tree | 07f156e733c33e3f416fa3de086bec250c693a25 /Master/texmf-dist/asymptote/three_surface.asy | |
parent | baff4255d94a765ab41d84c89ea23e44151770ee (diff) |
asymptote 2.22
git-svn-id: svn://tug.org/texlive/trunk@30566 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/asymptote/three_surface.asy')
-rw-r--r-- | Master/texmf-dist/asymptote/three_surface.asy | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Master/texmf-dist/asymptote/three_surface.asy b/Master/texmf-dist/asymptote/three_surface.asy index 0ef497f6d56..85d32b08eb6 100644 --- a/Master/texmf-dist/asymptote/three_surface.asy +++ b/Master/texmf-dist/asymptote/three_surface.asy @@ -321,9 +321,12 @@ patch operator * (transform3 t, patch s) Si[j]=t*si[j]; } - transform3 t0=shiftless(t); - for(int i=0; i < s.normals.length; ++i) - S.normals[i]=t0*s.normals[i]; + if(s.normals.length > 0) { + transform3 t0=shiftless(t); + t0=determinant(t0) == 0 ? identity4 : transpose(inverse(t0)); + for(int i=0; i < s.normals.length; ++i) + S.normals[i]=t0*s.normals[i]; + } S.colors=copy(s.colors); S.planar=s.planar; |