camera.hfor precise declaration and ordering)
br_uint_8 type Camera type
br_angle field_of_view Field of view
br_scalar hither_z Front of view volume
br_scalar yon_z Back of view volume
br_scalar aspect Aspect ratio (x/y)
br_scalar width Width of projection surface
br_scalar height Height of projection surface
char * identifier Camera name
void * user User data (application dependent)
hither_z in view co-ordinates. The value should be greater than zero.
yon_z in view co-ordinates. The value should be greater than
aspect in x view ordinates is mapped to the width of the output pixel map. For parallel cameras, the
height of the view volume is mapped to the height of the output pixel map, whereas
aspect is mapped to the width of the output pixel map.
aspect is applied) - the actual width is
aspect. Applies only to parallel cameras.
char * identifier
Null if not required).
identifier is set by
void * user
Nullupon allocation (if allocated by BRender), and not accessed by BRender thereafter.
The camera should copied using structure assignment.
Access & Maintenance
Modification is not recommended during rendering, especially if applied to the viewing camera. The members should always accord with the camera type. The aspect may need to be updated in line with changing image dimensions.
Referencing & Lifetime
If not constructed by
it may be multiply referenced (given a sufficient lifetime). The camera structure should be maintained at least as long as it is referenced by any actor.
Only members applicable to the camera type need be initialised.
BrActorAllocate(BR_ACTOR_CAMERA,NULL) currently initialises a
structure as follows (after performing
Construction & Destruction
The camera structure can either be constructed/destroyed by the application, or by supplying
Cameras created by
are allocated from the
("CAMERA") resource class, and hence can benefit from the resource class supplementary functions.
Import & Export
Cameras are imported and exported with actors that specify them. See
Generated with CERN WebMaker