15 #ifndef TEXMATRIXATTRIB_H
16 #define TEXMATRIXATTRIB_H
18 #include "pandabase.h"
21 #include "renderAttrib.h"
22 #include "textureStage.h"
23 #include "transformState.h"
24 #include "pointerTo.h"
36 INLINE TexMatrixAttrib(
const TexMatrixAttrib ©);
39 virtual ~TexMatrixAttrib();
50 bool is_empty()
const;
53 int get_num_stages()
const;
55 MAKE_SEQ(get_stages, get_num_stages, get_stage);
60 CPT(TransformState) get_transform(
TextureStage *stage)
const;
63 INLINE
int get_geom_rendering(
int geom_rendering)
const;
66 virtual void output(ostream &out)
const;
69 virtual int compare_to_impl(
const RenderAttrib *other)
const;
70 virtual size_t get_hash_impl()
const;
76 INLINE
void check_stage_list()
const;
77 void rebuild_stage_list();
84 INLINE
bool operator < (
const StageNode &other)
const;
87 CPT(TransformState) _transform;
91 class CompareTextureStagePointer {
93 INLINE
bool operator () (
const TexMatrixAttrib::StageNode &a,
const TexMatrixAttrib::StageNode &b)
const;
102 static int get_class_slot() {
105 virtual int get_slot()
const {
106 return get_class_slot();
110 static void register_with_read_factory();
122 static void init_type() {
123 RenderAttrib::init_type();
124 register_type(_type_handle,
"TexMatrixAttrib",
125 RenderAttrib::get_class_type());
126 _attrib_slot =
register_slot(_type_handle, 100, make_default);
129 return get_class_type();
131 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
135 static int _attrib_slot;
138 #include "texMatrixAttrib.I"
static int register_slot(TypeHandle type_handle, int sort, RenderAttribRegistry::MakeDefaultFunc *make_default_func)
Adds the indicated TypeHandle to the registry, if it is not there already, and returns a unique slot ...
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 ...
This is our own Panda specialization on the default STL list.
virtual void write_datagram(BamWriter *manager, Datagram &dg)
Writes the contents of this object to the datagram for shipping out to a Bam file.
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 is a 4-by-4 transform matrix.
An instance of this class is passed to the Factory when requesting it to do its business and construc...
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
Applies a transform matrix to UV's before they are rendered.
A class to retrieve the individual data elements previously stored in a Datagram. ...
TypeHandle is the identifier used to differentiate C++ class types.
Defines the properties of a named stage of the multitexture pipeline.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...