]> git.saurik.com Git - wxWidgets.git/blame - samples/splash/press.pov
Rebaked using post-0.2.7 svn version of bakefile.
[wxWidgets.git] / samples / splash / press.pov
CommitLineData
b1096e45
WS
1/////////////////////////////////////////////////////////////////////////////
2// Name: press.pov
3// Purpose: POV-Ray scene used to generate clip for splash
4// Author: Wlodzimierz ABX Skiba
5// Modified by:
6// Created: 24/11/2004
7// RCS-ID: $Id$
8// Copyright: (c) Wlodzimierz Skiba
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#version 3.6;
13
e9043580
WS
14// Rendering options : +FT +W80 +H60 +AM1 +A0.05 +R5 +J0 +KFF500
15// Produced TGA images converted to MPG with good old (1993) CMPEG tool
16// Conversion : cmpeg.exe -v1 ipb.ctl frames.lst press.mpg
b1096e45
WS
17
18#include "colors.inc"
19#include "rad_def.inc"
20
21global_settings {
22 assumed_gamma 1.0
23 max_trace_level 100
24}
25
26background { colour White }
27
28#declare Texts = array[ 3 ];
29
30#declare Texts[0] = "PRESS";
31#declare Texts[1] = "ANY";
32#declare Texts[2] = "KEY";
33
34camera{ orthographic look_at .5 location .5-z right 1.05*x up 1.05*y }
35
36#declare Items = dimension_size( Texts , 1 );
37
38#declare Objects = array[ Items + 1 ];
39
40#declare f_line = function(x,xa,ya,xb,yb){((yb-ya)/(xb-xa))*(x-xa)+ya};
41
42#declare Counter = 0;
43#while ( Counter <= Items )
44 #if ( Counter < Items )
45 #declare Object = text{ ttf "crystal.ttf" Texts[ Counter ] 1 0 };
46 #else
47 #declare Object = Objects[ Items ];
48 #end
49
50 #declare M = max_extent( Object );
51 #declare m = min_extent( Object );
52 #declare S = M - m;
53 #declare Objects[ Counter ] = object{ Object translate -m + z*Counter scale <1/S.x,1/S.y,1> };
54 #declare Objects[ Items ] =
55 #if ( Counter = 0 | Counter = Items )
56 object{
57 #else
58 union{
59 object{ Objects[ Items ] translate y*1.1 }
60 #end
61 object{ Objects[ Counter ] }
62 };
e9043580
WS
63
64 #declare Pause=0.1;
65 #declare X0=(Counter+Pause)/(Items+2);
b1096e45 66 #declare Y0=0;
e9043580 67 #declare X1=(Counter+1)/(Items+2);
b1096e45 68 #declare Y1=1;
e9043580 69 #declare X2=(Counter+2-Pause)/(Items+2);
b1096e45
WS
70 #declare Y2=0;
71
e9043580
WS
72 #declare C1=f_line(clock,0,0,3/4,1);
73 #declare C2=(Items+1)/(Items+2);
74 #declare C3=f_line(clock,1/4,0,1,1);
75 #declare C=max(min(C1,C2),C3);
76
77 #declare increase=f_line(C,X0,Y0,X1,Y1);
78 #declare decrease=f_line(C,X1,Y1,X2,Y2);
b1096e45 79 #declare change=min(increase,decrease);
e9043580 80 #declare level=min(max(change,0),1);
b1096e45
WS
81
82 object{
83 Objects[ Counter ]
84 pigment{ rgb level transmit 1-level }
85 }
86 #declare Counter = Counter + 1;
87#end
88