71 template<
class Archive>
72 void serialize(Archive & ar,
const unsigned int version)
95 template<
class Archive>
96 void serialize(Archive & ar,
const unsigned int version)
110 template<
class Archive>
111 void serialize(Archive & ar,
const unsigned int version)
130 template<
class Archive>
131 void serialize(Archive & ar,
const unsigned int version)
149 template<
class Archive>
152 ar &
static_cast<int&
>(t);
165 for (
int i = 0; i < 8; i++) {
169 for (
int i = 0; i < 8; i++) {
205 return mesh->name == name;
208 return (it !=
meshes.end()) ? *it :
nullptr;
270 if (texCoordIndex < 8) {
284 if (colorIndex < 8) {
295 static_cast<uint8_t
>(modelVertex.
colors[colorIndex].
x * 255.0f),
296 static_cast<uint8_t
>(modelVertex.
colors[colorIndex].
y * 255.0f),
297 static_cast<uint8_t
>(modelVertex.
colors[colorIndex].
z * 255.0f),
298 static_cast<uint8_t
>(modelVertex.
colors[colorIndex].
w * 255.0f)
306 static_cast<uint8_t
>(modelVertex.
colors[colorIndex].
z * 255.0f),
307 static_cast<uint8_t
>(modelVertex.
colors[colorIndex].
y * 255.0f),
308 static_cast<uint8_t
>(modelVertex.
colors[colorIndex].
x * 255.0f),
309 static_cast<uint8_t
>(modelVertex.
colors[colorIndex].
w * 255.0f)
327 virtual std::unique_ptr<ModelData>
loadModel(
const std::string &path) = 0;
347 std::vector<unsigned char>& outData)
const = 0;
BOOST_CLASS_VERSION(FCT::ModelInfo::MeshInfo, 1)
virtual bool getEmbeddedTextureData(const std::string &modelPath, int textureIndex, std::vector< unsigned char > &outData) const =0
获取内嵌纹理数据
virtual std::set< std::string > resolveTexturePaths(const std::string &modelPath) const =0
解析模型依赖的纹理位置
std::set< std::string > getModelSpecificDependencies(const std::string &modelPath) const
virtual std::unique_ptr< ModelData > loadModel(const std::string &path)=0
std::set< std::string > getSupportedExtensions() const
virtual std::set< std::string > getPlatformSupportedExtensions() const =0
virtual ModelInfo::SceneInfo loadModelInfo(const std::string &path)=0
std::set< std::string > resolveModePaths(const std::string &modelPath)
解析模型路径,获取模型文件的所有依赖路径
constexpr Format getFormat() const noexcept
constexpr ModelVertexAttribute getModelAttribute() const noexcept
void setAttribute(VtxType type, const T &value) noexcept
void setVertexAttributeFromModel(Vertex &vertex, size_t elementIndex, const VertexElement &element, const ModelVertex &modelVertex)
void serialize(Archive &ar, FCT::ModelInfo::TextureType &t, const unsigned int version)
ModelMesh * findMesh(const std::string &name)
std::vector< ModelObject * > objects
std::vector< ModelMaterial * > materials
std::vector< ModelMesh * > meshes
void serialize(Archive &ar, const unsigned int version)
friend class boost::serialization::access
void serialize(Archive &ar, const unsigned int version)
std::array< bool, 8 > hasTexCoords
friend class boost::serialization::access
std::array< bool, 8 > hasVertexColors
void serialize(Archive &ar, const unsigned int version)
std::vector< TextureInfo > textureInfos
std::vector< MaterialInfo > materialInfos
std::vector< MeshInfo > meshInfos
friend class boost::serialization::access
void serialize(Archive &ar, const unsigned int version)
friend class boost::serialization::access
std::set< TextureType > types
std::vector< uint32_t > indices
std::vector< ModelVertex > vertices
std::vector< ModelObject * > children