Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

Palettizer Class Reference

#include <palettizer.h>

Inheritance diagram for Palettizer:

TypedWritable TypedObject List of all members.

Public Types

enum  RemapUV { RU_never, RU_group, RU_poly, RU_invalid }

Public Member Functions

 Palettizer ()
void report_pi () const
void report_statistics () const
void read_txa_file (const Filename &txa_filename)
void all_params_set ()
void process_command_line_eggs (bool force_texture_read, const Filename &state_filename)
void process_all (bool force_texture_read, const Filename &state_filename)
void optimal_resize ()
void reset_images ()
void generate_images (bool redo_all)
bool read_stale_eggs (bool redo_all)
bool write_eggs ()
EggFileget_egg_file (const string &name)
bool remove_egg_file (const string &name)
PaletteGroupget_palette_group (const string &name)
PaletteGrouptest_palette_group (const string &name) const
PaletteGroupget_default_group ()
TextureImageget_texture (const string &name)
virtual void write_datagram (BamWriter *writer, Datagram &datagram)
virtual int complete_pointers (TypedWritable **p_list, BamReader *manager)
virtual TypeHandle get_type () const

Static Public Member Functions

RemapUV string_remap (const string &str)
void register_with_read_factory ()
TypeHandle get_class_type ()
void init_type ()

Public Attributes

TxaFile _txa_file
string _default_groupname
string _default_groupdir
string _map_dirname
Filename _shadow_dirname
Filename _rel_dirname
int _pal_x_size
int _pal_y_size
int _margin
bool _omit_solitary
double _coverage_threshold
bool _force_power_2
bool _aggressively_clean_mapdir
bool _round_uvs
double _round_unit
double _round_fuzz
RemapUV _remap_uv
RemapUV _remap_char_uv
PNMFileType_color_type
PNMFileType_alpha_type
PNMFileType_shadow_color_type
PNMFileType_shadow_alpha_type

Static Public Attributes

int _pi_version = 10
int _min_pi_version = 8
int _read_pi_version = 0

Protected Member Functions

void fillin (DatagramIterator &scan, BamReader *manager)

Static Protected Member Functions

TypedWritablemake_Palettizer (const FactoryParams &params)

Private Types

typedef pvector< TexturePlacement * > Placements
typedef pmap< string, EggFile * > EggFiles
typedef pvector< EggFile * > CommandLineEggs
typedef pset< TextureImage * > CommandLineTextures
typedef pmap< string, PaletteGroup * > Groups
typedef pmap< string, TextureImage * > Textures

Private Member Functions

void compute_statistics (ostream &out, int indent_level, const Placements &placements) const

Static Private Member Functions

const char * yesno (bool flag)

Private Attributes

EggFiles _egg_files
CommandLineEggs _command_line_eggs
CommandLineTextures _command_line_textures
Groups _groups
Textures _textures
int _num_egg_files
int _num_groups
int _num_textures

Static Private Attributes

TypeHandle _type_handle

Friends

class EggPalettize
class TxaLine

Member Typedef Documentation

typedef pvector<EggFile *> Palettizer::CommandLineEggs [private]
 

Definition at line 124 of file palettizer.h.

typedef pset<TextureImage *> Palettizer::CommandLineTextures [private]
 

Definition at line 127 of file palettizer.h.

typedef pmap<string, EggFile *> Palettizer::EggFiles [private]
 

Definition at line 121 of file palettizer.h.

typedef pmap<string, PaletteGroup *> Palettizer::Groups [private]
 

Definition at line 130 of file palettizer.h.

typedef pvector<TexturePlacement *> Palettizer::Placements [private]
 

Definition at line 117 of file palettizer.h.

typedef pmap<string, TextureImage *> Palettizer::Textures [private]
 

Definition at line 133 of file palettizer.h.


Member Enumeration Documentation

enum Palettizer::RemapUV
 

Enumeration values:
RU_never 
RU_group 
RU_poly 
RU_invalid 

Definition at line 80 of file palettizer.h.


Constructor & Destructor Documentation

Palettizer::Palettizer  ) 
 

Definition at line 100 of file palettizer.cxx.

References _aggressively_clean_mapdir, _alpha_type, _color_type, _coverage_threshold, _force_power_2, _map_dirname, _margin, _omit_solitary, _pal_x_size, _pal_y_size, _remap_char_uv, _remap_uv, _round_fuzz, _round_unit, _round_uvs, _shadow_alpha_type, _shadow_color_type, _shadow_dirname, PNMFileTypeRegistry::get_ptr(), PNMFileTypeRegistry::get_type_from_extension(), NULL, and RU_poly.


Member Function Documentation

void Palettizer::all_params_set  ) 
 

Definition at line 360 of file palettizer.cxx.

References _groups, and PaletteGroup::setup_shadow_images().

Referenced by EggPalettize::run().

int Palettizer::complete_pointers TypedWritable **  p_list,
BamReader manager
[virtual]
 

Reimplemented from TypedWritable.

Definition at line 936 of file palettizer.cxx.

References _alpha_type, _color_type, _egg_files, _groups, _num_egg_files, _num_groups, _num_textures, _shadow_alpha_type, _shadow_color_type, _textures, TypedWritable::complete_pointers(), DCAST_INTO_R, Namable::get_name(), index, NULL, and texture.

void Palettizer::compute_statistics ostream &  out,
int  indent_level,
const Placements placements
const [private]
 

Definition at line 846 of file palettizer.cxx.

References TextureMemoryCounter::add_placement(), and TextureMemoryCounter::report().

Referenced by report_statistics().

void Palettizer::fillin DatagramIterator scan,
BamReader manager
[protected]
 

Reimplemented from TypedWritable.

Definition at line 1012 of file palettizer.cxx.

References _aggressively_clean_mapdir, _coverage_threshold, _force_power_2, _map_dirname, _margin, _num_egg_files, _num_groups, _num_textures, _omit_solitary, _pal_x_size, _pal_y_size, _read_pi_version, _rel_dirname, _remap_char_uv, _remap_uv, _round_fuzz, _round_unit, _round_uvs, _shadow_dirname, TypedWritable::fillin(), FilenameUnifier::get_bam_filename(), DatagramIterator::get_bool(), DatagramIterator::get_float64(), DatagramIterator::get_int32(), DatagramIterator::get_string(), BamReader::read_pointer(), BamReader::read_pointers(), and FilenameUnifier::set_rel_dirname().

Referenced by make_Palettizer().

void Palettizer::generate_images bool  redo_all  ) 
 

Definition at line 603 of file palettizer.cxx.

References _groups, _textures, texture, and PaletteGroup::update_images().

Referenced by EggPalettize::run().

TypeHandle Palettizer::get_class_type void   )  [inline, static]
 

Reimplemented from TypedObject.

Definition at line 156 of file palettizer.h.

References _type_handle.

Referenced by get_type(), register_with_read_factory(), and EggPalettize::run().

PaletteGroup * Palettizer::get_default_group  ) 
 

Definition at line 773 of file palettizer.cxx.

References _default_groupdir, _default_groupname, get_palette_group(), PaletteGroup::has_dirname(), and PaletteGroup::set_dirname().

Referenced by EggFile::from_command_line().

EggFile * Palettizer::get_egg_file const string &  name  ) 
 

Definition at line 697 of file palettizer.cxx.

References _egg_files, and Namable::set_name().

Referenced by EggPalettize::run().

PaletteGroup * Palettizer::get_palette_group const string &  name  ) 
 

Definition at line 737 of file palettizer.cxx.

References _groups, and Namable::set_name().

Referenced by get_default_group(), and TxaFile::parse_group_line().

TextureImage * Palettizer::get_texture const string &  name  ) 
 

Definition at line 791 of file palettizer.cxx.

References _textures, and image.

Referenced by TextureReference::from_egg().

virtual TypeHandle Palettizer::get_type void   )  const [inline, virtual]
 

Reimplemented from TypedWritable.

Definition at line 164 of file palettizer.h.

References get_class_type().

void Palettizer::init_type void   )  [inline, static]
 

Reimplemented from TypedWritable.

Definition at line 159 of file palettizer.h.

References _type_handle, TypedObject::get_class_type(), TypedWritable::init_type(), and register_type().

Referenced by ConfigureFn().

TypedWritable * Palettizer::make_Palettizer const FactoryParams params  )  [static, protected]
 

Definition at line 994 of file palettizer.cxx.

References fillin(), params, and parse_params().

Referenced by register_with_read_factory().

void Palettizer::optimal_resize  ) 
 

Definition at line 570 of file palettizer.cxx.

References _groups, and PaletteGroup::optimal_resize().

Referenced by EggPalettize::run().

void Palettizer::process_all bool  force_texture_read,
const Filename state_filename
 

Definition at line 475 of file palettizer.cxx.

References _command_line_eggs, _command_line_textures, _egg_files, _groups, _textures, _txa_file, EggFile::get_textures(), TxaFile::match_egg(), TxaFile::match_texture(), PaletteGroup::place_all(), EggFile::post_txa_file(), EggFile::pre_txa_file(), EggFile::scan_textures(), texture, and PaletteGroup::update_unknown_textures().

Referenced by EggPalettize::run().

void Palettizer::process_command_line_eggs bool  force_texture_read,
const Filename state_filename
 

Definition at line 381 of file palettizer.cxx.

References _command_line_eggs, _command_line_textures, _egg_files, _groups, _txa_file, EggFile::get_textures(), TxaFile::match_egg(), TxaFile::match_texture(), PaletteGroup::place_all(), EggFile::post_txa_file(), EggFile::pre_txa_file(), EggFile::scan_textures(), texture, and PaletteGroup::update_unknown_textures().

Referenced by EggPalettize::run().

bool Palettizer::read_stale_eggs bool  redo_all  ) 
 

Definition at line 630 of file palettizer.cxx.

References _egg_files, EggFile::choose_placements(), EggFile::has_data(), EggFile::is_stale(), nout, EggFile::read_egg(), EggFile::remove_egg(), and EggFile::scan_textures().

Referenced by EggPalettize::run().

void Palettizer::read_txa_file const Filename txa_filename  ) 
 

Definition at line 305 of file palettizer.cxx.

References _color_type, _groups, _shadow_alpha_type, _shadow_color_type, _txa_file, PaletteGroup::clear_depends(), nout, NULL, TxaFile::read(), PaletteGroup::reset_dependency_level(), PaletteGroup::set_dependency_level(), and PaletteGroup::set_dependency_order().

Referenced by EggPalettize::run().

void Palettizer::register_with_read_factory  )  [static]
 

Definition at line 866 of file palettizer.cxx.

References get_class_type(), BamReader::get_factory(), and make_Palettizer().

Referenced by ConfigureFn().

bool Palettizer::remove_egg_file const string &  name  ) 
 

Definition at line 717 of file palettizer.cxx.

References _egg_files, and EggFile::remove_egg().

Referenced by EggPalettize::run().

void Palettizer::report_pi  )  const
 

Definition at line 129 of file palettizer.cxx.

References _aggressively_clean_mapdir, _alpha_type, _color_type, _coverage_threshold, _egg_files, _force_power_2, _groups, _map_dirname, _margin, _pal_x_size, _pal_y_size, _rel_dirname, _remap_char_uv, _remap_uv, _round_fuzz, _round_unit, _round_uvs, _shadow_alpha_type, _shadow_color_type, _shadow_dirname, _textures, PaletteGroup::get_groups(), Namable::get_name(), PNMFileType::get_suggested_extension(), EggFile::is_surprise(), FilenameUnifier::make_user_filename(), NULL, texture, EggFile::write_description(), PaletteGroup::write_image_info(), EggFile::write_texture_refs(), and yesno().

Referenced by EggPalettize::run().

void Palettizer::report_statistics  )  const
 

Definition at line 247 of file palettizer.cxx.

References _groups, compute_statistics(), PaletteGroup::get_complete_placements(), PaletteGroup::get_groups(), Namable::get_name(), PaletteGroup::get_placements(), PaletteGroups::make_complete(), and PaletteGroups::size().

Referenced by EggPalettize::run().

void Palettizer::reset_images  ) 
 

Definition at line 586 of file palettizer.cxx.

References _groups, and PaletteGroup::reset_images().

Referenced by EggPalettize::run().

Palettizer::RemapUV Palettizer::string_remap const string &  str  )  [static]
 

Definition at line 823 of file palettizer.cxx.

References RU_group, RU_invalid, RU_never, and RU_poly.

Referenced by TxaFile::parse_remap_line().

PaletteGroup * Palettizer::test_palette_group const string &  name  )  const
 

Definition at line 757 of file palettizer.cxx.

References _groups, and NULL.

Referenced by TxaLine::parse().

void Palettizer::write_datagram BamWriter writer,
Datagram datagram
[virtual]
 

Reimplemented from TypedWritable.

Definition at line 879 of file palettizer.cxx.

References _aggressively_clean_mapdir, _alpha_type, _color_type, _coverage_threshold, _egg_files, _force_power_2, _groups, _map_dirname, _margin, _omit_solitary, _pal_x_size, _pal_y_size, _pi_version, _rel_dirname, _remap_char_uv, _remap_uv, _round_fuzz, _round_unit, _round_uvs, _shadow_alpha_type, _shadow_color_type, _shadow_dirname, _textures, Datagram::add_bool(), Datagram::add_float64(), Datagram::add_int32(), Datagram::add_string(), FilenameUnifier::make_bam_filename(), TypedWritable::write_datagram(), and writer().

bool Palettizer::write_eggs  ) 
 

Definition at line 671 of file palettizer.cxx.

References _egg_files, EggFile::has_data(), EggFile::update_egg(), and EggFile::write_egg().

Referenced by EggPalettize::run().

const char * Palettizer::yesno bool  flag  )  [static, private]
 

Definition at line 811 of file palettizer.cxx.

Referenced by report_pi().


Friends And Related Function Documentation

friend class EggPalettize [friend]
 

Definition at line 171 of file palettizer.h.

friend class TxaLine [friend]
 

Definition at line 172 of file palettizer.h.


Member Data Documentation

bool Palettizer::_aggressively_clean_mapdir
 

Definition at line 106 of file palettizer.h.

Referenced by fillin(), Palettizer(), report_pi(), PaletteImage::update_image(), and write_datagram().

PNMFileType* Palettizer::_alpha_type
 

Definition at line 112 of file palettizer.h.

Referenced by complete_pointers(), TextureProperties::fully_define(), Palettizer(), TxaFile::parse_imagetype_line(), report_pi(), and write_datagram().

PNMFileType* Palettizer::_color_type
 

Definition at line 111 of file palettizer.h.

Referenced by complete_pointers(), TextureProperties::fully_define(), Palettizer(), TxaFile::parse_imagetype_line(), read_txa_file(), report_pi(), and write_datagram().

CommandLineEggs Palettizer::_command_line_eggs [private]
 

Definition at line 125 of file palettizer.h.

Referenced by process_all(), process_command_line_eggs(), and EggPalettize::run().

CommandLineTextures Palettizer::_command_line_textures [private]
 

Definition at line 128 of file palettizer.h.

Referenced by process_all(), and process_command_line_eggs().

double Palettizer::_coverage_threshold
 

Definition at line 104 of file palettizer.h.

Referenced by fillin(), Palettizer(), TxaFile::parse_coverage_line(), TextureRequest::pre_txa_file(), report_pi(), and write_datagram().

string Palettizer::_default_groupdir
 

Definition at line 93 of file palettizer.h.

Referenced by get_default_group(), and EggPalettize::run().

string Palettizer::_default_groupname
 

Definition at line 92 of file palettizer.h.

Referenced by get_default_group(), and EggPalettize::run().

EggFiles Palettizer::_egg_files [private]
 

Definition at line 122 of file palettizer.h.

Referenced by complete_pointers(), get_egg_file(), process_all(), process_command_line_eggs(), read_stale_eggs(), remove_egg_file(), report_pi(), write_datagram(), and write_eggs().

bool Palettizer::_force_power_2
 

Definition at line 105 of file palettizer.h.

Referenced by DestTextureImage::DestTextureImage(), fillin(), Palettizer(), report_pi(), and write_datagram().

Groups Palettizer::_groups [private]
 

Definition at line 131 of file palettizer.h.

Referenced by all_params_set(), complete_pointers(), generate_images(), get_palette_group(), optimal_resize(), process_all(), process_command_line_eggs(), read_txa_file(), report_pi(), report_statistics(), reset_images(), test_palette_group(), and write_datagram().

string Palettizer::_map_dirname
 

Definition at line 98 of file palettizer.h.

Referenced by fillin(), Palettizer(), report_pi(), EggPalettize::run(), ImageFile::set_filename(), and write_datagram().

int Palettizer::_margin
 

Definition at line 102 of file palettizer.h.

Referenced by fillin(), Palettizer(), TxaFile::parse_margin_line(), TextureRequest::pre_txa_file(), report_pi(), and write_datagram().

int Palettizer::_min_pi_version = 8 [static]
 

Definition at line 49 of file palettizer.cxx.

Referenced by EggPalettize::run().

int Palettizer::_num_egg_files [private]
 

Definition at line 151 of file palettizer.h.

Referenced by complete_pointers(), and fillin().

int Palettizer::_num_groups [private]
 

Definition at line 152 of file palettizer.h.

Referenced by complete_pointers(), and fillin().

int Palettizer::_num_textures [private]
 

Definition at line 153 of file palettizer.h.

Referenced by complete_pointers(), and fillin().

bool Palettizer::_omit_solitary
 

Definition at line 103 of file palettizer.h.

Referenced by PaletteImage::check_solitary(), fillin(), Palettizer(), EggPalettize::run(), and write_datagram().

int Palettizer::_pal_x_size
 

Definition at line 101 of file palettizer.h.

Referenced by TexturePlacement::determine_size(), fillin(), PaletteImage::PaletteImage(), Palettizer(), TxaFile::parse_palette_line(), report_pi(), and write_datagram().

int Palettizer::_pal_y_size
 

Definition at line 101 of file palettizer.h.

Referenced by TexturePlacement::determine_size(), fillin(), PaletteImage::PaletteImage(), Palettizer(), TxaFile::parse_palette_line(), report_pi(), and write_datagram().

int Palettizer::_pi_version = 10 [static]
 

Definition at line 44 of file palettizer.cxx.

Referenced by EggPalettize::run(), and write_datagram().

int Palettizer::_read_pi_version = 0 [static]
 

Definition at line 52 of file palettizer.cxx.

Referenced by TextureProperties::fillin(), fillin(), ImageFile::fillin(), EggFile::fillin(), and EggPalettize::run().

Filename Palettizer::_rel_dirname
 

Definition at line 100 of file palettizer.h.

Referenced by fillin(), report_pi(), EggPalettize::run(), and write_datagram().

RemapUV Palettizer::_remap_char_uv
 

Definition at line 110 of file palettizer.h.

Referenced by fillin(), TextureReference::get_uv_range(), Palettizer(), TxaFile::parse_remap_line(), report_pi(), TextureReference::update_uv_range(), and write_datagram().

RemapUV Palettizer::_remap_uv
 

Definition at line 110 of file palettizer.h.

Referenced by fillin(), TextureReference::from_egg(), Palettizer(), TxaFile::parse_remap_line(), report_pi(), TextureReference::update_egg(), and write_datagram().

double Palettizer::_round_fuzz
 

Definition at line 109 of file palettizer.h.

Referenced by TexturePlacement::determine_size(), fillin(), Palettizer(), TxaFile::parse_round_line(), report_pi(), and write_datagram().

double Palettizer::_round_unit
 

Definition at line 108 of file palettizer.h.

Referenced by TexturePlacement::determine_size(), fillin(), Palettizer(), TxaFile::parse_round_line(), report_pi(), and write_datagram().

bool Palettizer::_round_uvs
 

Definition at line 107 of file palettizer.h.

Referenced by TexturePlacement::determine_size(), fillin(), Palettizer(), TxaFile::parse_round_line(), report_pi(), EggPalettize::run(), and write_datagram().

PNMFileType* Palettizer::_shadow_alpha_type
 

Definition at line 114 of file palettizer.h.

Referenced by complete_pointers(), ImageFile::make_shadow_image(), Palettizer(), TxaFile::parse_shadowtype_line(), read_txa_file(), report_pi(), and write_datagram().

PNMFileType* Palettizer::_shadow_color_type
 

Definition at line 113 of file palettizer.h.

Referenced by complete_pointers(), PaletteImage::get_image(), ImageFile::make_shadow_image(), Palettizer(), TxaFile::parse_shadowtype_line(), read_txa_file(), PaletteImage::remove_image(), report_pi(), PaletteImage::update_image(), and write_datagram().

Filename Palettizer::_shadow_dirname
 

Definition at line 99 of file palettizer.h.

Referenced by fillin(), ImageFile::make_shadow_image(), Palettizer(), report_pi(), EggPalettize::run(), and write_datagram().

Textures Palettizer::_textures [private]
 

Definition at line 134 of file palettizer.h.

Referenced by complete_pointers(), generate_images(), get_texture(), process_all(), report_pi(), and write_datagram().

TxaFile Palettizer::_txa_file
 

Definition at line 91 of file palettizer.h.

Referenced by process_all(), process_command_line_eggs(), and read_txa_file().

TypeHandle Palettizer::_type_handle [static, private]
 

Reimplemented from TypedWritable.

Definition at line 54 of file palettizer.cxx.

Referenced by get_class_type(), and init_type().


The documentation for this class was generated from the following files:
Generated on Fri Apr 18 01:01:20 2003 for Panda-Tool by doxygen1.3