libOpenDRIVE
v0.5.0
libOpenDRIVE는 OpenDRIVE 파일 구문 분석 및 3D 모델 생성을 제공하는 가볍고 종속성이 없는 빠른 C++ 라이브러리 입니다.
크기가 작고 다른 프로젝트에 쉽게 통합할 수 있습니다. 핵심 기능은 OpenDRIVE 파일 분석 및 3D 모델 생성입니다. 라이브러리는 OpenDRIVE 버전 1.4를 대상으로 합니다.
다음은 libOpenDRIVE를 사용하는 코드가 어떻게 보이는지에 대한 예입니다. 더 완전한 예를 보려면 테스트/test.cpp를 참조하세요.
// load map
odr::OpenDriveMap odr_map ( " tests/test.xodr " );
// iterate roads
for (odr::Road road : odr_map.get_roads())
std::cout << " road: " << road.id << " length: " << road.length << std::endl;
// get xyz point for road coordinates
odr::Road odr_road = odr_map.get_road( " 17 " );
odr::Vec3D pt_xyz = odr_road.get_xyz( 2.1 /* s */ , 1.0 /* t */ , 0.0 /* h */ );
// access road network attributes
std::string lane_type = odr_road.get_lanesection( 0.0 ).get_lane(- 1 ).type;
// use routing graph
odr::RoutingGraph routing_graph = odr_map.get_routing_graph();
odr::LaneKey from ( " 17 " /* road id */ , 0.0 /* lane section s0 */ , 1 /* lane id */ );
odr::LaneKey to ( " 41 " , 0.0 , - 1 );
std::vector<odr::LaneKey> path = routing_graph.shortest_path(from, to);
// get road network mesh
odr::RoadNetworkMesh road_network_mesh = odr_map.get_road_network_mesh( 0.1 /* eps */ );
std::cout << road_network_mesh.get_mesh().get_obj() << std::endl;
기본적으로 정적 라이브러리를 빌드하려면 다음을 실행하세요.
mkdir build
cd build
cmake ..
make
공유 라이브러리가 필요한 경우 다음을 사용하십시오.
cmake -DBUILD_SHARED_LIBS=ON ..
이 라이브러리를 사용하는 odrviewer.io에서 뷰어를 확인하세요. odrviewer 프로젝트를 사용하여 odrviewer.io에 대한 문제 및 기능 요청을 게시하세요.
정보: 뷰어 및 WebAssembly 바인딩은 더 이상 이 프로젝트의 일부가 아닙니다. 이는 라이브러리 기능에 더 집중하고 바인딩을 최신 상태로 유지할 필요가 없도록 하기 위한 것입니다. v0.3.0을 사용하여 여전히 뷰어 및 WebAssembly 바인딩을 포함하는 마지막 버전을 얻으세요.