Panda3D

Loading...
Searching...
No Matches
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...

`#include "oSphereLens.h"`

Inheritance diagram for OSphereLens:

## 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
Public Member Functions inherited from Lens
| Lens (const Lens &copy)
void | clear ()
| Resets all lens parameters to their initial default settings.
void | clear_custom_film_mat ()
| Disables the lens custom_film_mat correction.
void | clear_keystone ()
| Disables the lens keystone correction.
void | clear_view_mat ()
| Resets the lens transform to identity.
bool | extrude (const LPoint2 &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.
bool | extrude (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.
bool | extrude_depth (const LPoint3 &point2d, LPoint3 &point3d) const
| 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.
bool | extrude_vec (const LPoint2 &point2d, LVector3 &vec3d) 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 vector that corresponds to the view direction.
bool | extrude_vec (const LPoint3 &point2d, LVector3 &vec3d) 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 vector that corresponds to the view direction.
PN_stdfloat | get_aspect_ratio () const
const std::string & | get_change_event () const
PN_stdfloat | get_convergence_distance () const
CoordinateSystem | get_coordinate_system () const
const LMatrix4 & | get_custom_film_mat () const
| Returns the custom_film_mat specified for the lens.
PN_stdfloat | get_far () const
const LMatrix4 & | get_film_mat () const
| Returns the matrix that transforms from a point behind the lens to a point on the film.
const LMatrix4 & | get_film_mat_inv () const
| Returns the matrix that transforms from a point on the film to a point behind the lens.
const LVector2 & | get_film_offset () const
const LVecBase2 & | get_film_size () const
PN_stdfloat | get_focal_length () const
const LVecBase2 & | get_fov () const
PN_stdfloat | get_hfov () const
| Returns the horizontal component of fov only.
PN_stdfloat | get_interocular_distance () const
const LVecBase2 & | get_keystone () const
UpdateSeq | get_last_change () const
| Returns the UpdateSeq that is incremented whenever the lens properties are changed.
const LMatrix4 & | get_lens_mat () const
| Returns the matrix that transforms from a point in front of the lens to a point in space.
const LMatrix4 & | get_lens_mat_inv () const
| Returns the matrix that transforms from a point in space to a point in front of the lens.
PN_stdfloat | get_min_fov () const
PN_stdfloat | get_near () const
LPoint3 | get_nodal_point () const
const LMatrix4 & | get_projection_mat (StereoChannel channel=SC_mono) const
| 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.
const LMatrix4 & | get_projection_mat_inv (StereoChannel channel=SC_mono) const
| 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.
const LVector3 & | get_up_vector () const
| Returns the axis perpendicular to the camera's view vector that indicates the "up" direction.
PN_stdfloat | get_vfov () const
| Returns the vertical component of fov only.
const LVecBase3 & | get_view_hpr () const
const LMatrix4 & | get_view_mat () const
const LVector3 & | get_view_vector () const
| Returns the axis along which the lens is facing.
virtual bool | is_linear () const
| Returns true if the lens represents a linear projection (e.g.
virtual bool | is_orthographic () const
| Returns true if the lens represents a orthographic projection (i.e.
virtual bool | is_perspective () const
| Returns true if the lens represents a perspective projection (i.e.
virtual PointerTo< BoundingVolume > | make_bounds () const
| Allocates and returns a new BoundingVolume that encloses the frustum used for this kind of lens, if possible.
virtual PointerTo< Lens > | make_copy () const =0
virtual PointerTo< Geom > | make_geometry ()
| 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.
void | operator= (const Lens &copy)
virtual void | output (std::ostream &out) const
bool | project (const LPoint3 &point3d, LPoint2 &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.
bool | project (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.
void | recompute_all ()
| Forces all internal parameters of the Lens to be recomputed.
void | set_aspect_ratio (PN_stdfloat aspect_ratio)
void | set_change_event (const std::string &event)
void | set_convergence_distance (PN_stdfloat convergence_distance)
void | set_coordinate_system (CoordinateSystem cs)
void | set_custom_film_mat (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 .
void | set_far (PN_stdfloat far_distance)
void | set_film_offset (const LVecBase2 &film_offset)
void | set_film_offset (PN_stdfloat x, PN_stdfloat y)
void | set_film_size (const LVecBase2 &film_size)
void | set_film_size (PN_stdfloat width)
void | set_film_size (PN_stdfloat width, PN_stdfloat height)
void | set_focal_length (PN_stdfloat focal_length)
void | set_fov (const LVecBase2 &fov)
void | set_fov (PN_stdfloat fov)
void | set_fov (PN_stdfloat hfov, PN_stdfloat vfov)
void | set_frustum_from_corners (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.
void | set_interocular_distance (PN_stdfloat interocular_distance)
void | set_keystone (const LVecBase2 &keystone)
void | set_min_fov (PN_stdfloat min_fov)
void | set_near (PN_stdfloat near_distance)
void | set_near_far (PN_stdfloat near_distance, PN_stdfloat far_distance)
| Simultaneously changes the near and far planes.
void | set_view_hpr (const LVecBase3 &view_hpr)
void | set_view_hpr (PN_stdfloat h, PN_stdfloat p, PN_stdfloat r)
void | set_view_mat (const LMatrix4 &view_mat)
void | set_view_vector (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.
void | set_view_vector (PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat i, PN_stdfloat j, PN_stdfloat 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.
virtual void | write (std::ostream &out, int indent_level=0) const
virtual void | write_datagram (BamWriter *manager, Datagram &dg)
| Writes the contents of this object to the datagram for shipping out to a Bam file.
Public Member Functions inherited from TypedWritableReferenceCount
| TypedWritableReferenceCount (const TypedWritableReferenceCount &copy)
virtual ReferenceCount * | as_reference_count ()
| Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type.
void | operator= (const TypedWritableReferenceCount &copy)
Public Member Functions inherited from TypedWritable
| TypedWritable (const TypedWritable &copy)
virtual int | complete_pointers (TypedWritable **p_list, BamReader *manager)
| Receives an array of pointers, one for each time manager->read_pointer() was called in fillin().
vector_uchar | encode_to_bam_stream () const
| Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object.
bool | encode_to_bam_stream (vector_uchar &data, BamWriter *writer=nullptr) const
| Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string.
virtual void | finalize (BamReader *manager)
| Called by the BamReader to perform any final actions needed for setting up the object after all objects have been read and all pointers have been completed.
UpdateSeq | get_bam_modified () const
| Returns the current bam_modified counter.
void | mark_bam_modified ()
| Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams.
void | operator= (const TypedWritable &copy)
virtual bool | require_fully_complete () const
| Some objects require all of their nested pointers to have been completed before the objects themselves can be completed.
virtual void | update_bam_nested (BamWriter *manager)
| Called by the BamWriter when this object has not itself been modified recently, but it should check its nested objects for updates.
Public Member Functions inherited from TypedObject
| TypedObject (const TypedObject &copy)=default
TypedObject * | as_typed_object ()
| Returns the object, upcast (if necessary) to a TypedObject pointer.
const TypedObject * | as_typed_object () const
| Returns the object, upcast (if necessary) to a TypedObject pointer.
int | get_best_parent_from_Set (const std::set< int > &) const
int | get_type_index () const
| Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.
bool | is_exact_type (TypeHandle handle) const
| Returns true if the current object is the indicated type exactly.
bool | is_of_type (TypeHandle handle) const
| Returns true if the current object is or derives from the indicated type.
TypedObject & | operator= (const TypedObject &copy)=default
Public Member Functions inherited from MemoryBase
void | operator delete (void *, void *)
void | operator delete (void *ptr)
void | operator delete[] (void *, void *)
void | operator delete[] (void *ptr)
void * | operator new (size_t size)
void * | operator new (size_t size, void *ptr)
void * | operator new[] (size_t size)
void * | operator new[] (size_t size, void *ptr)
Public Member Functions inherited from ReferenceCount
int | get_ref_count () const
WeakReferenceList * | get_weak_list () const
| Returns the WeakReferenceList associated with this ReferenceCount object.
bool | has_weak_list () const
| Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise.
void | local_object ()
| This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack.
void | ref () const
| Explicitly increments the reference count.
bool | ref_if_nonzero () const
| Atomically increases the reference count of this object if it is not zero.
bool | test_ref_count_integrity () const
| Does some easy checks to make sure that the reference count isn't completely bogus.
bool | test_ref_count_nonzero () const
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus.
virtual bool | unref () const
| Explicitly decrements the reference count.
bool | unref_if_one () const
| Atomically decreases the reference count of this object if it is one.
WeakReferenceList * | weak_ref ()
| Adds the indicated PointerToVoid as a weak reference to this object.
void | weak_unref ()
| Removes the indicated PointerToVoid as a weak reference to this object.

## Static Public Member Functions
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from Lens
static TypeHandle | get_class_type ()
static PN_stdfloat | get_default_far ()
| Returns the default far plane distance that will be assigned to each newly- created lens.
static PN_stdfloat | get_default_near ()
| Returns the default near plane distance that will be assigned to each newly-created lens.
static void | init_type ()
Static Public Member Functions inherited from TypedWritableReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()
static | PT (TypedWritableReferenceCount) decode_from_bam_stream(vector_uchar data
Static Public Member Functions inherited from TypedWritable
static bool | decode_raw_from_bam_stream (TypedWritable *&ptr, ReferenceCount *&ref_ptr, vector_uchar data, BamReader *reader=nullptr)
| Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts the single object on those bytes.
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from TypedObject
static TypeHandle | get_class_type ()
static void | init_type ()
| This function is declared non-inline to work around a compiler bug in g++ 2.96.
Static Public Member Functions inherited from ReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()

## Additional Inherited Members
Public Types inherited from Lens
enum | FromCorners { FC_roll = 0x0001 , FC_camera_plane = 0x0002 , FC_off_axis = 0x0004 , FC_aspect_ratio = 0x0008 , FC_shear = 0x0010 , FC_keystone = 0x0020 }
enum | StereoChannel { SC_mono = 0x00 , SC_left = 0x01 , SC_right = 0x02 , SC_stereo = 0x03 }
Public Attributes inherited from Lens
| get_aspect_ratio
| Returns the aspect ratio of the Lens.
| get_change_event
| Returns the name of the event that will be generated whenever any properties of this particular Lens have changed.
| get_convergence_distance
| See set_convergence_distance().
| get_coordinate_system
| Returns the coordinate system that all 3-d computations are performed within for this Lens.
| get_far
| Returns the position of the far plane (or cylinder, sphere, whatever).
| get_film_offset
| Returns the horizontal and vertical offset amounts of this Lens.
| get_film_size
| Returns the horizontal and vertical film size of the virtual film.
| get_focal_length
| Returns the focal length of the lens.
| get_fov
| Returns the horizontal and vertical film size of the virtual film.
| get_interocular_distance
| See set_interocular_distance().
| get_keystone
| Returns the keystone correction specified for the lens.
| get_min_fov
| Returns the field of view of the narrowest dimension of the window.
| get_near
| Returns the position of the near plane (or cylinder, sphere, whatever).
| get_nodal_point
| Returns the center point of the lens: the point from which the lens is viewing.
| get_view_hpr
| Returns the direction in which the lens is facing.
| get_view_mat
| Returns the direction in which the lens is facing.
| set_aspect_ratio
| Sets the aspect ratio of the lens.
| set_change_event
| Sets the name of the event that will be generated whenever any properties of the Lens have changed.
| set_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.
| set_coordinate_system
| Specifies the coordinate system that all 3-d computations are performed within for this Lens.
| set_far
| Defines the position of the far plane (or cylinder, sphere, whatever).
| set_film_offset
| Sets the horizontal and vertical offset amounts of this Lens.
| set_film_size
| Sets the horizontal size of the film without changing its shape.
| set_focal_length
| Sets the focal length of the lens.
| set_fov
| Sets the horizontal field of view of the lens without changing the aspect ratio.
| set_interocular_distance
| Sets the distance between the left and right eyes of a stereo camera.
| set_keystone
| Indicates the ratio of keystone correction to perform on the lens, in each of three axes.
| set_min_fov
| Sets the field of view of the smallest dimension of the window.
| set_near
| Defines the position of the near plane (or cylinder, sphere, whatever).
| set_view_hpr
| Sets the direction in which the lens is facing.
| set_view_mat
| Sets an arbitrary transformation on the lens.
Public Attributes inherited from TypedWritableReferenceCount
static BamReader * | reader = nullptr)
Public Attributes inherited from TypedObject
| get_type
Public Attributes inherited from ReferenceCount
| get_ref_count
| Returns the current reference count.
Static Public Attributes inherited from TypedWritable
static TypedWritable *const | Null = nullptr

## 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 30 of file oSphereLens.h.

## Constructor & Destructor Documentation

## ◆ OSphereLens() [1/2]

OSphereLens::OSphereLens | ( |  | ) |
| inline

Definition at line 17 of file oSphereLens.I.

## ◆ OSphereLens() [2/2]

OSphereLens::OSphereLens | ( | const OSphereLens & | copy | ) |
| inline

Definition at line 24 of file oSphereLens.I.

## Member Function Documentation

## ◆ force_init_type()

virtual TypeHandle OSphereLens::force_init_type | ( |  | ) |
| inline virtual

Reimplemented from Lens.

Definition at line 55 of file oSphereLens.h.

## ◆ get_class_type()

static TypeHandle OSphereLens::get_class_type | ( |  | ) |
| inline static

Definition at line 56 of file oSphereLens.h.

## ◆ get_type()

virtual TypeHandle OSphereLens::get_type | ( |  | ) | const
| inline virtual

Reimplemented from Lens.

Definition at line 52 of file oSphereLens.h.

## ◆ init_type()

static void OSphereLens::init_type | ( |  | ) |
| inline static

Definition at line 59 of file oSphereLens.h.

## ◆ operator=()

void OSphereLens::operator= | ( | const OSphereLens & | copy | ) |
| inline

Definition at line 31 of file oSphereLens.I.

The documentation for this class was generated from the following files:

- panda/src/distort/oSphereLens.h
- panda/src/distort/oSphereLens.cxx
- panda/src/distort/oSphereLens.I