Panda3D

- Main Page
- Packages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions

# MatrixLens Class Reference

A completely generic linear lens. More...

Inheritance diagram for MatrixLens:

List of all members.

## Public Member Functions
| MatrixLens ()
| clearLeftEyeMat ()
| Removes the custom projection matrix set for the left eye, and uses the center matrix (set by set_user_mat) instead.
| clearRightEyeMat ()
| Removes the custom projection matrix set for the right eye, and uses the center matrix (set by set_user_mat) instead.
Mat4 const | getLeftEyeMat ()
| Returns the custom projection matrix for the left eye, if any, or the center matrix if there is no custom matrix set for the left eye.
Mat4 const | getRightEyeMat ()
| Returns the custom projection matrix for the right eye, if any, or the center matrix if there is no custom matrix set for the right eye.
Mat4 const | getUserMat ()
| Returns the explicit projection matrix as set by the user.
bool | hasLeftEyeMat ()
| Returns true if the camera has a custom projection matrix set for the left eye, or false if the center matrix (set by set_user_mat) will be used for the left eye.
bool | hasRightEyeMat ()
| Returns true if the camera has a custom projection matrix set for the right eye, or false if the center matrix (set by set_user_mat) will be used for the right eye.
| setLeftEyeMat (Mat4 const user_mat)
| Sets a custom projection matrix for the left eye.
| setRightEyeMat (Mat4 const user_mat)
| Sets a custom projection matrix for the right eye.
| setUserMat (Mat4 const user_mat)
| Explicitly specifies the projection matrix.
## Static Public Member Functions
static TypeHandle | getClassType ()

## Detailed Description

A completely generic linear lens.

This is provided for the benefit of low-level code that wants to specify a perspective or orthographic frustum via an explicit projection matrix, but not mess around with fov's or focal lengths or any of that nonsense.

## Constructor & Destructor Documentation

MatrixLens | ( |  | ) |

## Member Function Documentation

clearLeftEyeMat | ( |  | ) |

Removes the custom projection matrix set for the left eye, and uses the center matrix (set by set_user_mat) instead.

clearRightEyeMat | ( |  | ) |

Removes the custom projection matrix set for the right eye, and uses the center matrix (set by set_user_mat) instead.

static TypeHandle getClassType | ( |  | ) | `[static]`

Reimplemented from Lens.

Mat4 const getLeftEyeMat | ( |  | ) |

Returns the custom projection matrix for the left eye, if any, or the center matrix if there is no custom matrix set for the left eye.

Mat4 const getRightEyeMat | ( |  | ) |

Returns the custom projection matrix for the right eye, if any, or the center matrix if there is no custom matrix set for the right eye.

Mat4 const getUserMat | ( |  | ) |

Returns the explicit projection matrix as set by the user.

This does not include transforms on the lens or film (e.g. a film offset or view hpr).

bool hasLeftEyeMat | ( |  | ) |

Returns true if the camera has a custom projection matrix set for the left eye, or false if the center matrix (set by set_user_mat) will be used for the left eye.

bool hasRightEyeMat | ( |  | ) |

Returns true if the camera has a custom projection matrix set for the right eye, or false if the center matrix (set by set_user_mat) will be used for the right eye.

setLeftEyeMat | ( | Mat4 const | user_mat | ) |

Sets a custom projection matrix for the left eye.

This is only used if the lens is attached to a stereo camera, in which case the left eye matrix will be used to draw the scene in the left eye (but the center matrix--the user_mat--will still be used to cull the scene).

This matrix should not be too different from the center matrix (set by set_user_mat()) or culling errors may become obvious.

setRightEyeMat | ( | Mat4 const | user_mat | ) |

Sets a custom projection matrix for the right eye.

This is only used if the lens is attached to a stereo camera, in which case the right eye matrix will be used to draw the scene in the right eye (but the center matrix--the user_mat--will still be used to cull the scene).

This matrix should not be too different from the center matrix (set by set_user_mat()) or culling errors may become obvious.

setUserMat | ( | Mat4 const | user_mat | ) |

Explicitly specifies the projection matrix.

This matrix should convert X and Y to the range [-film_size/2, film_size/2], where (-fs/2,-fs/2) is the lower left corner of the screen and (fs/2, fs/2) is the upper right. Z should go to the range [-1, 1], where -1 is the far plane and 1 is the near plane. Note that this is a left-handed Y-up coordinate system.

The default film_size for a MatrixLens is 2, so the default range is [-1, 1] for both X and Y. This is consistent with the GL conventions for projection matrices.

All Classes Namespaces Functions Variables Enumerations Enumerator Properties