14 #ifndef LIGHTLENSNODE_H 15 #define LIGHTLENSNODE_H 38 INLINE
bool has_specular_color()
const;
40 INLINE
bool is_shadow_caster()
const;
41 void set_shadow_caster(
bool caster);
42 void set_shadow_caster(
bool caster,
int buffer_xsize,
int buffer_ysize,
int sort = -10);
44 INLINE
int get_shadow_buffer_sort()
const;
46 INLINE LVecBase2i get_shadow_buffer_size()
const;
47 INLINE
void set_shadow_buffer_size(
const LVecBase2i &size);
52 MAKE_PROPERTY(shadow_caster, is_shadow_caster);
53 MAKE_PROPERTY(shadow_buffer_size, get_shadow_buffer_size, set_shadow_buffer_size);
56 INLINE
void mark_used_by_auto_shader()
const;
60 void clear_shadow_buffers();
61 virtual void setup_shadow_map();
65 bool _has_specular_color;
67 mutable bool _used_by_auto_shader =
false;
77 AtomicAdjust::Integer _attrib_count;
89 virtual void output(std::ostream &out)
const;
90 virtual void write(std::ostream &out,
int indent_level = 0)
const;
102 static void init_type() {
106 Light::get_class_type(),
107 Camera::get_class_type());
110 return get_class_type();
112 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
120 INLINE std::ostream &operator << (std::ostream &out,
const LightLensNode &light) {
virtual Light * as_light()
Cross-casts the node to a Light pointer, if it is one of the four kinds of Light nodes,...
A basic node of the scene graph or data graph.
The abstract interface to all kinds of lights.
This is our own Panda specialization on the default STL map.
A base class for any number of different kinds of lenses, linear and otherwise.
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
virtual void attrib_unref()
This is called when the light is removed from a LightAttrib.
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
virtual void write_datagram(BamWriter *manager, Datagram &dg)
Writes the contents of this object to the datagram for shipping out to a Bam file.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A perspective-type lens: a normal camera.
This is a base class for the GraphicsStateGuardian class, which is itself a base class for the variou...
A derivative of Light and of Camera.
Encapsulates all the communication with a particular instance of a given rendering backend.
virtual void attrib_ref()
This is called when the light is added to a LightAttrib.
A class to retrieve the individual data elements previously stored in a Datagram.
An abstract base class for GraphicsOutput, for all the usual reasons.
TypeHandle is the identifier used to differentiate C++ class types.
A node that can be positioned around in the scene graph to represent a point of view for rendering a ...
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.