15 #include "animPreloadTable.h"
19 #include "datagramIterator.h"
20 #include "bamReader.h"
21 #include "bamWriter.h"
61 return (
int)_anims.
size();
78 record._basename = basename;
79 Anims::const_iterator ai = _anims.find(record);
80 if (ai != _anims.
end()) {
81 return int(ai - _anims.
begin());
105 nassertv(n >= 0 && n < (
int)_anims.
size());
106 _anims.erase(_anims.
begin() + n);
119 add_anim(
const string &basename, PN_stdfloat base_frame_rate,
int num_frames) {
121 record._basename = basename;
122 record._base_frame_rate = base_frame_rate;
123 record._num_frames = num_frames;
139 Anims::const_iterator ai;
140 for (ai = other->_anims.
begin(); ai != other->_anims.
end(); ++ai) {
151 void AnimPreloadTable::
152 output(ostream &out)
const {
154 out <<
"AnimPreloadTable, " << _anims.
size() <<
" animation records.";
162 void AnimPreloadTable::
163 write(ostream &out,
int indent_level)
const {
165 indent(out, indent_level)
166 <<
"AnimPreloadTable, " << _anims.
size() <<
" animation records:\n";
167 Anims::const_iterator ai;
168 for (ai = _anims.
begin(); ai != _anims.
end(); ++ai) {
169 const AnimRecord &record = (*ai);
170 indent(out, indent_level + 2)
171 << record._basename <<
": " << record._num_frames <<
" frames at "
172 << record._base_frame_rate <<
" fps\n";
197 Anims::const_iterator ai;
198 for (ai = _anims.
begin(); ai != _anims.
end(); ++ai) {
217 parse_params(params, scan, manager);
218 me->fillin(scan, manager);
230 void AnimPreloadTable::
234 for (
int i = 0; i < num_anims; ++i) {
static TypedWritable * make_from_bam(const FactoryParams ¶ms)
Factory method to generate an AnimPreloadTable object.
This table records data about a list of animations for a particular model, such as number of frames a...
void add_string(const string &str)
Adds a variable-length string to the datagram.
PN_stdfloat get_stdfloat()
Extracts either a 32-bit or a 64-bit floating-point number, according to Datagram::set_stdfloat_doubl...
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
void clear()
Removes all elements from the ordered vector.
Base class for objects that can be written to and read from Bam files.
iterator_0 begin()
Returns the iterator that marks the first element in the ordered vector.
int get_num_anims() const
Returns the number of animation records in the table.
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
iterator_0 end()
Returns the iterator that marks the end of the ordered vector.
PN_int32 get_int32()
Extracts a signed 32-bit integer.
void reserve(size_type_0 n)
Informs the vector of a planned change in size; ensures that the capacity of the vector is greater th...
string get_string()
Extracts a variable-length string.
PN_uint16 get_uint16()
Extracts an unsigned 16-bit integer.
void add_stdfloat(PN_stdfloat value)
Adds either a 32-bit or a 64-bit floating-point number, according to set_stdfloat_double().
void add_anim(const string &basename, PN_stdfloat base_frame_rate, int num_frames)
Adds a new animation record to the table.
void add_anims_from(const AnimPreloadTable *other)
Copies the animation records from the other table into this one.
An instance of this class is passed to the Factory when requesting it to do its business and construc...
virtual void write_datagram(BamWriter *manager, Datagram &dg)
Function to write the important information in the particular object to a Datagram.
void push_back(const value_type_0 &key)
Adds the new element to the end of the vector without regard for proper sorting.
void register_factory(TypeHandle handle, CreateFunc *func)
Registers a new kind of thing the Factory will be able to create.
void add_uint16(PN_uint16 value)
Adds an unsigned 16-bit integer to the datagram.
This base class provides basic reference counting, but also can be used with a CopyOnWritePointer to ...
static WritableFactory * get_factory()
Returns the global WritableFactory for generating TypedWritable objects.
void remove_anim(int n)
Removes the nth animation records from the table.
size_type_0 size() const
Returns the number of elements in the ordered vector.
void clear_anims()
Removes all animation records from the table.
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. ...
int find_anim(const string &basename) const
Returns the index number in the table of the animation record with the indicated name, or -1 if the name is not present.
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 void register_with_read_factory()
Factory method to generate an AnimPreloadTable object.