#pragma once #include "modelFactoryMesh_fwd.h" #include #include #include #include namespace OpenMesh { template struct glmvec : public VectorT { using VectorT::VectorT; glmvec(const VectorT & v) : VectorT {v} { } operator glm::vec() const { glm::vec out; std::copy(this->begin(), this->end(), &out[0]); return out; } }; } struct ModelFactoryTraits : public OpenMesh::DefaultTraits { FaceAttributes(OpenMesh::Attributes::Normal | OpenMesh::Attributes::Status); EdgeAttributes(OpenMesh::Attributes::Status); VertexAttributes(OpenMesh::Attributes::Normal | OpenMesh::Attributes::Status); using Point = OpenMesh::glmvec; using Normal = OpenMesh::glmvec; }; struct ModelFactoryMesh : public OpenMesh::PolyMesh_ArrayKernelT { ModelFactoryMesh(); OpenMesh::FPropHandleT smoothFaceProperty; };