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

📄 cartesian_moving_point_1.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// Copyright (c) 2005  Stanford University (USA).// All rights reserved.//// This file is part of CGAL (www.cgal.org); you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public License as// published by the Free Software Foundation; version 2.1 of the License.// See the file LICENSE.LGPL distributed with CGAL.//// Licensees holding a valid commercial license may use this file in// accordance with the commercial license agreement provided with the software.//// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.//// $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.3-branch/Kinetic_data_structures/include/CGAL/Kinetic/internal/Kernel/Cartesian_moving_point_1.h $// $Id: Cartesian_moving_point_1.h 36907 2007-03-08 01:47:03Z drussel $// //// Author(s)     : Daniel Russel <drussel@alumni.princeton.edu>#ifndef CGAL_KINETIC_CARTESIAN_MOVING_POINT_1_H_#define CGAL_KINETIC_CARTESIAN_MOVING_POINT_1_H_#include <CGAL/Kinetic/basic.h>#include <iostream>CGAL_KINETIC_BEGIN_INTERNAL_NAMESPACE;template <class Coordinate_t>class Cartesian_moving_point_1{protected:  typedef Cartesian_moving_point_1<Coordinate_t> This;public:  //! The type for coordinate values  typedef Coordinate_t Coordinate;  //! What should I do for this  typedef typename Coordinate::NT NT;  //! initialize it from polys  Cartesian_moving_point_1(const Coordinate &x) {    _coord=x;  }  //! initialize it from a still point  template <class Static_point>  Cartesian_moving_point_1(const Static_point &pt) {    _coord=pt.x();  }  //! null  Cartesian_moving_point_1(){}  bool operator==(const Cartesian_moving_point_1 &o) const {    return x() == o.x();  }  //! homogeneous x  const Coordinate &hx() const  {    return _coord;  }  //! homogeneous w  const Coordinate hw() const  {    return Coordinate(1);  }  //! x  const Coordinate &x() const  {    return _coord;  }  bool is_constant() const {    return _coord.degree()<1;  }    template <class SK>  struct Static_traits  {    typedef typename SK::RT Static_type;    static Static_type to_static(const This &o, const typename SK::FT &t, const SK &) {      return Static_type(o.x()(t));    }  };  template <class Converter>  struct Coordinate_converter  {    Coordinate_converter(const Converter &c): c_(c){}    typedef Cartesian_moving_point_1<typename Converter::argument_type> argument_type;    typedef Cartesian_moving_point_1<typename Converter::result_type> result_type;    result_type operator()(const argument_type &i) const    {      return result_type(c_(i.x()));    }    Converter c_;  };  //! Reverse the motion, time must be negated also  template <class Negate>  This transformed_coordinates(const Negate &n) const  {    return This(n(_coord));  }  void write(std::ostream &out) const  {    out << x();  }protected:  Coordinate _coord;};template <class Coordinate>inline std::ostream &operator<<(std::ostream &out,				const Cartesian_moving_point_1<Coordinate> &point){  point.write(out);  return out;}template <class Coordinate>inline std::istream &operator>>(std::istream &out,				Cartesian_moving_point_1<Coordinate> &point){  Coordinate c;  out >> c;  if (!out.fail()) {    point = Cartesian_moving_point_1<Coordinate>(c);  }  return out;}CGAL_KINETIC_END_INTERNAL_NAMESPACECGAL_KINETIC_BEGIN_NAMESPACE/*template <>  template <class Coord, class SK>  class To_static< internal::Cartesian_moving_point_2<Coord>, SK>:  public To_static_base<typename Coord::NT,  typename internal::Cartesian_moving_point_2<Coord>,  typename SK::Point_2> {  typedef To_static_base<typename Coord::NT,  typename internal::Cartesian_moving_point_2<Coord>,  typename SK::Point_2>  P;  public:  To_static(){}  typename P::result_type operator()(const typename P::argument_type &arg) const {  return typename P::result_type(arg.x()(P::time()),  arg.y()(P::time()));  }  };*/CGAL_KINETIC_END_NAMESPACE#endif

⌨️ 快捷键说明

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