我试图将Boost Geometry与自定义顶点类一起使用,该顶点类具有x,y和许多用于渲染的参数,例如纹理坐标。我使用注册了自定义类
BOOST_GEOMETRY_REGISTER_POINT_2D
并且union_
之类的算法有效,但只有x,y有效。 (我是C ++的老手,但从未学过泛型编程。)
当我获取顶点并使用实例时,我可以演示这个问题
boost::geometry::append( boostPolygon, myVertex );
我可以跟踪调试器中的append调用,并且我看到正在创建我的顶点的默认构造实例,然后调用我的顶点类的访问器来复制x,并且y值留下所有其余的默认构造函数中设置的参数。
我真正想要的是boost::geometry::append()
的行为与boostPolygon.outer().push_back( myVertex);
完全相同
所以我用上面的append
替换了push_back
调用,并按照我的意愿将点添加到多边形,但是当我在多边形上调用union_()
时,他们丢失了除x以外的所有成员再次。
我认为我想要的是一个典型的用例,所以最好问问而不是猜测如何处理这个问题。我已经看过如何改编课程的例子,但我的模板功夫不足以跟随。那么我需要添加更多适应性还是我需要做一些简单的事情?