15 #ifndef TEXTUREPLACEMENT_H
16 #define TEXTUREPLACEMENT_H
18 #include "pandatoolbase.h"
20 #include "omitReason.h"
21 #include "texturePosition.h"
23 #include "typedWritable.h"
85 bool intersects(
int x,
int y,
int x_size,
int y_size);
114 OmitReason _omit_reason;
134 int _margin_override;
135 int _num_textureSwaps;
141 static void init_type() {
142 TypedWritable::init_type();
143 register_type(_type_handle,
"TexturePlacement",
144 TypedWritable::get_class_type());
147 return get_class_type();
int get_x_size() const
Returns the size in the X dimension, in pixels, of the texture image as it must appear in the palette...
This represents a texture filename as it has been resized and copied to the map directory (e...
void not_solitary()
Indicates that the texture, formerly indicated as solitary, is now no longer.
void flag_error_image(PNMImage &image)
Sets the rectangle of the palette image represented by the texture placement to red, to represent a missing texture.
bool determine_size()
Attempts to determine the appropriate size of the texture for the given placement.
The name of this class derives from the fact that we originally implemented it as a layer on top of t...
DestTextureImage * get_dest() const
Returns the DestTextureImage that corresponds to this texture as it was copied to the install directo...
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
bool is_placed() const
Returns true if the texture has been placed on a palette image, false otherwise.
const string & get_name() const
Returns the name of the texture that this placement represents.
This is the particular reference of a texture filename by an egg file.
This represents a particular position of a texture within a PaletteImage.
virtual void write_datagram(BamWriter *writer, Datagram &datagram)
Fills the indicated datagram up with a binary representation of the current object, in preparation for writing to a Bam file.
Base class for objects that can be written to and read from Bam files.
This is the highest level of grouping for TextureImages.
This is a two-component point in space.
int get_placed_y() const
Returns the Y pixel at which the texture has been placed within its PaletteImage. ...
int get_placed_x_size() const
Returns the size in the X dimension, in pixels, of the texture image as it has been placed within the...
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
This is a particular collection of textures, within a PaletteGroup, that all share the same TexturePr...
void place_at(PaletteImage *image, int x, int y)
Assigns the texture to a particular position within the indicated PaletteImage.
int get_y_size() const
Returns the size in the Y dimension, in pixels, of the texture image as it must appear in the palette...
void omit_solitary()
Sets the omit reason (returned by get_omit()) to OR_solitary, indicating that the palettized version ...
static void register_with_read_factory()
Registers the current object as something that can be read from a Bam file.
bool operator()(TexturePlacement *a, TexturePlacement *b) const
Compares two TexturePlacement objects and returns true if the first one is bigger than the second one...
This is a 3-by-3 transform matrix.
void force_replace()
Removes the texture from its particular PaletteImage, but does not remove it from the PaletteGroup...
void mark_unfilled()
Marks the texture as unfilled, so that it will need to be copied into the palette image again...
void compute_tex_matrix(LMatrix3d &transform)
Stores in the indicated matrix the appropriate texture matrix transform for the new placement of the ...
const TextureProperties & get_properties() const
Returns the grouping properties of the image.
OmitReason get_omit_reason() const
Returns the reason the texture has been omitted from a palette image, or OR_none if it has not...
bool is_filled() const
Returns true if the texture has been filled (i.e.
double get_placed_uv_area() const
Returns the total area of the rectangle occupied by the UV minmax box, as it has been placed...
An instance of this class is passed to the Factory when requesting it to do its business and construc...
This corresponds to a particular assignment of a TextureImage with a PaletteGroup, and specifically describes which PaletteImage (if any), and where on the PaletteImage, the TextureImage has been assigned to.
PalettePage * get_page() const
Returns the particular PalettePage on which the texture has been placed.
void add_egg(TextureReference *reference)
Records the fact that a particular egg file is using this particular TexturePlacement.
PaletteGroup * get_group() const
Returns the group that this placement represents.
int get_placed_x() const
Returns the X pixel at which the texture has been placed within its PaletteImage. ...
int get_placed_y_size() const
Returns the size in the Y dimension, in pixels, of the texture image as it has been placed within the...
void remove_egg(TextureReference *reference)
Notes that a particular egg file is no longer using this particular TexturePlacement.
PaletteImage * get_image() const
Returns the particular PaletteImage on which the texture has been placed.
bool is_size_known() const
Returns true if the texture's size is known, false otherwise.
void fill_swapped_image(PNMImage &image, int index)
Fills in the rectangle of the swapped palette image represented by the texture placement with the ima...
This is a single palette image, one of several within a PalettePage, which is in turn one of several ...
bool intersects(int x, int y, int x_size, int y_size)
Returns true if the particular position this texture has been assigned to overlaps the rectangle whos...
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.
void set_dest(DestTextureImage *dest)
Sets the DestTextureImage that corresponds to this texture as it was copied to the install directory...
TypeHandle is the identifier used to differentiate C++ class types.
TextureImage * get_texture() const
Returns the texture that this placement represents.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
double get_uv_area() const
Returns the total area of the rectangle occupied by the UV minmax box, in UV coordinates.
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...
void mark_eggs_stale()
Marks all the egg files that reference this placement stale.
void write_placed(ostream &out, int indent_level=0)
Writes the placement position information on a line by itself.
void fill_image(PNMImage &image)
Fills in the rectangle of the palette image represented by the texture placement with the image pixel...
This is the set of characteristics of a texture that, if different from another texture, prevent the two textures from sharing a PaletteImage.