Panda3D
Public Member Functions | Static Public Member Functions | List of all members
OSphereLens Class Reference

A OSphereLens is a special nonlinear lens that doesn't correspond to any real physical lenses. More...

Inheritance diagram for OSphereLens:
Lens TypedWritableReferenceCount TypedWritable ReferenceCount TypedObject

Public Member Functions

 __init__ ()
 
- Public Member Functions inherited from Lens
 clear ()
 Resets all lens parameters to their initial default settings. More...
 
 clearCustomFilmMat ()
 Disables the lens custom_film_mat correction. More...
 
 clearKeystone ()
 Disables the lens keystone correction. More...
 
 clearViewMat ()
 Resets the lens transform to identity. More...
 
bool extrude (const LPoint2 point2d, LPoint3 near_point, LPoint3 far_point)
 Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is the center of the lens and (-1,-1) is the lower-left corner, compute the corresponding vector in space that maps to this point, if such a vector can be determined. More...
 
bool extrude (const LPoint3 point2d, LPoint3 near_point, LPoint3 far_point)
 Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is the center of the lens and (-1,-1) is the lower-left corner, compute the corresponding vector in space that maps to this point, if such a vector can be determined. More...
 
bool extrudeDepth (const LPoint3 point2d, LPoint3 point3d)
 Uses the depth component of the 3-d result from project() to compute the original point in 3-d space corresponding to a particular point on the lens. More...
 
bool extrudeVec (const LPoint2 point2d, LVector3 vec3d)
 Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is the center of the lens and (-1,-1) is the lower-left corner, compute the vector that corresponds to the view direction. More...
 
bool extrudeVec (const LPoint3 point2d, LVector3 vec3d)
 Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is the center of the lens and (-1,-1) is the lower-left corner, compute the vector that corresponds to the view direction. More...
 
float getAspectRatio ()
 Returns the aspect ratio of the Lens. More...
 
str getChangeEvent ()
 Returns the name of the event that will be generated whenever any properties of this particular Lens have changed. More...
 
float getConvergenceDistance ()
 See set_convergence_distance(). More...
 
CoordinateSystem getCoordinateSystem ()
 Returns the coordinate system that all 3-d computations are performed within for this Lens. More...
 
const LMatrix4 getCustomFilmMat ()
 Returns the custom_film_mat specified for the lens. More...
 
float getFar ()
 Returns the position of the far plane (or cylinder, sphere, whatever). More...
 
const LMatrix4 getFilmMat ()
 Returns the matrix that transforms from a point behind the lens to a point on the film. More...
 
const LMatrix4 getFilmMatInv ()
 Returns the matrix that transforms from a point on the film to a point behind the lens. More...
 
const LVector2 getFilmOffset ()
 Returns the horizontal and vertical offset amounts of this Lens. More...
 
const LVecBase2 getFilmSize ()
 Returns the horizontal and vertical film size of the virtual film. More...
 
float getFocalLength ()
 Returns the focal length of the lens. More...
 
const LVecBase2 getFov ()
 Returns the horizontal and vertical film size of the virtual film. More...
 
float getHfov ()
 Returns the horizontal component of fov only. More...
 
float getInterocularDistance ()
 See set_interocular_distance(). More...
 
const LVecBase2 getKeystone ()
 Returns the keystone correction specified for the lens. More...
 
UpdateSeq getLastChange ()
 Returns the UpdateSeq that is incremented whenever the lens properties are changed. More...
 
const LMatrix4 getLensMat ()
 Returns the matrix that transforms from a point in front of the lens to a point in space. More...
 
const LMatrix4 getLensMatInv ()
 Returns the matrix that transforms from a point in space to a point in front of the lens. More...
 
float getMinFov ()
 Returns the field of view of the narrowest dimension of the window. More...
 
float getNear ()
 Returns the position of the near plane (or cylinder, sphere, whatever). More...
 
LPoint3 getNodalPoint ()
 Returns the center point of the lens: the point from which the lens is viewing. More...
 
const LMatrix4 getProjectionMat (Lens::StereoChannel channel)
 Returns the complete transformation matrix from a 3-d point in space to a point on the film, if such a matrix exists, or the identity matrix if the lens is nonlinear. More...
 
const LMatrix4 getProjectionMatInv (Lens::StereoChannel channel)
 Returns the matrix that transforms from a 2-d point on the film to a 3-d vector in space, if such a matrix exists. More...
 
const LVector3 getUpVector ()
 Returns the axis perpendicular to the camera's view vector that indicates the "up" direction. More...
 
float getVfov ()
 Returns the vertical component of fov only. More...
 
const LVecBase3 getViewHpr ()
 Returns the direction in which the lens is facing. More...
 
const LMatrix4 getViewMat ()
 Returns the direction in which the lens is facing. More...
 
const LVector3 getViewVector ()
 Returns the axis along which the lens is facing. More...
 
bool isLinear ()
 Returns true if the lens represents a linear projection (e.g. More...
 
bool isOrthographic ()
 Returns true if the lens represents a orthographic projection (i.e. More...
 
bool isPerspective ()
 Returns true if the lens represents a perspective projection (i.e. More...
 
BoundingVolume makeBounds ()
 Allocates and returns a new BoundingVolume that encloses the frustum used for this kind of lens, if possible. More...
 
Lens makeCopy ()
 
Geom makeGeometry ()
 Allocates and returns a new Geom that can be rendered to show a visible representation of the frustum used for this kind of lens, if it makes sense to do so. More...
 
 output (Ostream out)
 
bool project (const LPoint3 point3d, LPoint2 point2d)
 Given a 3-d point in space, determine the 2-d point this maps to, in the range (-1,1) in both dimensions, where (0,0) is the center of the lens and (-1,-1) is the lower-left corner. More...
 
bool project (const LPoint3 point3d, LPoint3 point2d)
 Given a 3-d point in space, determine the 2-d point this maps to, in the range (-1,1) in both dimensions, where (0,0) is the center of the lens and (-1,-1) is the lower-left corner. More...
 
 recomputeAll ()
 Forces all internal parameters of the Lens to be recomputed. More...
 
 setAspectRatio (float aspect_ratio)
 Sets the aspect ratio of the lens. More...
 
 setChangeEvent (str event)
 Sets the name of the event that will be generated whenever any properties of the Lens have changed. More...
 
 setConvergenceDistance (float convergence_distance)
 Sets the distance between between the camera plane and the point in the distance that the left and right eyes are both looking at. More...
 
 setCoordinateSystem (CoordinateSystem cs)
 Specifies the coordinate system that all 3-d computations are performed within for this Lens. More...
 
 setCustomFilmMat (const LMatrix4 custom_film_mat)
 Specifies a custom matrix to transform the points on the film after they have been converted into nominal film space (-1 . More...
 
 setFar (float far_distance)
 Defines the position of the far plane (or cylinder, sphere, whatever). More...
 
 setFilmOffset (const LVecBase2 film_offset)
 Sets the horizontal and vertical offset amounts of this Lens. More...
 
 setFilmOffset (float x, float y)
 Sets the horizontal and vertical offset amounts of this Lens. More...
 
 setFilmSize (const LVecBase2 film_size)
 Sets the size and shape of the "film" within the lens. More...
 
 setFilmSize (float width)
 Sets the horizontal size of the film without changing its shape. More...
 
 setFilmSize (float width, float height)
 Sets the size and shape of the "film" within the lens. More...
 
 setFocalLength (float focal_length)
 Sets the focal length of the lens. More...
 
 setFov (const LVecBase2 fov)
 Sets the field of view of the lens in both dimensions. More...
 
 setFov (float fov)
 Sets the horizontal field of view of the lens without changing the aspect ratio. More...
 
 setFov (float hfov, float vfov)
 Sets the field of view of the lens in both dimensions. More...
 
 setFrustumFromCorners (const LVecBase3 ul, const LVecBase3 ur, const LVecBase3 ll, const LVecBase3 lr, int flags)
 Sets up the lens to use the frustum defined by the four indicated points. More...
 
 setInterocularDistance (float interocular_distance)
 Sets the distance between the left and right eyes of a stereo camera. More...
 
 setKeystone (const LVecBase2 keystone)
 Indicates the ratio of keystone correction to perform on the lens, in each of three axes. More...
 
 setMinFov (float min_fov)
 Sets the field of view of the smallest dimension of the window. More...
 
 setNear (float near_distance)
 Defines the position of the near plane (or cylinder, sphere, whatever). More...
 
 setNearFar (float near_distance, float far_distance)
 Simultaneously changes the near and far planes. More...
 
 setViewHpr (const LVecBase3 view_hpr)
 Sets the direction in which the lens is facing. More...
 
 setViewHpr (float h, float p, float r)
 Sets the direction in which the lens is facing. More...
 
 setViewMat (const LMatrix4 view_mat)
 Sets an arbitrary transformation on the lens. More...
 
 setViewVector (const LVector3 view_vector, const LVector3 up_vector)
 Specifies the direction in which the lens is facing by giving an axis to look along, and a perpendicular (or at least non-parallel) up axis. More...
 
 setViewVector (float x, float y, float z, float i, float j, float k)
 Specifies the direction in which the lens is facing by giving an axis to look along, and a perpendicular (or at least non-parallel) up axis. More...
 
 write (Ostream out, int indent_level)
 
- Public Member Functions inherited from TypedWritable
object __reduce__ ()
 
object __reduce_persist__ (object pickler)
 
VectorUchar encodeToBamStream ()
 Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More...
 
bool encodeToBamStream (VectorUchar data, BamWriter writer)
 Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More...
 
 fillin (DatagramIterator scan, BamReader manager)
 This internal function is intended to be called by each class's make_from_bam() method to read in all of the relevant data from the BamFile for the new object. More...
 
UpdateSeq getBamModified ()
 Returns the current bam_modified counter. More...
 
 markBamModified ()
 Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More...
 
- Public Member Functions inherited from TypedObject
TypeHandle getType ()
 
int getTypeIndex ()
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
 
bool isExactType (TypeHandle handle)
 Returns true if the current object is the indicated type exactly. More...
 
bool isOfType (TypeHandle handle)
 Returns true if the current object is or derives from the indicated type. More...
 
- Public Member Functions inherited from ReferenceCount
int getRefCount ()
 Returns the current reference count. More...
 
 ref ()
 Explicitly increments the reference count. More...
 
bool testRefCountIntegrity ()
 Does some easy checks to make sure that the reference count isn't completely bogus. More...
 
bool testRefCountNonzero ()
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
 
bool unref ()
 Explicitly decrements the reference count. More...
 

Static Public Member Functions

static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from Lens
static TypeHandle getClassType ()
 
static float getDefaultFar ()
 Returns the default far plane distance that will be assigned to each newly- created lens. More...
 
static float getDefaultNear ()
 Returns the default near plane distance that will be assigned to each newly-created lens. More...
 
- Static Public Member Functions inherited from TypedWritableReferenceCount
static TypedWritableReferenceCount decodeFromBamStream (VectorUchar data, BamReader reader)
 Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts and returns the single object on those bytes. More...
 
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedWritable
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedObject
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle getClassType ()
 

Additional Inherited Members

- Public Types inherited from Lens
enum  FromCorners {
  FC_roll = 1, FC_camera_plane = 2, FC_off_axis = 4, FC_aspect_ratio = 8,
  FC_shear = 16, FC_keystone = 32
}
 
enum  StereoChannel { SC_mono = 0, SC_left = 1, SC_right = 2, SC_stereo = 3 }
 
- Public Attributes inherited from Lens
float aspect_ratio
 Returns the aspect ratio of the Lens. More...
 
const String change_event
 Returns the name of the event that will be generated whenever any properties of this particular Lens have changed. More...
 
float convergence_distance
 See set_convergence_distance(). More...
 
CoordinateSystem coordinate_system
 Returns the coordinate system that all 3-d computations are performed within for this Lens. More...
 
float far
 Returns the position of the far plane (or cylinder, sphere, whatever). More...
 
const LVector2 film_offset
 Returns the horizontal and vertical offset amounts of this Lens. More...
 
const LVecBase2 film_size
 Returns the horizontal and vertical film size of the virtual film. More...
 
float focal_length
 Returns the focal length of the lens. More...
 
const LVecBase2 fov
 Returns the horizontal and vertical film size of the virtual film. More...
 
float interocular_distance
 See set_interocular_distance(). More...
 
const LVecBase2 keystone
 Returns the keystone correction specified for the lens. More...
 
float min_fov
 Returns the field of view of the narrowest dimension of the window. More...
 
float near
 Returns the position of the near plane (or cylinder, sphere, whatever). More...
 
LPoint3 nodal_point
 Returns the center point of the lens: the point from which the lens is viewing. More...
 
const LVecBase3 view_hpr
 Returns the direction in which the lens is facing. More...
 
const LMatrix4 view_mat
 Returns the direction in which the lens is facing. More...
 
- Public Attributes inherited from TypedObject
TypeHandle type
 Returns the TypeHandle representing this object's type. More...
 
- Public Attributes inherited from ReferenceCount
int ref_count
 The current reference count. More...
 

Detailed Description

A OSphereLens is a special nonlinear lens that doesn't correspond to any real physical lenses.

It's primarily useful for generating 360-degree wraparound images while avoiding the distortion associated with fisheye images.

A OSphereLens is similar to a Cylindrical lens and PSphereLens, except that it is orthographic in the vertical direction.

Member Function Documentation

◆ __init__()

__init__ ( )

◆ getClassType()

static TypeHandle getClassType ( )
static