Panda3D
lensNode.I
Go to the documentation of this file.
1 /**
2  * PANDA 3D SOFTWARE
3  * Copyright (c) Carnegie Mellon University. All rights reserved.
4  *
5  * All use of this software is subject to the terms of the revised BSD
6  * license. You should have received a copy of this license along
7  * with this source code in a file named "LICENSE."
8  *
9  * @file lensNode.I
10  * @author drose
11  * @date 2002-02-26
12  */
13 
14 /**
15  * Sets up the LensNode using a copy of the indicated Lens. If the original
16  * Lens is changed or destroyed, this LensNode is not affected.
17  */
18 INLINE void LensNode::
19 copy_lens(const Lens &lens) {
20  return copy_lens(0, lens);
21 }
22 
23 /**
24  * Copies the indicated lens into the specified slot.
25  */
26 INLINE void LensNode::
27 copy_lens(int index, const Lens &lens) {
28  set_lens(index, lens.make_copy());
29 }
30 
31 /**
32  * Sets up the LensNode using this particular Lens pointer. If the lens is
33  * subsequently modified, the LensNode properties immediately reflect the
34  * change.
35  */
36 INLINE void LensNode::
37 set_lens(Lens *lens) {
38  return set_lens(0, lens);
39 }
40 
41 /**
42  * Returns a pointer to the particular Lens associated with this LensNode, or
43  * NULL if there is not yet a Lens associated. If an index number is
44  * specified, returns the nth lens.
45  */
46 INLINE Lens *LensNode::
47 get_lens(int index) const {
48  nassertr(index >= 0 && index < max_lenses, nullptr); // Sanity check
49 
50  if (index < (int)_lenses.size()) {
51  return _lenses[index]._lens;
52  }
53  return nullptr;
54 }
55 
56 /**
57  * Returns the active flag for the nth lens.
58  */
59 INLINE bool LensNode::
60 get_lens_active(int index) const {
61  nassertr(index >= 0 && index < max_lenses, false);
62 
63  if (index < (int)_lenses.size()) {
64  return _lenses[index]._is_active;
65  }
66  return false;
67 }
68 
69 /**
70  * An alternate way to call set_lens_active(index, true).
71  */
72 INLINE bool LensNode::
73 activate_lens(int index) {
74  return set_lens_active(index, true);
75 }
76 
77 /**
78  * An alternate way to call set_lens_active(index, false).
79  */
80 INLINE bool LensNode::
81 deactivate_lens(int index) {
82  return set_lens_active(index, false);
83 }
84 
85 /**
86  * Returns true if the given point is within the bounds of the lens of the
87  * LensNode (i.e. if the camera can see the point).
88  */
89 INLINE bool LensNode::
90 is_in_view(const LPoint3 &pos) {
91  return is_in_view(0, pos);
92 }
bool is_in_view(const LPoint3 &pos)
Returns true if the given point is within the bounds of the lens of the LensNode (i....
Definition: lensNode.I:90
A base class for any number of different kinds of lenses, linear and otherwise.
Definition: lens.h:41
void set_lens(Lens *lens)
Sets up the LensNode using this particular Lens pointer.
Definition: lensNode.I:37
Lens * get_lens(int index=0) const
Returns a pointer to the particular Lens associated with this LensNode, or NULL if there is not yet a...
Definition: lensNode.I:47
bool activate_lens(int index)
An alternate way to call set_lens_active(index, true).
Definition: lensNode.I:73
bool get_lens_active(int index) const
Returns the active flag for the nth lens.
Definition: lensNode.I:60
bool set_lens_active(int index, bool active)
Sets the active flag for the nth lens.
Definition: lensNode.cxx:99
void copy_lens(const Lens &lens)
Sets up the LensNode using a copy of the indicated Lens.
Definition: lensNode.I:19
bool deactivate_lens(int index)
An alternate way to call set_lens_active(index, false).
Definition: lensNode.I:81