⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coverstest.cpp

📁 在Linux下做的QuadTree的程序
💻 CPP
字号:
// $Id: coversTest.cpp 1820 2006-09-06 16:54:23Z mloskot $// // Test Suite for Geometry's covers() and coveredBy() functions// TUT#include <tut.h>// STL#include <string>// GEOS#include <geos/geom/GeometryFactory.h>#include <geos/geom/Geometry.h>#include <geos/geom/Polygon.h>#include <geos/io/WKTReader.h>namespace tut {//// Test Group//struct test_contains_data{	typedef std::auto_ptr<geos::geom::Geometry> GeomAutoPtr;	geos::geom::GeometryFactory factory;	geos::io::WKTReader reader;	test_contains_data()	    : reader(&factory)	{}};typedef test_group<test_contains_data> group;typedef group::object object;group test_contains_data("geos::geom::Geometry::covers");//// Test Cases//// 1 - Boundaries touch, still g1 covers g2template<>template<>void object::test<1>(){	GeomAutoPtr g1(reader.read(		"POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))"	));	GeomAutoPtr g2(reader.read(		"POLYGON ((0 0, 0 100, 90 90, 90 0, 0 0))"	));	ensure( g1->covers(g2.get()) );	ensure( g2->coveredBy(g1.get()) );}// 2 - Polygon covers line (laying on it's boundary)template<>template<>void object::test<2>(){	GeomAutoPtr g1(reader.read(		"POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))"	));	GeomAutoPtr g2(reader.read(		"LINESTRING (0 0, 0 100)"	));	ensure( g1->covers(g2.get()) );	ensure( g2->coveredBy(g1.get()) );	ensure( ! g1->contains(g2.get()) );}// 3 - Line covers point (laying on it's boundary or interior)template<>template<>void object::test<3>(){	GeomAutoPtr g1(reader.read(		"LINESTRING (0 0, 0 100)"	));	GeomAutoPtr g2(reader.read(		"POINT(0 0)"	));	ensure( g1->covers(g2.get()) );	ensure( g2->coveredBy(g1.get()) );	ensure( ! g1->contains(g2.get()) );	g2.reset(reader.read(		"POINT(0 2)"	));	ensure( g1->covers(g2.get()) );	ensure( g2->coveredBy(g1.get()) );	ensure( g1->contains(g2.get()) );}} // namespace tut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -