/usr/share/povray-3.7/include/screen.inc is in povray-includes 1:3.7.0.0-9.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | // This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Raytracer Version 3.5
// Screen Include File
// Created by Christoph Hormann, Chris Huff and Rune S. Johansen.
// Screen.inc will enable you to place objects and textures right in front
// of the camera. One use of this is to place your signature or a logo in
// the corner of the image.
// You can only use screen.inc with the perspective camera. Screen.inc
// will automatically create the camera definition for you when it is
// included.
// Note that even though objects aligned using screen.inc follow the
// camera, they are still part of the scene. That means that they will be
// affected by perspective, lighting, the surroundings etc.
// For instructions of use, look in the POV-Ray manual, and for an example
// of use, see screen.pov.
#ifndef(Screen_Inc_Temp)
#declare Screen_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including screen.inc\n"
#end
#macro Update_Camera()
#ifndef (Camera_Aspect_Ratio)
#declare Camera_Aspect_Ratio = image_width/image_height;
#end
#ifndef (Camera_Location) #declare Camera_Location = <0,0,0>; #end
#ifndef (Camera_Look_At) #declare Camera_Look_At = z; #end
#ifndef (Camera_Sky) #declare Camera_Sky = y; #end
#ifndef (Camera_Zoom) #declare Camera_Zoom = 1; #end
#declare CamL=Camera_Location; // wherever you're putting it
#declare CamD=vnormalize(Camera_Look_At-CamL); // direction of camera view
#declare CamR=vnormalize(vcross(Camera_Sky,CamD)); // to the right
#declare CamU=vnormalize(vcross(CamD,CamR)); // camera up
#declare Camera_Transform =
transform {
matrix <
CamR.x, CamR.y, CamR.z,
CamU.x, CamU.y, CamU.z,
CamD.x, CamD.y, CamD.z,
CamL.x, CamL.y, CamL.z
>
}
camera {
direction CamD*Camera_Zoom
right CamR*Camera_Aspect_Ratio
up CamU
sky Camera_Sky
location CamL
}
#end
Update_Camera()
#macro Set_Camera_Location(Loc)
#declare Camera_Location = Loc;
Update_Camera()
#end
#macro Set_Camera_Look_At(LookAt)
#declare Camera_Look_At = LookAt;
Update_Camera()
#end
#macro Set_Camera_Aspect_Ratio(Aspect)
#declare Camera_Aspect_Ratio = Aspect;
Update_Camera()
#end
#macro Set_Camera_Aspect(Width,Height)
#declare Camera_Aspect_Ratio = Width/Height;
Update_Camera()
#end
#macro Set_Camera_Sky(Sky)
#declare Camera_Sky = Sky;
Update_Camera()
#end
#macro Set_Camera_Zoom(Zoom)
#declare Camera_Zoom = Zoom;
Update_Camera()
#end
#macro Set_Camera_Angle(Angle)
#declare Camera_Zoom = 0.5/tan(radians(Angle/2))*Camera_Aspect_Ratio;
Update_Camera()
#end
#macro Set_Camera(Location, LookAt, Angle)
#declare Camera_Location = Location;
#declare Camera_Look_At = LookAt;
Set_Camera_Angle(Angle)
Update_Camera()
#end
#macro Reset_Camera()
#undef Camera_Location
#undef Camera_Aspect_Ratio
#undef Camera_Location
#undef Camera_Look_At
#undef Camera_Sky
#undef Camera_Zoom
Update_Camera()
#end
#macro Screen_Object (Object, Position, Spacing, Confine, Scaling)
#local Obj_Max = max_extent(Object);
#local Obj_Min = min_extent(Object);
#local Obj_Cen = (Obj_Max+Obj_Min)/2;
#local Obj_Dim = (Obj_Max-Obj_Min)/2;
#local Pos = (Position-0.5)*2;
#local Pos = (
+<Pos.x*Camera_Aspect_Ratio/2,Pos.y/2,Camera_Zoom>
+( -Obj_Cen -Pos*(Obj_Dim+Spacing) ) * Confine
);
object {
Object
no_shadow // shouldn't cast shadows in the scene
no_reflection // shouldn't be reflected in scene elements
no_radiosity // also make the object invisible to radiosity rays
translate Pos
scale Scaling
transform {Camera_Transform}
}
#end
#macro Screen_Plane (Texture, Scaling, BLCorner, TRCorner)
box {
<-0.000001,-0.000001,0>, <+1.000001,+1.000001,0>
texture {Texture}
scale TRCorner*<1,1,0>-BLCorner*<1,1,0>+z
translate BLCorner*<1,1,0>+<-0.5,-0.5,0>
scale <Camera_Aspect_Ratio,1,1>
no_shadow // shouldn't cast shadows in the scene
no_reflection // shouldn't be reflected in scene elements
hollow on // for media/fog
translate Camera_Zoom*z
scale Scaling
transform {Camera_Transform}
}
#end
#version Screen_Inc_Temp;
#end
|