15 #include "cullBinAttrib.h"
16 #include "bamReader.h"
17 #include "bamWriter.h"
19 #include "datagramIterator.h"
22 int CullBinAttrib::_attrib_slot;
36 make(const
string &bin_name,
int draw_order) {
38 attrib->_bin_name = bin_name;
39 attrib->_draw_order = draw_order;
40 return return_new(attrib);
61 output(ostream &out)
const {
62 out << get_type() <<
":";
63 if (_bin_name.empty()) {
66 out << _bin_name <<
"," << _draw_order;
88 DCAST_INTO_R(ta, other, 0);
89 if (_draw_order != ta->_draw_order) {
90 return _draw_order - ta->_draw_order;
92 return strcmp(_bin_name.c_str(), ta->_bin_name.c_str());
105 size_t CullBinAttrib::
106 get_hash_impl()
const {
152 parse_params(params, scan, manager);
153 attrib->fillin(scan, manager);
167 RenderAttrib::fillin(scan, manager);
void add_string(const string &str)
Adds a variable-length string to the datagram.
This is the base class for a number of render attributes (other than transform) that may be set on sc...
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
Base class for objects that can be written to and read from Bam files.
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
PN_int32 get_int32()
Extracts a signed 32-bit integer.
string get_string()
Extracts a variable-length string.
static void register_with_read_factory()
Tells the BamReader how to create objects of type CullBinAttrib.
static size_t add_hash(size_t start, const Key &key)
Adds the indicated key into a running hash.
virtual void write_datagram(BamWriter *manager, Datagram &dg)
Writes the contents of this object to the datagram for shipping out to a Bam file.
An instance of this class is passed to the Factory when requesting it to do its business and construc...
void register_factory(TypeHandle handle, CreateFunc *func)
Registers a new kind of thing the Factory will be able to create.
Assigns geometry to a particular bin by name.
static WritableFactory * get_factory()
Returns the global WritableFactory for generating TypedWritable objects.
void add_int32(PN_int32 value)
Adds a signed 32-bit integer to the datagram.
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 ...
static size_t add_hash(size_t start, const Key &key)
Adds the elements of the indicated key into a running hash.
virtual void write_datagram(BamWriter *manager, Datagram &dg)
Writes the contents of this object to the datagram for shipping out to a Bam file.