74 lines
2.1 KiB
C++
74 lines
2.1 KiB
C++
/**
|
|
* PANDA 3D SOFTWARE
|
|
* Copyright (c) Carnegie Mellon University. All rights reserved.
|
|
*
|
|
* All use of this software is subject to the terms of the revised BSD
|
|
* license. You should have received a copy of this license along
|
|
* with this source code in a file named "LICENSE."
|
|
*
|
|
* @file eggTextureCards.h
|
|
* @author drose
|
|
* @date 2001-02-21
|
|
*/
|
|
|
|
#ifndef EGGTEXTURECARDS_H
|
|
#define EGGTEXTURECARDS_H
|
|
|
|
#include "pandatoolbase.h"
|
|
|
|
#include "eggWriter.h"
|
|
#include "eggTexture.h"
|
|
#include "luse.h"
|
|
#include "vector_string.h"
|
|
|
|
class EggVertexPool;
|
|
class EggVertex;
|
|
|
|
/**
|
|
* Generates an egg file featuring a number of polygons, one for each named
|
|
* texture. This is a support program for getting textures through egg-
|
|
* palettize.
|
|
*/
|
|
class EggTextureCards : public EggWriter {
|
|
public:
|
|
EggTextureCards();
|
|
|
|
protected:
|
|
virtual bool handle_args(Args &args);
|
|
|
|
static bool dispatch_wrap_mode(const std::string &opt, const std::string &arg, void *var);
|
|
static bool dispatch_filter_type(const std::string &opt, const std::string &arg, void *var);
|
|
static bool dispatch_quality_level(const std::string &opt, const std::string &arg, void *var);
|
|
static bool dispatch_format(const std::string &opt, const std::string &arg, void *var);
|
|
|
|
private:
|
|
bool scan_texture(const Filename &filename, LVecBase4d &geometry,
|
|
int &num_channels);
|
|
void make_vertices(const LPoint4d &geometry, EggVertexPool *vpool,
|
|
EggVertex *&v1, EggVertex *&v2, EggVertex *&v3, EggVertex *&v4);
|
|
|
|
public:
|
|
void run();
|
|
|
|
LVecBase4d _polygon_geometry;
|
|
LVecBase2d _pixel_scale;
|
|
bool _got_pixel_scale;
|
|
vector_string _suffixes;
|
|
LColor _polygon_color;
|
|
vector_string _texture_names;
|
|
EggTexture::WrapMode _wrap_mode;
|
|
EggTexture::WrapMode _wrap_u;
|
|
EggTexture::WrapMode _wrap_v;
|
|
EggTexture::FilterType _minfilter;
|
|
EggTexture::FilterType _magfilter;
|
|
bool _got_aniso_degree;
|
|
int _aniso_degree;
|
|
EggTexture::QualityLevel _quality_level;
|
|
EggTexture::Format _format;
|
|
EggTexture::Format _format_1, _format_2, _format_3, _format_4;
|
|
bool _apply_bface;
|
|
double _frame_rate;
|
|
bool _noexist;
|
|
};
|
|
|
|
#endif
|