CMakelists.txt的编写
cmake_minimum_required(VERSION 3.20)
project(cgal_test)
set(CMAKE_BUILD_TYPE "Release")
#set(CGAL_DIR /home/ancy/WorkSpace/Install/cgal/lib/cmake/CGAL)
set(CGAL_DATA_DIR "/home/ancy/WorkSpace/Sources/cgal/Data/data")
find_package(CGAL REQUIRED)
find_package(CGAL COMPONENTS Qt5 Core)
if(CGAL_Qt5_FOUND)
add_definitions(-DCGAL_USE_BASIC_VIEWER)
endif()
add_executable(main main.cpp)
target_link_libraries(main
CGAL::CGAL
CGAL::CGAL_Qt5
CGAL::CGAL_Basic_viewer
)
测试代码
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Surface_mesh.h>
#include <CGAL/draw_surface_mesh.h>
#include <CGAL/Surface_mesh/IO/PLY.h>
#include <fstream>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef K::Point_3 Point_3;
typedef CGAL::Surface_mesh<Point_3> Surface_mesh;
int main(int argc, char* argv[]) {
// 定义 Surface_mesh 对象
Surface_mesh mesh;
// 读取 PLY 文件
std::ifstream input("/home/ancy/Downloads/mesh(1).ply");
CGAL::IO::read_PLY(input, mesh);
if (!input || mesh.is_empty())
{
std::cerr << "Error: Unable to read the PLY file or the mesh is empty." << std::endl;
return 1;
}
// 可视化
CGAL::draw(mesh);
return EXIT_SUCCESS;
}