camera definitions for VRML exporting, as well as perspective and parallel propjections are defined here using the PHIGS conceptual model of 3D graphics. Several predefined view models are also given, corresponding to pretty standard views used by engineers and by architects. Useful to learn or teach the mathematics of graphics projections

Axialcameras for vrml exporting. Centered on the reference frame axes
Pre/Post conds (scene::ispol) => (ispol)
Example Axialcameras:(cuboid:< 1,1,1>) 
Cabinet object; standard view model for parallel oblique projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:cabinet:(cuboid:< 1,1,1>) 
Centeredcameras for vrml exporting. Centered on the scene containment box
Pre/Post conds (scene::ispol) => (ispol)
Example Axialcameras:(cuboid:< 1,1,1>) 
Centralcavalier object; standard view model for parallel oblique projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:centralcavalier:(cuboid:< 1,1,1>) 
Dimetric object; standard view model for parallel orthogonal projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:dimetric:(cuboid:< 1,1,1>) 
Isometric object; standard view model for parallel orthogonal projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:isometric:(cuboid:< 1,1,1>) 
Leftcavalier object; standard view model for parallel oblique projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:leftcavalier:(cuboid:< 1,1,1>) 
Onepoint object; standard view model for perspective projection
Pre/Post conds => (isviewmodel)
Example projection:perspective:onepoint:(cuboid:< 1,1,1>) 
Orthox object; standard view model for parallel orthographic projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:orthox:(cuboid:< 1,1,1>) 
Orthoy object; standard view model for parallel orthographic projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:orthoy:(cuboid:< 1,1,1>) 
Orthoz object; standard view model for parallel orthographic projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:orthoy:(cuboid:< 1,1,1>) 
Parallel projection class, determining the type of 3D pipeline
Pre/Post conds (vrp, vpn, vup, prp, window::IsSeq; front, back::IsReal)
=> (isfun)
Example projection:parallel:orthoy:(cuboid:< 1,1,1>) 
Perspective projection class, determining the type of 3D pipeline
Pre/Post conds (vrp, vpn, vup, prp, window::IsSeq; front, back::IsReal)
=> (isfun)
Example projection:perspective:threepoints:(cuboid:< 1,1,1>) 
Projection toplevel user interface operator
Pre/Post conds (type::or ~ [isparallel, isperspective])(view::isviewmodel)
(scene::ispol) => (ispol)
Example projection:parallel:orthoy == AnAnonymousFunction : IE3 => IE2 
Rightcavalier object; standard view model for parallel oblique projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:rightcavalier:(cuboid:< 1,1,1>) 
Threepoints object; standard view model for perspective projection
Pre/Post conds => (isviewmodel)
Example projection:perspective:threepoints:(cuboid:< 1,1,1>) 
Trimetric object; standard view model for parallel orthogonal projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:trimetric:(cuboid:< 1,1,1>) 
Twopoints object; standard view model for perspective projection
Pre/Post conds => (isviewmodel)
Example projection:perspective:twopoints:(cuboid:< 1,1,1>) 
Xcavalier object; standard view model for parallel oblique projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:xcavalier:(cuboid:< 1,1,1>) 
Ycavalier object; standard view model for parallel oblique projection
Pre/Post conds => (isviewmodel)
Example projection:parallel:ycavalier:(cuboid:< 1,1,1>)