Define _CRT_NONSTDC_NO_WARNINGS for zlib compilation with MSVC.
[wxWidgets.git] / samples / splash / splash.pov
1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        splash.pov
3 // Purpose:     POV-Ray scene used to generate splash image for wxWidgets
4 // Author:      Wlodzimierz ABX Skiba
5 // Modified by:
6 // Created:     04/08/2004
7 // Copyright:   (c) Wlodzimierz Skiba
8 // Licence:     wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10             
11 #version 3.6;
12
13 // Rendering options : +FN +W638 +H478 +AM1 +A0.05 +R5
14
15 #include "colors.inc"
16 #include "rad_def.inc"
17 #include "screen.inc"
18 #include "shapes.inc"
19
20 global_settings {
21     assumed_gamma 1.0
22     radiosity {}
23 }
24
25 #local Location = <0,5,-100> ;
26 Set_Camera_Location(Location)
27 Set_Camera_Look_At(<0,0,0>)
28
29 background { rgb White }
30
31 light_source { 1000*y color White }
32 light_source { Location color White }
33
34 union{
35   Center_Object( text { 
36     ttf
37     "crystal.ttf",
38     ".     wxWidgets      ."
39     .01, 0
40     scale 20 translate 22*y
41     pigment { color Black }
42   } , x )
43   Center_Object( text { 
44     ttf
45     "crystal.ttf",
46     ".     Cross-Platform GUI Library   ."
47     .01, 0
48     scale 10 translate 10*y
49     pigment { color Black }
50   } , x )
51   Center_Object( text { 
52     ttf
53     "crystal.ttf",
54     ".      wxSplashScreen sample   ."
55     .01, 0
56     scale 2 translate 3 * y translate -z*84
57     pigment { color Gray }
58   } , x )
59   plane { y 0 pigment { checker Black White } }
60   rotate z*25 
61 }
62
63 #local Square = mesh { 
64     triangle { <0,0,0> <0,1,0> <1,0,0> }
65     triangle { <1,1,0> <0,1,0> <1,0,0> }
66 }
67
68 #macro Round_Cone3(PtA, RadiusA, PtB, RadiusB, UseMerge)
69    #local Axis = vnormalize(PtB - PtA);
70    #local Len = VDist(PtA, PtB);
71    #local SA = atan2(RadiusB - RadiusA, Len);
72
73    #local Pt_A = PtA + Axis*RadiusA;
74    #local Pt_B = PtB - Axis*RadiusB;
75
76    #if(UseMerge)
77       merge {
78    #else
79       union {
80    #end
81       cone {Pt_A, RadiusA, Pt_B, RadiusB}
82       sphere {Pt_A + Axis*tan(SA)*RadiusA, RadiusA/cos(SA)}
83       sphere {Pt_B + Axis*tan(SA)*RadiusB, RadiusB/cos(SA)}
84    }
85 #end
86
87 #local Line = object { 
88     Round_Cone3_Union( <.15,.15,0>, .05, <.15,.9,0>, .05)
89     pigment { color White }
90     finish { ambient 1 diffuse 0 }
91     scale <1,1,.01>
92 }
93
94 #macro Put_Square ( With_Pigment , At_Location , Order )
95     #local Next_Square = union{ 
96         object{ Square pigment { With_Pigment } }
97         object{ Line }
98         scale .15
99     };
100     Screen_Object (Next_Square, At_Location, 0, false, .1 + Order / 100 )
101 #end
102
103 Put_Square( pigment {color Red} , <0.65,0.1> , 3 )
104 Put_Square( pigment {color Blue} , <0.72,0.2> , 2 )
105 Put_Square( pigment {color Yellow} , <0.81,0.13> , 1 )
106
107