📄 concept_archetype_functors.h
字号:
{ return Point_3(); } Point_3 operator()(const Point_3&, const Point_3&, const Point_3&) const { return Point_3(); } Point_3 operator()(const Triangle_3&) const { return Point_3(); } Point_3 operator()(const Point_3&, const Point_3&, const Point_3&, const Point_3&) const { return Point_3(); } Point_3 operator()(const Tetrahedron_3&) const { return Point_3(); }};template <typename K>class Construct_cross_product_vector_3{ typedef typename K::Vector_3 Vector_3;public: typedef Vector_3 result_type; typedef Arity_tag< 2 > Arity; Vector_3 operator()(const Vector_3&, const Vector_3&) const { return Vector_3(); }};template <typename K>class Construct_direction_2{ typedef typename K::Direction_2 Direction_2; typedef typename K::Vector_2 Vector_2; typedef typename K::Line_2 Line_2; typedef typename K::Ray_2 Ray_2; typedef typename K::Segment_2 Segment_2; typedef typename K::RT RT;public: typedef Direction_2 result_type; typedef Arity_tag< 1 > Arity; Direction_2 operator()(const Vector_2&) const { return Direction_2(); } Direction_2 operator()(const Line_2&) const { return Direction_2(); } Direction_2 operator()(const Ray_2&) const { return Direction_2(); } Direction_2 operator()(const Segment_2&) const { return Direction_2(); }};template <typename K>class Construct_direction_3{ typedef typename K::Direction_3 Direction_3; typedef typename K::Vector_3 Vector_3; typedef typename K::Line_3 Line_3; typedef typename K::Ray_3 Ray_3; typedef typename K::Segment_3 Segment_3; typedef typename K::RT RT;public: typedef Direction_3 result_type; typedef Arity_tag< 1 > Arity; Direction_3 operator()(const Vector_3&) const { return Direction_3(); } Direction_3 operator()(const Line_3&) const { return Direction_3(); } Direction_3 operator()(const Ray_3&) const { return Direction_3(); } Direction_3 operator()(const Segment_3&) const { return Direction_3(); }};template <typename K>class Construct_equidistant_line_3{ typedef typename K::Line_3 Line_3; typedef typename K::Point_3 Point_3;public: typedef Line_3 result_type; typedef Arity_tag< 3 > Arity; Line_3 operator()(const Point_3&, const Point_3&, const Point_3&) const { return Line_3(); }};template <typename K>class Construct_iso_cuboid_3{ typedef typename K::Point_3 Point_3; typedef typename K::Iso_cuboid_3 Iso_cuboid_3;public: typedef Iso_cuboid_3 result_type; typedef Arity_tag< 2 > Arity; Iso_cuboid_3 operator()(const Point_3&, const Point_3&, int) const { return Iso_cuboid_3(); } Iso_cuboid_3 operator()(const Point_3&, const Point_3&) const { return Iso_cuboid_3(); } Iso_cuboid_3 operator()(const Point_3 &, const Point_3 &, const Point_3 &, const Point_3 &, const Point_3 &, const Point_3 &) const { return Iso_cuboid_3(); }};template <typename K>class Construct_iso_rectangle_2{ typedef typename K::Point_2 Point_2; typedef typename K::Iso_rectangle_2 Iso_rectangle_2;public: typedef Iso_rectangle_2 result_type; typedef Arity_tag< 2 > Arity; Iso_rectangle_2 operator()(const Point_2&, const Point_2&, int) const { return Iso_rectangle_2(); } Iso_rectangle_2 operator()(const Point_2&, const Point_2&) const { return Iso_rectangle_2(); } Iso_rectangle_2 operator()(const Point_2 &, const Point_2 &, const Point_2 &, const Point_2 &) const { return Iso_rectangle_2(); }};template <typename K>class Construct_lifted_point_3{ typedef typename K::Point_2 Point_2; typedef typename K::Point_3 Point_3; typedef typename K::Plane_3 Plane_3;public: typedef Point_3 result_type; typedef Arity_tag< 2 > Arity; Point_3 operator()(const Plane_3&, const Point_2&) const { return Point_3(); }};template <typename K>class Construct_line_2{ typedef typename K::RT RT; typedef typename K::Point_2 Point_2; typedef typename K::Vector_2 Vector_2; typedef typename K::Direction_2 Direction_2; typedef typename K::Segment_2 Segment_2; typedef typename K::Ray_2 Ray_2; typedef typename K::Line_2 Line_2;public: typedef Line_2 result_type; typedef Arity_tag< 2 > Arity; Line_2 operator()(const Point_2&, const Point_2&) const { return Line_2(); } Line_2 operator()(const Point_2&, const Direction_2&) const { return Line_2(); } Line_2 operator()(const Point_2&, const Vector_2&) const { return Line_2(); } Line_2 operator()(const Segment_2&) const { return Line_2(); } Line_2 operator()(const Ray_2&) const { return Line_2(); }};template <typename K>class Construct_line_3{ typedef typename K::Point_3 Point_3; typedef typename K::Direction_3 Direction_3; typedef typename K::Vector_3 Vector_3; typedef typename K::Segment_3 Segment_3; typedef typename K::Ray_3 Ray_3; typedef typename K::Line_3 Line_3;public: typedef Line_3 result_type; typedef Arity_tag< 2 > Arity; Line_3 operator()(const Point_3&, const Point_3&) const { return Line_3(); } Line_3 operator()(const Point_3&, const Direction_3&) const { return Line_3(); } Line_3 operator()(const Point_3&, const Vector_3&) const { return Line_3(); } Line_3 operator()(const Segment_3&) const { return Line_3(); } Line_3 operator()(const Ray_3&) const { return Line_3(); }}; template <typename K> class Construct_max_vertex_2 { typedef typename K::Point_2 Point_2; typedef typename K::Iso_rectangle_2 Iso_rectangle_2; public: typedef Point_2 result_type; typedef Arity_tag< 1 > Arity; Point_2 operator()(const Iso_rectangle_2&) const { return Point_2(); } }; template <typename K> class Construct_min_vertex_2 { typedef typename K::Point_2 Point_2; typedef typename K::Iso_rectangle_2 Iso_rectangle_2; public: typedef Point_2 result_type; typedef Arity_tag< 1 > Arity; Point_2 operator()(const Iso_rectangle_2&) const { return Point_2(); } }; template <typename K> class Construct_max_vertex_3 { typedef typename K::Point_3 Point_3; typedef typename K::Iso_cuboid_3 Iso_cuboid_3; public: typedef Point_3 result_type; typedef Arity_tag< 1 > Arity; Point_3 operator()(const Iso_cuboid_3&) const { return Point_3(); } }; template <typename K> class Construct_min_vertex_3 { typedef typename K::Point_3 Point_3; typedef typename K::Iso_cuboid_3 Iso_cuboid_3; public: typedef Point_3 result_type; typedef Arity_tag< 1 > Arity; Point_3 operator()(const Iso_cuboid_3&) const { return Point_3(); } };template <typename K>class Construct_midpoint_2{ typedef typename K::Point_2 Point_2;public: typedef Point_2 result_type; typedef Arity_tag< 2 > Arity; Point_2 operator()(const Point_2&, const Point_2&) const { return Point_2(); }};template <typename K>class Construct_midpoint_3{ typedef typename K::Point_3 Point_3;public: typedef Point_3 result_type; typedef Arity_tag< 2 > Arity; Point_3 operator()(const Point_3&, const Point_3&) const { return Point_3(); }};template <typename K>class Construct_object_2{ typedef typename K::Object_2 Object_2;public: typedef Object_2 result_type; typedef Arity_tag< 1 > Arity; template <class Cls> Object_2 operator()( const Cls&) const { Object_2 obj; return obj; }};template <typename K>class Construct_object_3{ typedef typename K::Object_3 Object_3;public: typedef Object_3 result_type; typedef Arity_tag< 1 > Arity; template <class Cls> Object_3 operator()( const Cls&) const { Object_3 obj; return obj; }};template <typename K>class Construct_opposite_circle_2{ typedef typename K::Circle_2 Circle_2;public: typedef Circle_2 result_type; typedef Arity_tag< 1 > Arity; Circle_2 operator()( const Circle_2&) const { return Circle_2(); }};template <typename K>class Construct_opposite_direction_2{ typedef typename K::Direction_2 Direction_2;public: typedef Direction_2 result_type; typedef Arity_tag< 1 > Arity; Direction_2 operator()( const Direction_2&) const { return Direction_2(); }};template <typename K>class Construct_opposite_direction_3{ typedef typename K::Direction_3 Direction_3;public: typedef Direction_3 result_type; typedef Arity_tag< 1 > Arity; Direction_3 operator()( const Direction_3&) const { return Direction_3(); }};template <typename K>class Construct_opposite_line_2{ typedef typename K::Line_2 Line_2;public: typedef Line_2 result_type; typedef Arity_tag< 1 > Arity; Line_2 operator()( const Line_2&) const { return Line_2(); }};template <typename K>class Construct_opposite_line_3{ typedef typename K::Line_3 Line_3;public: typedef Line_3 result_type; typedef Arity_tag< 1 > Arity; Line_3 operator()( const Line_3&) const { return Line_3(); }};template <typename K>class Construct_opposite_plane_3{ typedef typename K::Plane_3 Plane_3;public: typedef Plane_3 result_type; typedef Arity_tag< 1 > Arity; Plane_3 operator()( const Plane_3&) const { return Plane_3(); }};template <typename K>class Construct_opposite_ray_2{ typedef typename K::Ray_2 Ray_2;public: typedef Ray_2 result_type; typedef Arity_tag< 1 > Arity; Ray_2 operator()( const Ray_2&) const { return Ray_2(); }};template <typename K>class Construct_opposite_ray_3{ typedef typename K::Ray_3 Ray_3;public: typedef Ray_3 result_type; typedef Arity_tag< 1 > Arity; Ray_3 operator()( const Ray_3&) const { return Ray_3(); }};template <typename K>class Construct_opposite_segment_2{ typedef typename K::Segment_2 Segment_2;public: typedef Segment_2 result_type; typedef Arity_tag< 1 > Arity; Segment_2 operator()( const Segment_2&) const { return Segment_2(); }};template <typename K>class Construct_opposite_segment_3{ typedef typename K::Segment_3 Segment_3;public: typedef Segment_3 result_type; typedef Arity_tag< 1 > Arity; Segment_3 operator()( const Segment_3&) const { return Segment_3(); }};template <typename K>class Construct_opposite_sphere_3{ typedef typename K::Sphere_3 Sphere_3;public: typedef Sphere_3 result_type; typedef Arity_tag< 1 > Arity; Sphere_3 operator()( const Sphere_3&) const { return Sphere_3(); }};template <typename K>class Construct_opposite_triangle_2{ typedef typename K::Triangle_2 Triangle_2;public: typedef Triangle_2 result_type; typedef Arity_tag< 1 > Arity; Triangle_2 operator()( const Triangle_2&) const { return Triangle_2(); }};template <typename K>class Construct_opposite_vector_2{ typedef typename K::Vector_2 Vector_2;public: typedef Vector_2 result_type; typedef Arity_tag< 1 > Arity; Vector_2 operator()( const Vector_2&) const { return Vector_2(); }};template <typename K>class Construct_opposite_vector_3{ typedef typename K::Vector_3 Vector_3;public: typedef Vector_3 result_type; typedef Arity_tag< 1 > Arity; Vector_3 operator()( const Vector_3&) const { return Vector_3(); }};template <typename K>class Construct_orthogonal_vector_3{ typedef typename K::Point_3 Point_3; typedef typename K::Vector_3 Vector_3; typedef typename K::Plane_3 Plane_3;public: typedef Vector_3 result_type; typedef Arity_tag< 1 > Arity; Vector_3 operator()( const Plane_3&) const
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -