82 lines
2.0 KiB
C++
82 lines
2.0 KiB
C++
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
#ifndef DRACO_MAYA_DRACO_MAYA_PLUGIN_H_
|
|
#define DRACO_MAYA_DRACO_MAYA_PLUGIN_H_
|
|
|
|
#include <fstream>
|
|
|
|
#include "draco/compression/decode.h"
|
|
#include "draco/compression/encode.h"
|
|
|
|
#ifdef DRACO_MAYA_PLUGIN
|
|
|
|
// If compiling with Visual Studio.
|
|
#if defined(_MSC_VER)
|
|
#define EXPORT_API __declspec(dllexport)
|
|
#else
|
|
// Other platforms don't need this.
|
|
#define EXPORT_API
|
|
#endif // defined(_MSC_VER)
|
|
|
|
namespace draco {
|
|
namespace maya {
|
|
|
|
enum class EncodeResult {
|
|
OK = 0,
|
|
KO_WRONG_INPUT = -1,
|
|
KO_MESH_ENCODING = -2,
|
|
KO_FILE_CREATION = -3
|
|
};
|
|
enum class DecodeResult {
|
|
OK = 0,
|
|
KO_GEOMETRY_TYPE_INVALID = -1,
|
|
KO_TRIANGULAR_MESH_NOT_FOUND = -2,
|
|
KO_MESH_DECODING = -3
|
|
};
|
|
|
|
extern "C" {
|
|
struct EXPORT_API Drc2PyMesh {
|
|
Drc2PyMesh()
|
|
: faces_num(0),
|
|
faces(nullptr),
|
|
vertices_num(0),
|
|
vertices(nullptr),
|
|
normals_num(0),
|
|
normals(nullptr),
|
|
uvs_num(0),
|
|
uvs_real_num(0),
|
|
uvs(nullptr) {}
|
|
int faces_num;
|
|
int *faces;
|
|
int vertices_num;
|
|
float *vertices;
|
|
int normals_num;
|
|
float *normals;
|
|
int uvs_num;
|
|
int uvs_real_num;
|
|
float *uvs;
|
|
};
|
|
|
|
EXPORT_API DecodeResult drc2py_decode(char *data, unsigned int length,
|
|
Drc2PyMesh **res_mesh);
|
|
EXPORT_API void drc2py_free(Drc2PyMesh **res_mesh);
|
|
EXPORT_API EncodeResult drc2py_encode(Drc2PyMesh *in_mesh, char *file_path);
|
|
} // extern "C"
|
|
|
|
} // namespace maya
|
|
} // namespace draco
|
|
|
|
#endif // DRACO_MAYA_PLUGIN
|
|
|
|
#endif // DRACO_MAYA_DRACO_MAYA_PLUGIN_H_
|