14 #ifndef TEXTUREREFERENCE_H 15 #define TEXTUREREFERENCE_H 74 void output(std::ostream &out)
const;
75 void write(std::ostream &out,
int indent_level = 0)
const;
79 bool get_uv_range(
EggGroupNode *group, Palettizer::RemapUV remap);
80 void update_uv_range(
EggGroupNode *group, Palettizer::RemapUV remap);
83 LTexCoordd &geom_min_uv, LTexCoordd &geom_max_uv);
84 void translate_geom_uvs(
EggPrimitive *geom,
const LTexCoordd &trans)
const;
85 void collect_nominal_uv_range();
86 static void collect_uv(
bool &any_uvs, LTexCoordd &min_uv, LTexCoordd &max_uv,
87 const LTexCoordd &got_min_uv,
88 const LTexCoordd &got_max_uv);
89 static LVector2d translate_uv(
const LTexCoordd &min_uv,
90 const LTexCoordd &max_uv);
96 std::string _tref_name;
97 LMatrix3d _tex_mat, _inv_tex_mat;
104 LTexCoordd _min_uv, _max_uv;
105 EggTexture::WrapMode _wrap_u, _wrap_v;
124 static void init_type() {
125 TypedWritable::init_type();
127 TypedWritable::get_class_type());
130 return get_class_type();
137 INLINE std::ostream &
A base class for any of a number of kinds of geometry primitives: polygons, point lights,...
bool is_equivalent(const TextureReference &other) const
Returns true if all essential properties of this TextureReference are the same as that of the other,...
void from_egg_quick(const TextureReference &other)
Sets up the pointers within the TextureReference to the same egg file pointers indicated by the other...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void set_placement(TexturePlacement *placement)
Sets the particular TexturePlacement that is appropriate for this egg file.
void update_egg()
Updates the egg file with all the relevant information to reference the texture in its new home,...
void apply_properties_to_source()
Applies the texture properties as read from the egg file to the source image's properties.
EggTexture::WrapMode get_wrap_u() const
Returns the specification for the wrapping in the U direction.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void clear_placement()
Removes any reference to a TexturePlacement.
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is the particular reference of a texture filename by an egg file.
A base class for nodes in the hierarchy that are not leaf nodes.
static void register_with_read_factory()
Registers the current object as something that can be read from a Bam file.
EggFile * get_egg_file() const
Returns the EggFile that references this texture.
Defines a texture map that may be applied to geometry.
Base class for objects that can be written to and read from Bam files.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
const LTexCoordd & get_min_uv() const
Returns the minimum UV coordinate in use for the texture by this reference.
const LTexCoordd & get_max_uv() const
Returns the maximum UV coordinate in use for the texture by this reference.
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
This is the primary interface into all the egg data, and the root of the egg file structure.
EggTexture::WrapMode get_wrap_v() const
Returns the specification for the wrapping in the V direction.
SourceTextureImage * get_source() const
Returns the SourceTextureImage that this object refers to.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
TextureImage * get_texture() const
Returns the TextureImage that this object refers to.
const std::string & get_tref_name() const
Returns the name of the EggTexture entry that references this texture.
The name of a file, such as a texture file or an Egg file.
void rebind_egg_data(EggData *data, EggTexture *egg_tex)
After an EggData has previously been released via release_egg_data(), this can be called to indicate ...
An instance of this class is passed to the Factory when requesting it to do its business and construc...
bool operator<(const TextureReference &other) const
Defines an ordering of TextureReference pointers in alphabetical order by their tref name.
This corresponds to a particular assignment of a TextureImage with a PaletteGroup,...
void from_egg(EggFile *egg_file, EggData *data, EggTexture *egg_tex)
Sets up the TextureReference using information extracted from an egg file.
This is a texture image reference as it appears in an egg file: the source image of the texture.
void mark_egg_stale()
Marks the egg file that shares this reference as stale.
virtual void write_datagram(BamWriter *writer, Datagram &datagram)
Fills the indicated datagram up with a binary representation of the current object,...
bool has_uvs() const
Returns true if this TextureReference actually uses the texture on geometry, with UV's and everything...
A class to retrieve the individual data elements previously stored in a Datagram.
This represents a single source texture that is referenced by one or more egg files.
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 ...
virtual int complete_pointers(TypedWritable **p_list, BamReader *manager)
Called after the object is otherwise completely read from a Bam file, this function's job is to store...
TexturePlacement * get_placement() const
Returns the particular TexturePlacement that is appropriate for this egg file.
void release_egg_data()
Called to indicate that the EggData previously passed to from_egg() is about to be deallocated,...
This represents a single egg file known to the palettizer.
This is the set of characteristics of a texture that, if different from another texture,...