67   nassertv(!mat.is_nan());
    69   if (mat.almost_equal(LMatrix4::ident_mat())) {
    73   _position = _position * mat;
    77   LVector3 radius_v = LVector3(_radius, 0.0f, 0.0f) * mat;
    78   _radius = length(radius_v);
    79   mark_internal_bounds_stale();
    91   PN_stdfloat variation= 0.0;
    98   if (_flicker_type == FRANDOM) {
   100     variation = (rand()%100);  
   103       pgraph_cat.info() << 
"Random Variation: " << variation << std::endl;
   104   } 
else if (_flicker_type == FSIN) {
   106     variation = sinf(now*_sin_freq);
   108       pgraph_cat.info() << 
"Variation: " << variation << std::endl;
   112   } 
else if (_flicker_type == FCUSTOM) {
   137   pgraph_cat.debug() << 
"Color R:" << r << 
"; G:" << g << 
"; B:" << b << std::endl;
   138   return LColor(r,g,b,1.0);
   155   if (_enabled != other._enabled) {
   156     return _enabled ? 1 :-1;
   159   if (_radius != other._radius) {
   160     return _radius < other._radius ? -1 :1;
   162   LVecBase3 position = 
get_pos();
   163   LVecBase3 other_position = other.
get_pos();
   164   if (position != other_position) {
   165     return position < other_position ? -1 :1;
   170   if (color != other_color) {
   171     return color < other_color ? -1 :1;
   174   if (_attenuation_type != other._attenuation_type) {
   175     return _attenuation_type < other._attenuation_type ? -1 :1;
   178   if (_a0 != other._a0) {
   179     return _a0 < other._a0 ? -1 :1;
   182   if (_a1 != other._a1) {
   183     return _a1 < other._a1 ? -1 :1;
   186   if (_a2 != other._a2) {
   187     return _a2 < other._a2 ? -1 :1;
   190   if (_flickering != other._flickering) {
   191     return _flickering ? 1 :-1;
   194   if (_flicker_type != other._flicker_type) {
   195     return _flicker_type < other._flicker_type ? -1 :1;
   198   if (_offset != other._offset) {
   199     return _offset < other._offset ? -1 :1;
   202   if (_scale != other._scale) {
   203     return _scale < other._scale ? -1 :1;
   206   if (_step_size != other._step_size) {
   207     return _step_size < other._step_size ? -1 :1;
   210   if (_sin_freq != other._sin_freq) {
   211     return _sin_freq < other._sin_freq ? -1 :1;
   236   _position.write_datagram(dg);
   238   color.set(_color[0], _color[1], _color[2]);
   239   color.write_datagram(dg);
   255   light->fillin(scan, manager);
   266   PandaNode::fillin(scan, manager);
   267   _position.read_datagram(scan);
   269   color.read_datagram(scan);
   280 output(std::ostream &out)
 const {
   281   out << get_type() << 
":";
 virtual void write_datagram(BamWriter *manager, Datagram &dg)
Writes the contents of this object to the datagram for shipping out to a Bam file.
 
static ClockObject * get_global_clock()
Returns a pointer to the global ClockObject.
 
virtual void xform(const LMatrix4 &mat)
Transforms the contents of this node by the indicated matrix, if it means anything to do so.
 
A basic node of the scene graph or data graph.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
PN_stdfloat get_stdfloat()
Extracts either a 32-bit or a 64-bit floating-point number, according to Datagram::set_stdfloat_doubl...
 
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.
 
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
 
PolylightNode(const std::string &name)
Use PolylightNode() to construct a new PolylightNode object.
 
bool set_flicker_type(Flicker_Type type)
Flicker type can be FRANDOM or FSIN At a later point there might be a FCUSTOM Custom flicker will be ...
 
PN_stdfloat get_radius() const
Get radius of the spherical light volume.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
Base class for objects that can be written to and read from Bam files.
 
int compare_to(const PolylightNode &other) const
Returns a number less than zero if this PolylightNode sorts before the other one, greater than zero i...
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
 
static void register_with_read_factory()
Tells the BamReader how to create objects of type PolylightNode.
 
void set_pos(const LPoint3 &position)
Set this light's position.
 
virtual PandaNode * make_copy() const
Returns a newly-allocated Node that is a shallow copy of this one.
 
void add_stdfloat(PN_stdfloat value)
Adds either a 32-bit or a 64-bit floating-point number, according to set_stdfloat_double().
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
void parse_params(const FactoryParams ¶ms, DatagramIterator &scan, BamReader *&manager)
Takes in a FactoryParams, passed from a WritableFactory into any TypedWritable's make function,...
 
LPoint3 get_pos() const
Returns position as a LPoint3.
 
get_frame_time
Returns the time in seconds as of the last time tick() was called (typically, this will be as of the ...
 
bool set_attenuation(Attenuation_Type type)
Set ALINEAR or AQUADRATIC attenuation.
 
An instance of this class is passed to the Factory when requesting it to do its business and construc...
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
void register_factory(TypeHandle handle, CreateFunc *func, void *user_data=nullptr)
Registers a new kind of thing the Factory will be able to create.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
LColor flicker() const
If flickering is on, the do_poly_light function in PolylightNodeEffect will compute this light's colo...
 
static WritableFactory * get_factory()
Returns the global WritableFactory for generating TypedWritable objects.
 
void set_color(const LColor &color)
Set the light's color...
 
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 ...
 
LColor get_color() const
Returns the light's color as LColor.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.