18 #include "pandabase.h" 20 #include "lightLensNode.h" 47 virtual void write(ostream &out,
int indent_level)
const;
50 const LPoint3 &from_object_point,
55 INLINE
void set_exponent(PN_stdfloat exponent);
58 INLINE
void set_specular_color(
const LColor &
color);
61 INLINE
void set_attenuation(
const LVecBase3 &attenuation);
63 virtual int get_class_priority()
const;
65 static PT(
Texture) make_spot(
int pixel_width, PN_stdfloat full_radius,
73 virtual void fill_viz_geom(
GeomNode *viz_geom);
80 class EXPCL_PANDA_PGRAPHNODES CData :
public CycleData {
83 INLINE CData(
const CData ©);
88 return Spotlight::get_class_type();
91 PN_stdfloat _exponent;
101 static void register_with_read_factory();
112 static void init_type() {
113 LightLensNode::init_type();
114 register_type(_type_handle,
"Spotlight",
115 LightLensNode::get_class_type());
118 return get_class_type();
120 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
126 INLINE ostream &operator << (ostream &out,
const Spotlight &light) {
131 #include "spotlight.I" A basic node of the scene graph or data graph.
This is the base class for all three-component vectors and points.
virtual const LColor & get_specular_color() const
Returns the color of specular highlights generated by the light.
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
A single page of data maintained by a PipelineCycler.
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
Base class for objects that can be written to and read from Bam files.
virtual TypeHandle get_parent_type() const
Returns the type of the container that owns the CycleData.
This is a three-component vector distance (as opposed to a three-component point, which represents a ...
This is a three-component point in space (as opposed to a three-component vector, which represents a ...
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
virtual PandaNode * make_copy() const
Returns a newly-allocated Node that is a shallow copy of this one.
This template class calls PipelineCycler::read_unlocked(), and then provides a transparent read-only ...
virtual void write_datagram(BamWriter *, Datagram &) const
Writes the contents of this object to the datagram for shipping out to a Bam file.
This describes the structure of a single array within a Geom data.
This is a 4-by-4 transform matrix.
virtual bool get_vector_to_light(LVector3 &result, const LPoint3 &from_object_point, const LMatrix4 &to_object_space)
Computes the vector from a particular vertex to this light.
An instance of this class is passed to the Factory when requesting it to do its business and construc...
A light originating from a single point in space, and shining in a particular direction, with a cone-shaped falloff.
virtual const LVecBase3 & get_attenuation() const
Returns the terms of the attenuation equation for the light.
This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_writ...
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
virtual void fillin(DatagramIterator &scan, BamReader *manager)
This internal function is intended to be called by each class's make_from_bam() method to read in all...
This is the base class for all three-component vectors and points.
This is a base class for the GraphicsStateGuardian class, which is itself a base class for the variou...
virtual void xform(const LMatrix4 &mat)
Transforms the contents of this PandaNode by the indicated matrix, if it means anything to do so...
virtual PN_stdfloat get_exponent() const
For spotlights, returns the exponent that controls the amount of light falloff from the center of the...
A derivative of Light and of Camera.
A class to retrieve the individual data elements previously stored in a Datagram. ...
TypeHandle is the identifier used to differentiate C++ class types.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
A node that holds Geom objects, renderable pieces of geometry.