historical/toontown-classic.git/panda/include/somethingToEgg.h
2024-01-16 11:20:27 -06:00

76 lines
1.9 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 somethingToEgg.h
* @author drose
* @date 2000-02-15
*/
#ifndef SOMETHINGTOEGG_H
#define SOMETHINGTOEGG_H
#include "pandatoolbase.h"
#include "eggConverter.h"
#include "distanceUnit.h"
#include "animationConvert.h"
class SomethingToEggConverter;
/**
* This is the general base class for a file-converter program that reads some
* model file format and generates an egg file.
*/
class SomethingToEgg : public EggConverter {
public:
SomethingToEgg(const std::string &format_name,
const std::string &preferred_extension = std::string(),
bool allow_last_param = true,
bool allow_stdout = true);
void add_units_options();
void add_animation_options();
void add_merge_externals_options();
protected:
void apply_units_scale(EggData *data);
void apply_parameters(SomethingToEggConverter &converter);
virtual bool handle_args(Args &args);
virtual bool post_command_line();
virtual void post_process_egg_file();
static bool dispatch_animation_convert(const std::string &opt, const std::string &arg, void *var);
Filename _input_filename;
DistanceUnit _input_units;
DistanceUnit _output_units;
AnimationConvert _animation_convert;
std::string _character_name;
double _start_frame;
double _end_frame;
double _frame_inc;
double _neutral_frame;
double _input_frame_rate;
double _output_frame_rate;
bool _got_start_frame;
bool _got_end_frame;
bool _got_frame_inc;
bool _got_neutral_frame;
bool _got_input_frame_rate;
bool _got_output_frame_rate;
bool _merge_externals;
bool _noexist;
bool _allow_errors;
};
#endif