open_toontown_panda3d/pandatool/src/maya/mayaFile.h

77 lines
2.1 KiB
C++

// Filename: mayaFile.h
// Created by: drose (10Nov99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved
//
// All use of this software is subject to the terms of the Panda 3d
// Software license. You should have received a copy of this license
// along with this source code; you will also find a current copy of
// the license at http://www.panda3d.org/license.txt .
//
// To contact the maintainers of this program write to
// panda3d@yahoogroups.com .
//
////////////////////////////////////////////////////////////////////
#ifndef MAYAFILE_H
#define MAYAFILE_H
#include <pandatoolbase.h>
#include "mayaShaders.h"
#include <eggTextureCollection.h>
class EggData;
class EggGroup;
class EggVertexPool;
class EggNurbsCurve;
class MDagPath;
class MFnNurbsSurface;
class MFnNurbsCurve;
class MFnMesh;
class MPointArray;
class MayaFile {
public:
MayaFile();
~MayaFile();
bool init(const string &program);
bool read(const string &filename);
void make_egg(EggData &data);
private:
bool traverse(EggData &data);
bool process_node(const MDagPath &dag_path, EggData &data);
void get_transform(const MDagPath &dag_path, EggGroup *egg_group);
void make_nurbs_surface(const MDagPath &dag_path, MFnNurbsSurface surface,
EggGroup *group);
EggNurbsCurve *make_trim_curve(MFnNurbsCurve curve,
const string &nurbs_name,
EggGroupNode *egg_group,
int trim_curve_index);
void make_nurbs_curve(const MDagPath &dag_path, MFnNurbsCurve curve,
EggGroup *group);
void make_polyset(const MDagPath &dag_path, MFnMesh mesh,
EggGroup *egg_group,
MayaShader *default_shader = NULL);
EggGroup *get_egg_group(const string &name, EggData &data);
typedef pmap<string, EggGroup *> Groups;
Groups _groups;
public:
double _scale_units;
MayaShaders _shaders;
EggTextureCollection _textures;
};
#endif