18 #include "pandabase.h"
20 #include "referenceCount.h"
22 #include "cycleData.h"
23 #include "cycleDataReader.h"
24 #include "cycleDataLockedReader.h"
25 #include "cycleDataWriter.h"
26 #include "pipelineCycler.h"
27 #include "updateSeq.h"
42 class EXPCL_PANDA_PGRAPH
Light {
45 INLINE Light(
const Light ©);
49 virtual bool is_ambient_light()
const;
51 INLINE
const LColor &get_color()
const;
54 virtual PN_stdfloat get_exponent()
const;
55 virtual const LColor &get_specular_color()
const;
56 virtual const LVecBase3 &get_attenuation()
const;
58 INLINE
void set_priority(
int priority);
59 INLINE
int get_priority()
const;
60 virtual int get_class_priority()
const=0;
63 virtual void output(ostream &out)
const=0;
64 virtual void write(ostream &out,
int indent_level)
const=0;
68 virtual bool get_vector_to_light(
LVector3 &result,
69 const LPoint3 &from_object_point,
77 virtual void fill_viz_geom(
GeomNode *viz_geom);
78 INLINE
void mark_viz_stale();
88 CP_directional_priority,
100 class EXPCL_PANDA_PGRAPH CData :
public CycleData {
103 INLINE CData(
const CData ©);
108 return Light::get_class_type();
114 bool _viz_geom_stale;
130 static void init_type() {
131 ReferenceCount::init_type();
132 register_type(_type_handle,
"Light",
133 ReferenceCount::get_class_type());
136 return get_class_type();
143 INLINE ostream &operator << (ostream &out,
const Light &light) {
A basic node of the scene graph or data graph.
The abstract interface to all kinds of lights.
This is the base class for all three-component vectors and points.
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.
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 ...
This template class calls PipelineCycler::read_unlocked(), and then provides a transparent read-only ...
This is a 4-by-4 transform matrix.
This template class calls PipelineCycler::read() in the constructor and PipelineCycler::release_read(...
This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_writ...
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...
A class to retrieve the individual data elements previously stored in a Datagram. ...
virtual void write_datagram(BamWriter *, Datagram &) const
Writes the contents of this object to the datagram for shipping out to a Bam file.
TypeHandle is the identifier used to differentiate C++ class types.
This is a sequence number that increments monotonically.
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.