mirror of https://github.com/CGAL/cgal
file renamed to Level_interval.h
This commit is contained in:
parent
49fcfdbfd6
commit
437a5ca2c1
|
|
@ -1,126 +0,0 @@
|
||||||
// ======================================================================
|
|
||||||
//
|
|
||||||
// Copyright (c) 2003 GeometryFactory
|
|
||||||
//
|
|
||||||
// This software and related documentation is part of an INTERNAL release
|
|
||||||
// of the Computational Geometry Algorithms Library (CGAL). It is not
|
|
||||||
// intended for general use.
|
|
||||||
//
|
|
||||||
// ----------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// release :
|
|
||||||
// release_date :
|
|
||||||
//
|
|
||||||
// file : include/CGAL/Face_interval.h
|
|
||||||
// package : Interval_skip_list
|
|
||||||
// revision : $Revision$
|
|
||||||
// revision_date : $Date$
|
|
||||||
// author(s) : Andreas Fabri
|
|
||||||
//
|
|
||||||
// coordinator : GeometryFactory (<Andreas.Fabri@geometryfactory.com>)
|
|
||||||
//
|
|
||||||
// ======================================================================
|
|
||||||
|
|
||||||
#ifndef CGAL_FACE_INTERVAL_H
|
|
||||||
#define CGAL_FACE_INTERVAL_H
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
|
|
||||||
namespace CGAL {
|
|
||||||
|
|
||||||
template <class FaceHandle>
|
|
||||||
class Face_interval
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// TODO: derive type from Ft of coordinates of points in vertex
|
|
||||||
typedef double Value;
|
|
||||||
|
|
||||||
private:
|
|
||||||
FaceHandle fh_;
|
|
||||||
Value inf_;
|
|
||||||
Value sup_; // left and right boundary values
|
|
||||||
public:
|
|
||||||
|
|
||||||
Face_interval(){}
|
|
||||||
Face_interval(FaceHandle fh);
|
|
||||||
const Value& inf() const {return inf_;}
|
|
||||||
const Value& sup() const {return sup_;}
|
|
||||||
FaceHandle face_handle() const { return fh_;}
|
|
||||||
bool contains(const Value& V) const;
|
|
||||||
|
|
||||||
// true iff this contains (l,r)
|
|
||||||
bool contains_interval(const Value& l, const Value& r) const;
|
|
||||||
|
|
||||||
bool operator==(const Face_interval& I) const
|
|
||||||
{
|
|
||||||
return ( (inf() == I.inf()) && (sup() == I.sup()) &&
|
|
||||||
(face_handle() == I.face_handle()) );
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator!=(const Face_interval& I) const
|
|
||||||
{
|
|
||||||
return ! (*this == I);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <class V>
|
|
||||||
std::ostream& operator<<(std::ostream& os,
|
|
||||||
const Face_interval<V>& i)
|
|
||||||
{
|
|
||||||
os << i.face_handle()->vertex(0)->point() << ", " <<
|
|
||||||
i.face_handle()->vertex(1)->point() << ", " <<
|
|
||||||
i.face_handle()->vertex(2)->point() << std::endl;
|
|
||||||
return os;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <class FaceHandle>
|
|
||||||
Face_interval<FaceHandle>::Face_interval(FaceHandle fh)
|
|
||||||
: fh_(fh), inf_(fh->vertex(0)->point().z()), sup_(inf_)
|
|
||||||
{
|
|
||||||
double z = fh->vertex(1)->point().z();
|
|
||||||
sup_= (z>sup_)? z : sup_;
|
|
||||||
inf_ = (z<inf_) ? z : inf_;
|
|
||||||
z = fh->vertex(2)->point().z();
|
|
||||||
sup_ = (z>sup_)? z : sup_;
|
|
||||||
inf_ = (z<inf_) ? z : inf_;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <class FaceHandle>
|
|
||||||
bool
|
|
||||||
Face_interval<FaceHandle>::contains_interval(const Value& i,
|
|
||||||
const Value& s) const
|
|
||||||
// true iff this contains (l,r)
|
|
||||||
{
|
|
||||||
return( (inf() <= i) && (sup() >= s) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <class FaceHandle>
|
|
||||||
bool
|
|
||||||
Face_interval<FaceHandle>::contains(const Value& v) const
|
|
||||||
{
|
|
||||||
// return true if this contains V, false otherwise
|
|
||||||
if((v >= inf()) && (v <= sup()))
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace CGAL
|
|
||||||
|
|
||||||
#endif // CGAL_FACE_INTERVAL_H
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue