15 #include "vertexTransform.h"
16 #include "bamReader.h"
17 #include "bamWriter.h"
19 #include "transformTable.h"
22 UpdateSeq VertexTransform::_next_modified;
44 nassertv(_tables.
empty());
59 nassertv(&result != &previous);
62 result.multiply(me, previous);
85 void VertexTransform::
86 output(ostream &out)
const {
95 void VertexTransform::
96 write(ostream &out,
int indent_level)
const {
97 indent(out, indent_level)
101 mat.write(out, indent_level + 2);
120 CDWriter cdatag(_global_cycler,
true, current_thread);
122 cdatag->_modified = _next_modified;
124 return _next_modified;
135 void VertexTransform::
136 mark_modified(
Thread *current_thread) {
137 CDWriter cdata(_cycler,
true, current_thread);
140 Palettes::iterator pi;
141 for (pi = _tables.
begin(); pi != _tables.
end(); ++pi) {
142 (*pi)->update_modified(cdata->_modified, current_thread);
164 void VertexTransform::
176 return new CData(*
this);
185 void VertexTransform::CData::
196 int VertexTransform::CData::
210 void VertexTransform::CData::
This class maintains different copies of a page of data between stages of the graphics pipeline (or a...
bool empty() const
Returns true if the ordered vector is empty, false otherwise.
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.
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.
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.
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...
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 a 4-by-4 transform matrix.
virtual int complete_pointers(TypedWritable **p_list, BamReader *manager)
Receives an array of pointers, one for each time manager->read_pointer() was called in fillin()...
This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_writ...
void accumulate(const LMatrix4f &other, float weight)
Computes (*this) += other * weight.
A thread; that is, a lightweight process.
A class to retrieve the individual data elements previously stored in a Datagram. ...
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 ...