コード例 #1
0
ファイル: TestOctree.cpp プロジェクト: daviddoria/Tools
void TestOctree()
{
	std::vector<vgl_point_3d<double> > Points;
	Points.push_back(vgl_point_3d<double>(1.0, 0.0, 0.0));
	Points.push_back(vgl_point_3d<double>(0.0, 0.0, 0.0));
	Points.push_back(vgl_point_3d<double>(0.0, 1.0, 0.0));
	
	std::vector<std::vector<unsigned int> > VertexLists;
	std::vector<unsigned int> VertexList;
	VertexList.push_back(0);
	VertexList.push_back(1);
	VertexList.push_back(2);
	VertexLists.push_back(VertexList);
	
	Octree Tree;
	Tree.Build(Points, VertexLists);
	
	OrientedPoint Intersection;
	Ray R(vgl_point_3d<double>(0.5, 0.5, -1.0), vgl_vector_3d<double> (0.0, 0.0, 1.0));
	bool intersect = Tree.IntersectRay(R, Intersection);
	
	std::cout << "Intersect? " << intersect << std::endl;
	if(intersect)
		std::cout << "Intersection: " << Intersection << std::endl;
}
コード例 #2
0
ファイル: TestOctree.cpp プロジェクト: daviddoria/Tools
void TestOctree(const std::string &Filename)
{
	vtkSmartPointer<vtkXMLPolyDataReader> reader = vtkSmartPointer<vtkXMLPolyDataReader>::New();
	reader->SetFileName(Filename.c_str());
	reader->Update();
	vtkSmartPointer<vtkPolyData> polydata = reader->GetOutput();
	
	Octree Tree;
	Tree.Build(polydata);
		
	OrientedPoint Intersection;
	//Ray R(vgl_point_3d<double>(0.5, 0.5, -1.0), vgl_vector_3d<double> (0.0, 0.0, 1.0));
	Ray R(vgl_point_3d<double>(10.0, 0.0, 0.0), vgl_vector_3d<double> (-1.0, 0.0, 0.0));
	bool intersect = Tree.IntersectRay(R, Intersection);
	
	std::cout << "Intersect? " << intersect << std::endl;
	if(intersect)
		std::cout << "Intersection: " << Intersection << std::endl;
}