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...
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.
bool empty() const
Returns true if the ordered vector is empty, false otherwise.
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 ...