MXVK Vulkan Framework 0.24.0
C++20 Vulkan rendering framework for practical 2D and 3D application development with SDL3.
Loading...
Searching...
No Matches
mxvk_model.cpp File Reference
#include "mxvk/mxvk_model.hpp"
#include <cmath>
#include <algorithm>
#include <array>
#include <cstddef>
#include <exception>
#include <filesystem>
#include <fstream>
#include <iostream>
#include <sstream>
#include <zlib.h>

Go to the source code of this file.

Classes

struct  mxvk::anonymous_namespace{mxvk_model.cpp}::MXMODParseResult
struct  mxvk::anonymous_namespace{mxvk_model.cpp}::OBJFaceVertex
struct  mxvk::anonymous_namespace{mxvk_model.cpp}::OBJIndex
struct  mxvk::anonymous_namespace{mxvk_model.cpp}::Vec2
struct  mxvk::anonymous_namespace{mxvk_model.cpp}::Vec3

Namespaces

namespace  mxvk
 Utilities for loading and saving PNG images.
namespace  mxvk::anonymous_namespace{mxvk_model.cpp}

Functions

void mxvk::anonymous_namespace{mxvk_model.cpp}::appendOBJTriangle (std::vector< VKVertex > &vertices, OBJFaceVertex a, OBJFaceVertex b, OBJFaceVertex c)
void mxvk::anonymous_namespace{mxvk_model.cpp}::assignNormalIfMissing (OBJFaceVertex &a, OBJFaceVertex &b, OBJFaceVertex &c)
float mxvk::anonymous_namespace{mxvk_model.cpp}::edgeCross2 (const VKVertex &a, const VKVertex &b, const VKVertex &c, int dropAxis)
Vec3 mxvk::anonymous_namespace{mxvk_model.cpp}::faceNormal (const VKVertex &a, const VKVertex &b, const VKVertex &c)
std::string mxvk::anonymous_namespace{mxvk_model.cpp}::inflateCompressedText (const std::vector< unsigned char > &compressedData)
void mxvk::anonymous_namespace{mxvk_model.cpp}::logMXModelStep (const std::string &message, bool important=false)
std::string mxvk::anonymous_namespace{mxvk_model.cpp}::materialNameForTextureIndex (uint32_t textureIndex, const std::vector< MXMaterial > &materials)
std::string mxvk::anonymous_namespace{mxvk_model.cpp}::mtlReferencePath (const std::string &objPath, const std::string &mtlPath)
std::string mxvk::anonymous_namespace{mxvk_model.cpp}::mtlTextureReferencePath (const std::filesystem::path &mtlPath, const std::string &texturePath)
void mxvk::anonymous_namespace{mxvk_model.cpp}::parseMTLStream (std::istream &file, const std::string &textureBasePath, std::vector< MXMaterial > &materials)
std::string mxvk::anonymous_namespace{mxvk_model.cpp}::parseMTLTexturePath (std::istream &stream)
MXMODParseResult mxvk::anonymous_namespace{mxvk_model.cpp}::parseMXMODStream (std::istream &file, const std::string &sourcePath, float positionScale)
bool mxvk::anonymous_namespace{mxvk_model.cpp}::parseOBJFaceToken (const std::string &token, OBJIndex &index)
bool mxvk::anonymous_namespace{mxvk_model.cpp}::parseOBJIndexValue (const std::string &text, int &value)
bool mxvk::anonymous_namespace{mxvk_model.cpp}::pointInProjectedTriangle (const VKVertex &point, const VKVertex &a, const VKVertex &b, const VKVertex &c, int dropAxis, float windingSign)
float mxvk::anonymous_namespace{mxvk_model.cpp}::projectedArea2 (const std::vector< OBJFaceVertex > &face, int dropAxis)
std::string mxvk::anonymous_namespace{mxvk_model.cpp}::resolveManifestPath (const std::string &basePath, const std::string &path)
template<typename T>
int mxvk::anonymous_namespace{mxvk_model.cpp}::resolveOBJIndex (int objIndex, const std::vector< T > &values)
void mxvk::anonymous_namespace{mxvk_model.cpp}::stripTrailingComment (std::string &s)
void mxvk::anonymous_namespace{mxvk_model.cpp}::triangulateOBJFace (const std::vector< OBJFaceVertex > &face, std::vector< VKVertex > &vertices)
void mxvk::anonymous_namespace{mxvk_model.cpp}::trim (std::string &s)
void mxvk::anonymous_namespace{mxvk_model.cpp}::writeMTLMaterial (std::ostream &out, const MXMaterial &material)