Skip to content
Open

asan #29

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,17 @@ include_directories(
ikd-Tree
)

set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
set (CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address")

add_executable(ikd_tree_demo examples/ikd_Tree_demo.cpp ikd-Tree/ikd_Tree.cpp)
target_link_libraries(ikd_tree_demo ${PCL_LIBRARIES})

add_executable(ikd_tree_async_demo examples/ikd_Tree_Async_demo.cpp ikd-Tree/ikd_Tree.cpp)
target_link_libraries(ikd_tree_async_demo ${PCL_LIBRARIES})

add_executable(ikd_tree_Search_demo examples/ikd_Tree_Search_demo.cpp ikd-Tree/ikd_Tree.cpp)
target_link_libraries(ikd_tree_Search_demo ${PCL_LIBRARIES})
target_link_libraries(ikd_tree_Search_demo ${PCL_LIBRARIES})

add_executable(ikd_simple_test examples/ikd_simple_test.cpp ikd-Tree/ikd_Tree.cpp)
target_link_libraries(ikd_simple_test ${PCL_LIBRARIES})
4 changes: 3 additions & 1 deletion examples/ikd_Tree_demo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,8 @@ PointType generate_target_point(){
}

int main(int argc, char** argv){
//const char* name = std::string("hello").c_str();
//puts(name);
srand((unsigned) time(NULL));
printf("Testing ...\n");
int counter = 0;
Expand Down Expand Up @@ -283,4 +285,4 @@ int main(int argc, char** argv){
printf("Box-wse Re-insertion (%d boxes): %0.3fms\n",Box_Num,box_add_time/box_add_counter);
printf("Nearest Search (%d points): %0.3fms\n", Search_Counter,search_time/counter);
return 0;
}
}
47 changes: 47 additions & 0 deletions examples/ikd_simple_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#include <ikd_Tree.h>
#include <stdio.h>
#include <stdlib.h>
#include <random>
#include <algorithm>
#include <eigen3/Eigen/Dense>


using PointType = ikdTree_PointType;//Eigen::Vector3f;
using PointVector = KD_TREE<PointType>::PointVector;
PointVector RandomCloud(size_t size, float range) {
PointVector result;
result.reserve(size);
for (size_t i = 0; i < size; i++) {
auto r = range * Eigen::Vector3f::Random();
result.emplace_back(r[0], r[1], r[2]);
}
return result;
}


int main(int argc, char** argv)
{
if(argc == 1)
{
const char* name = std::string("hello").c_str();
puts(name);
}
PointVector points = RandomCloud(200, 20);
auto *tree = new KD_TREE<PointType>(0.2,0.2,0.2);
//tree->set_downsample_param(0.001);
tree->Build(points);

// search nn test
for (size_t i = 0; i < points.size(); i++) {
std::vector<PointType,Eigen::aligned_allocator<PointType>> points_near;
std::vector<float> sqr_distances;
tree->Nearest_Search(points[i], 1, points_near, sqr_distances);
puts(points_near.size()==1?"OK":"FAIL");
//EXPECT_EQ(points_near.size(), 1);
puts(points_near[0].x==points[i].x?"OK":"FAIL");
puts(points_near[0].y==points[i].y?"OK":"FAIL");
puts(points_near[0].z==points[i].z?"OK":"FAIL");
//EXPECT_FLOAT_EQ(0.0, sqr_distances[0]);
}
puts("done");
}