visual c++ - OpenMesh: remove_property : 不是 Decimater::D ecimaterT <MeshT>的成员



我正在尝试在OpenMesh中使用抽取器算法。我遵循了此链接中提供的基本设置:http://openmesh.org/Documentation/OpenMesh-2.0-Documentation/decimater_docu.html但我得到了以下来自CCD_ 2的错误。

error C2039: 'remove_property' : is not a member of 'OpenMesh::Decimater::DecimaterT<MeshT>'

main.cpp

#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;

问题出在这行。

typedef OpenMesh::Decimater::ModQuadricT<抽取器>::Handle HModQuadric;

应该是这样的:

typedef OpenMesh::Decimater::ModQuadricT<MyMesh>::手柄HModQuadric;

我在使用3.0版时参考了2.0版的文档

在最近的版本中,模板依赖于网格而不是抽取器。

相关内容

  • 没有找到相关文章

最新更新