fixed uv type

This commit is contained in:
2025-12-01 05:03:43 +03:00
parent 6414922884
commit 1aff083ef3
3 changed files with 15 additions and 14 deletions

View File

@@ -173,14 +173,14 @@ int main()
Vector3<float> p110{0.5f, 0.5f, -0.5f}; Vector3<float> p110{0.5f, 0.5f, -0.5f};
Vector3<float> p111{0.5f, 0.5f, 0.5f}; Vector3<float> p111{0.5f, 0.5f, 0.5f};
VertexType v0{p000, Vector3<float>{-1, -1, -1}, Vector3<float>{0, 0, 0}}; VertexType v0{p000, Vector3<float>{-1, -1, -1}, omath::Vector2<float>{0, 0}};
VertexType v1{p001, Vector3<float>{-1, -1, 1}, Vector3<float>{0, 1, 0}}; VertexType v1{p001, Vector3<float>{-1, -1, 1}, omath::Vector2<float>{0, 1}};
VertexType v2{p010, Vector3<float>{-1, 1, -1}, Vector3<float>{1, 0, 0}}; VertexType v2{p010, Vector3<float>{-1, 1, -1}, omath::Vector2<float>{1, 0}};
VertexType v3{p011, Vector3<float>{-1, 1, 1}, Vector3<float>{1, 1, 0}}; VertexType v3{p011, Vector3<float>{-1, 1, 1}, omath::Vector2<float>{1, 1}};
VertexType v4{p100, Vector3<float>{1, -1, -1}, Vector3<float>{0, 0, 1}}; VertexType v4{p100, Vector3<float>{1, -1, -1}, omath::Vector2<float>{0, 0}};
VertexType v5{p101, Vector3<float>{1, -1, 1}, Vector3<float>{0, 1, 1}}; VertexType v5{p101, Vector3<float>{1, -1, 1}, omath::Vector2<float>{0, 1}};
VertexType v6{p110, Vector3<float>{1, 1, -1}, Vector3<float>{1, 0, 1}}; VertexType v6{p110, Vector3<float>{1, 1, -1}, omath::Vector2<float>{1, 0}};
VertexType v7{p111, Vector3<float>{1, 1, 1}, Vector3<float>{1, 1, 1}}; VertexType v7{p111, Vector3<float>{1, 1, 1}, omath::Vector2<float>{1, 1}};
vbo.push_back(v0); // 0 vbo.push_back(v0); // 0
vbo.push_back(v1); // 1 vbo.push_back(v1); // 1

View File

@@ -11,13 +11,14 @@
namespace omath::primitives namespace omath::primitives
{ {
template<class T = Vector3<float>> template<class VecType = Vector3<float>, class UvT = Vector2<float>>
struct Vertex final struct Vertex final
{ {
using VectorType = T; using VectorType = VecType;
using UvType = UvT;
VectorType position; VectorType position;
VectorType normal; VectorType normal;
VectorType uv; UvType uv;
}; };
template<typename T> concept HasPosition = requires(T vertex) { vertex.position; }; template<typename T> concept HasPosition = requires(T vertex) { vertex.position; };

View File

@@ -24,7 +24,7 @@ namespace omath::collision
class Epa final class Epa final
{ {
public: public:
using VectorType = typename ColliderType::VectorType; using VectorType = ColliderType::VectorType;
static_assert(EpaVector<VectorType>, "VertexType must satisfy EpaVector concept"); static_assert(EpaVector<VectorType>, "VertexType must satisfy EpaVector concept");
struct Result final struct Result final
@@ -45,8 +45,8 @@ namespace omath::collision
// Precondition: simplex.size()==4 and contains the origin. // Precondition: simplex.size()==4 and contains the origin.
[[nodiscard]] [[nodiscard]]
static std::optional<Result> solve(const ColliderType& a, const ColliderType& b, const Simplex<VectorType>& simplex, static std::optional<Result> solve(const ColliderType& a, const ColliderType& b,
const Params params = {}) const Simplex<VectorType>& simplex, const Params params = {})
{ {
// --- Build initial polytope from simplex (4 points) --- // --- Build initial polytope from simplex (4 points) ---
std::vector<VectorType> vertexes; std::vector<VectorType> vertexes;