15 #ifndef PROJECTIONSCREEN_H
16 #define PROJECTIONSCREEN_H
18 #include "pandabase.h"
20 #include "pandaNode.h"
24 #include "internalName.h"
25 #include "pointerTo.h"
68 void set_projector(
const NodePath &projector);
69 INLINE
const NodePath &get_projector()
const;
71 INLINE
void clear_undist_lut();
72 INLINE
void set_undist_lut(
const PfmFile &undist_lut);
73 INLINE
bool has_undist_lut()
const;
74 INLINE
const PfmFile &get_undist_lut()
const;
77 const string &screen_name,
78 int num_x_verts,
int num_y_verts,
79 PN_stdfloat distance, PN_stdfloat fill_ratio);
80 void regenerate_screen(
const NodePath &projector,
const string &screen_name,
81 int num_x_verts,
int num_y_verts, PN_stdfloat distance,
82 PN_stdfloat fill_ratio);
85 INLINE
void set_texcoord_name(
const string &texcoord_name);
86 INLINE
string get_texcoord_name()
const;
88 INLINE
void set_invert_uvs(
bool invert_uvs);
89 INLINE
bool get_invert_uvs()
const;
91 INLINE
void set_texcoord_3d(
bool texcoord_3d);
92 INLINE
bool get_texcoord_3d()
const;
94 INLINE
void set_vignette_on(
bool vignette_on);
95 INLINE
bool get_vignette_on()
const;
97 INLINE
void set_vignette_color(
const LColor &vignette_color);
98 INLINE
const LColor &get_vignette_color()
const;
99 INLINE
void set_frame_color(
const LColor &frame_color);
100 INLINE
const LColor &get_frame_color()
const;
102 INLINE
void set_auto_recompute(
bool auto_recompute);
103 INLINE
bool get_auto_recompute()
const;
106 INLINE
const UpdateSeq &get_last_screen()
const;
107 bool recompute_if_stale();
108 bool recompute_if_stale(
const NodePath &this_np);
111 void do_recompute(
const NodePath &this_np);
115 void recompute_geom(
Geom *geom,
const LMatrix4 &rel_mat);
120 LMatrix4 &rel_mat,
bool &computed_rel_mat);
123 LMatrix4 &rel_mat,
bool &computed_rel_mat);
127 bool &computed_rel_mat);
133 bool _has_undist_lut;
135 PT(InternalName) _texcoord_name;
143 bool _computed_rel_top_mat;
147 bool _auto_recompute;
153 static void init_type() {
154 PandaNode::init_type();
155 register_type(_type_handle,
"ProjectionScreen",
156 PandaNode::get_class_type());
159 return get_class_type();
161 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
167 #include "projectionScreen.I"
A basic node of the scene graph or data graph.
A base class for any number of different kinds of lenses, linear and otherwise.
A node that contains a Lens.
This collects together the pieces of data that are accumulated for each node while walking the scene ...
virtual PandaNode * make_copy() const
Returns a newly-allocated PandaNode that is a shallow copy of this one.
This is a class designed to support low-overhead traversals of the complete scene graph...
Defines a pfm file, a 2-d table of floating-point numbers, either 3-component or 1-component, or with a special extension, 2- or 4-component.
This is a 4-by-4 transform matrix.
A container for geometry primitives.
A ProjectionScreen implements a simple system for projective texturing.
This is the base class for all three-component vectors and points.
TypeHandle is the identifier used to differentiate C++ class types.
This is a sequence number that increments monotonically.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling...
A node that holds Geom objects, renderable pieces of geometry.
virtual bool cull_callback(CullTraverser *trav, CullTraverserData &data)
This function will be called during the cull traversal to perform any additional operations that shou...