void peval_view_map_matrix3(
const Pview_map3 *mapping /* view mapping */ Pint *error_ind /* (out) error indicator */ Pmatrix3 result /* (out) view mapping matrix */
)
typedef struct {
Plimit win; /* window limits in VRC */
Plimit3 proj_vp; /* viewport limits in NPC space */
Pproj_type proj_type; /* projection type */
Ppoint3 proj_ref_point; /* projection reference point in VRC */
Pfloat view_plane; /* view plane distance in VRC */
Pfloat back_plane; /* back plane distance in VRC */
Pfloat front_plane; /* front plane distance in VRC */
} Pview_map3;
typedef Pfloat Pmatrix3[4][4];
typedef struct {
Pfloat x_min; /* minimum x */
Pfloat x_max; /* maximum x */
Pfloat y_min; /* minimum y */
Pfloat y_max; /* maximum y */
} Plimit;
typedef struct {
Pfloat x_min; /* minimum x */
Pfloat x_max; /* maximum x */
Pfloat y_min; /* minimum y */
Pfloat y_max; /* maximum y */
Pfloat z_min; /* minimum z */
Pfloat z_max; /* maximum z */
} Plimit3;
typedef enum {
PTYPE_PARAL,
PTYPE_PERSPECT
} Pproj_type;
typedef struct {
Pfloat x; /* x coordinate */
Pfloat y; /* y coordinate */
Pfloat z; /* z coordinate */
} Ppoint3;
Returns a homogeneous 4 x 4 matrix allowing a 3D view reference coordinate (VRC) space window to be projected into a 3D viewport in normalized projection coordinate (NPC) space. This projection, which can be in parallel or in perspective, is defined according to the projection reference point (PRP) proj_ref_point, defined in VRC.
- Parallel projection: the view volume sides are parallel to the vector passing through the PRP and the centre of the view plane.
- Perspective projection: the view volume sides converge towards the PRP.
set view representation, evaluate view orientation matrix