OpenMesh
에 decimater 알고리즘을 사용하려고합니다. 나는이 링크에서 제시된 기본 설정을 따랐다 : http://openmesh.org/Documentation/OpenMesh-2.0-Documentation/decimater_docu.html하지만 modquadrict.hh(part of the library)
에서 오는 다음과 같은 오류가 발생한다.OpenMesh : remove_property : Decimater :: DecimaterT의 멤버가 아닙니다. <MeshT>
#include "MyMesh.h"
#include <conio.h>
#include <iostream>
int main()
{
MyMesh mesh;
decimater deci (mesh);
HModQuadric hModQuad;
if(!OpenMesh::IO::read_mesh(mesh, "models/monkey.obj"));
{
std::cout<<"Cannot read mesh";
}
deci.add(hModQuad);
std::cout << deci.module(hM).name() << std::endl;
getch();
return 0;
}
MyMesh.h
#pragma once
// OpenMesh
#pragma warning(push)
#pragma warning(disable: 4267)
#include <OpenMesh/Core/IO/MeshIO.hh>
#include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>
#include <OpenMesh/Tools/Decimater/ModQuadricT.hh>
#include <OpenMesh/Tools/Decimater/DecimaterT.hh>
#pragma warning(pop)
//Additional mesh parameters
struct MeshTraits : public OpenMesh::DefaultTraits
{
VertexAttributes(OpenMesh::Attributes::Normal);
FaceAttributes(OpenMesh::Attributes::Normal);
};
typedef OpenMesh::TriMesh_ArrayKernelT<MeshTraits> MyMesh;
// Decimater type
typedef OpenMesh::Decimater::DecimaterT<MyMesh> decimater;
// Decimation Module Handle type
typedef OpenMesh::Decimater::ModQuadricT<decimater>::Handle HModQuadric;
메쉬 클래스에서 속성을 제거 하시겠습니까? 아니면 decimeter에서 직접 속성을 제거 하시겠습니까? 코드를 게시 할 수 있습니까? –
내가 decimater를 테스트하려고하는 코드를 추가했습니다. decimate 메서드를 호출하거나 decimater를 초기화하기 전에 위의 오류가 발생합니다. – jaykumarark