Panda3D
Public Member Functions | Static Public Member Functions | Protected Member Functions
OSphereLens Class Reference

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

#include "oSphereLens.h"

Inheritance diagram for OSphereLens:
Lens TypedWritableReferenceCount TypedWritable ReferenceCount TypedObject MemoryBase MemoryBase

List of all members.

Public Member Functions

 OSphereLens (const OSphereLens &copy)
virtual TypeHandle force_init_type ()
virtual TypeHandle get_type () const
void operator= (const OSphereLens &copy)
virtual PT (Lens) make_copy() const

Static Public Member Functions

static TypeHandle get_class_type ()
static void init_type ()

Protected Member Functions

virtual bool do_extrude (const Lens::CData *lens_cdata, const LPoint3 &point2d, LPoint3 &near_point, LPoint3 &far_point) const
 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.
virtual bool do_project (const Lens::CData *lens_cdata, const LPoint3 &point3d, LPoint3 &point2d) const
 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.
virtual PN_stdfloat film_to_fov (PN_stdfloat film_size, PN_stdfloat focal_length, bool horiz) const
 Given a width (or height) on the film and a focal length, compute the field of view in degrees.
virtual PN_stdfloat fov_to_film (PN_stdfloat fov, PN_stdfloat focal_length, bool horiz) const
 Given a field of view in degrees and a focal length, compute the correspdonding width (or height) on the film.
virtual PN_stdfloat fov_to_focal_length (PN_stdfloat fov, PN_stdfloat film_size, bool horiz) const
 Given a field of view in degrees and a width (or height) on the film, compute the focal length of the lens.

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.

Definition at line 34 of file oSphereLens.h.


Member Function Documentation

bool OSphereLens::do_extrude ( const Lens::CData lens_cdata,
const LPoint3 point2d,
LPoint3 near_point,
LPoint3 far_point 
) const [protected, virtual]

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.

The vector is returned by indicating the points on the near plane and far plane that both map to the indicated 2-d point.

The z coordinate of the 2-d point is ignored.

Returns true if the vector is defined, or false otherwise.

Reimplemented from Lens.

Definition at line 54 of file oSphereLens.cxx.

bool OSphereLens::do_project ( const Lens::CData lens_cdata,
const LPoint3 point3d,
LPoint3 point2d 
) const [protected, virtual]

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.

Some lens types also set the z coordinate of the 2-d point to a value in the range (-1, 1), where 1 represents a point on the near plane, and -1 represents a point on the far plane.

Returns true if the 3-d point is in front of the lens and within the viewing frustum (in which case point2d is filled in), or false otherwise.

Reimplemented from Lens.

Definition at line 102 of file oSphereLens.cxx.

References LVecBase3f::length().

PN_stdfloat OSphereLens::film_to_fov ( PN_stdfloat  film_size,
PN_stdfloat  focal_length,
bool  horiz 
) const [protected, virtual]

Given a width (or height) on the film and a focal length, compute the field of view in degrees.

If horiz is true, this is in the horizontal direction; otherwise, it is in the vertical direction (some lenses behave differently in each direction).

Reimplemented from Lens.

Definition at line 177 of file oSphereLens.cxx.

PN_stdfloat OSphereLens::fov_to_film ( PN_stdfloat  fov,
PN_stdfloat  focal_length,
bool  horiz 
) const [protected, virtual]

Given a field of view in degrees and a focal length, compute the correspdonding width (or height) on the film.

If horiz is true, this is in the horizontal direction; otherwise, it is in the vertical direction (some lenses behave differently in each direction).

Reimplemented from Lens.

Definition at line 149 of file oSphereLens.cxx.

PN_stdfloat OSphereLens::fov_to_focal_length ( PN_stdfloat  fov,
PN_stdfloat  film_size,
bool  horiz 
) const [protected, virtual]

Given a field of view in degrees and a width (or height) on the film, compute the focal length of the lens.

If horiz is true, this is in the horizontal direction; otherwise, it is in the vertical direction (some lenses behave differently in each direction).

Reimplemented from Lens.

Definition at line 163 of file oSphereLens.cxx.


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations