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

📄 concept_archetype_functors.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
📖 第 1 页 / 共 5 页
字号:
    { 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 + -