summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/base/three_light.asy
diff options
context:
space:
mode:
authorDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
committerDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
commitc6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch)
tree1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/utils/asymptote/base/three_light.asy
parent07ee7222e389b0777456b427a55c22d0e6ffd267 (diff)
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/base/three_light.asy')
-rw-r--r--Build/source/utils/asymptote/base/three_light.asy133
1 files changed, 0 insertions, 133 deletions
diff --git a/Build/source/utils/asymptote/base/three_light.asy b/Build/source/utils/asymptote/base/three_light.asy
deleted file mode 100644
index 46b0fef7d0e..00000000000
--- a/Build/source/utils/asymptote/base/three_light.asy
+++ /dev/null
@@ -1,133 +0,0 @@
-struct material {
- pen[] p; // diffusepen,emissivepen,specularpen
- real opacity;
- real shininess;
- real metallic;
- real fresnel0; // Reflectance rate at a perfect normal angle.
-
- void operator init(pen diffusepen=black,
- pen emissivepen=black, pen specularpen=mediumgray,
- real opacity=opacity(diffusepen),
- real shininess=defaultshininess,
- real metallic=defaultmetallic,
- real fresnel0=defaultfresnel0) {
-
- p=new pen[] {diffusepen,emissivepen,specularpen};
- this.opacity=opacity;
- this.shininess=shininess;
- this.metallic=metallic;
- this.fresnel0=fresnel0;
- }
- void operator init(material m) {
- p=copy(m.p);
- opacity=m.opacity;
- shininess=m.shininess;
- metallic=m.metallic;
- fresnel0=m.fresnel0;
- }
- pen diffuse() {return p[0];}
- pen emissive() {return p[1];}
- pen specular() {return p[2];}
-
- void diffuse(pen q) {p[0]=q;}
- void emissive(pen q) {p[1]=q;}
- void specular(pen q) {p[2]=q;}
-}
-
-material operator init()
-{
- return material();
-}
-
-void write(file file, string s="", material x, suffix suffix=none)
-{
- write(file,s);
- write(file,"{");
- write(file,"diffuse=",x.diffuse());
- write(file,", emissive=",x.emissive());
- write(file,", specular=",x.specular());
- write(file,", opacity=",x.opacity);
- write(file,", shininess=",x.shininess);
- write(file,", metallic=",x.metallic);
- write(file,", F0=",x.fresnel0);
- write(file,"}",suffix);
-}
-
-void write(string s="", material x, suffix suffix=endl)
-{
- write(stdout,s,x,suffix);
-}
-
-bool operator == (material m, material n)
-{
- return all(m.p == n.p) && m.opacity == n.opacity &&
- m.shininess == n.shininess && m.metallic == n.metallic &&
- m.fresnel0 == n.fresnel0;
-}
-
-material operator cast(pen p)
-{
- return material(p);
-}
-
-material[] operator cast(pen[] p)
-{
- return sequence(new material(int i) {return p[i];},p.length);
-}
-
-pen operator ecast(material m)
-{
- return m.p.length > 0 ? m.diffuse() : nullpen;
-}
-
-material emissive(material m, bool colors=false)
-{
- return material(black+opacity(m.opacity),colors ? m.emissive() : m.diffuse()+m.emissive(),black,m.opacity,1);
-}
-
-pen color(triple normal, material m, light light, transform3 T=light.T) {
- triple[] position=light.position;
- if(invisible((pen) m)) return invisible;
- if(position.length == 0) return m.diffuse();
- normal=unit(transpose(inverse(shiftless(T)))*normal);
- if(settings.twosided) normal *= sgn(normal.z);
- real s=m.shininess*128;
- real[] Diffuse=rgba(m.diffuse());
- real[] Specular=rgba(m.specular());
- real[] p=rgba(m.emissive());
- real[] diffuse={0,0,0,0};
- real[] specular={0,0,0,0};
- for(int i=0; i < position.length; ++i) {
- triple L=position[i];
- real dotproduct=abs(dot(normal,L));
- diffuse += dotproduct*light.diffuse[i];
- dotproduct=abs(dot(normal,unit(L+Z)));
- // Phong-Blinn model of specular reflection
- specular += dotproduct^s*light.specular[i];
- }
- p += diffuse*Diffuse;
- // Apply specularfactor to partially compensate non-pixel-based rendering.
- p += specular*Specular*light.specularfactor;
- return rgb(p[0],p[1],p[2])+opacity(opacity(m.diffuse()));
-}
-
-light operator * (transform3 t, light light)
-{
- light light=light(light);
- return light;
-}
-
-light operator cast(triple v) {return light(v);}
-
-light Viewport=light(specularfactor=3,(0.25,-0.25,1));
-
-light White=light(new pen[] {rgb(0.38,0.38,0.45),rgb(0.6,0.6,0.67),
- rgb(0.5,0.5,0.57)},specularfactor=3,
- new triple[] {(-2,-1.5,-0.5),(2,1.1,-2.5),(-0.5,0,2)});
-
-light Headlamp=light(white,specular=gray(0.7),
- specularfactor=3,dir(42,48));
-
-currentlight=Headlamp;
-
-light nolight;