/usr/include/CGAL/Nef_3/Halffacet.h is in libcgal-dev 4.2-5ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | // Copyright (c) 1997-2002 Max-Planck-Institute Saarbruecken (Germany).
// 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
// General Public License as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
//
// 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$
// $Id$
//
//
// Author(s) : Michael Seel <seel@mpi-sb.mpg.de>
// Miguel Granados <granados@mpi-sb.mpg.de>
// Susan Hert <hert@mpi-sb.mpg.de>
// Lutz Kettner <kettner@mpi-sb.mpg.de>
// Peter Hachenberger <hachenberger@mpi-sb.mpg.de>
#ifndef CGAL_NEF_HALFFACET_H
#define CGAL_NEF_HALFFACET_H
#include <string>
#include <sstream>
#include <CGAL/IO/Verbose_ostream.h>
#include <CGAL/Nef_3/SNC_iteration.h>
#undef CGAL_NEF_DEBUG
#define CGAL_NEF_DEBUG 83
#include <CGAL/Nef_2/debug.h>
namespace CGAL {
template <typename Refs>
class Halffacet_base {
typedef typename Refs::Mark Mark;
typedef typename Refs::Plane_3 Plane_3;
typedef typename Refs::Halffacet_handle Halffacet_handle;
typedef typename Refs::Halffacet_const_handle Halffacet_const_handle;
typedef typename Refs::Volume_handle Volume_handle;
typedef typename Refs::Volume_const_handle Volume_const_handle;
typedef typename Refs::Object_list Object_list;
typedef typename Refs::Halffacet_cycle_iterator
Halffacet_cycle_iterator;
typedef typename Refs::Halffacet_cycle_const_iterator
Halffacet_cycle_const_iterator;
Plane_3 supporting_plane_;
Mark mark_;
Halffacet_handle twin_;
Volume_handle volume_;
Object_list boundary_entry_objects_; // SEdges, SLoops
public:
Halffacet_base() : supporting_plane_(), mark_() {}
Halffacet_base(const Plane_3& h, Mark m) :
supporting_plane_(h), mark_(m) {}
~Halffacet_base() {
CGAL_NEF_TRACEN(" destroying Halffacet_base item "<<&*this);
}
Halffacet_base(const Halffacet_base<Refs>& f)
{ supporting_plane_ = f.supporting_plane_;
mark_ = f.mark_;
twin_ = f.twin_;
CGAL_NEF_TRACEN("VOLUME const");
volume_ = f.volume_;
boundary_entry_objects_ = f.boundary_entry_objects_;
}
Halffacet_base<Refs>& operator=(const Halffacet_base<Refs>& f)
{ if (this == &f) return *this;
supporting_plane_ = f.supporting_plane_;
mark_ = f.mark_;
twin_ = f.twin_;
CGAL_NEF_TRACEN("VOLUME op=");
volume_ = f.volume_;
boundary_entry_objects_ = f.boundary_entry_objects_;
return *this;
}
Mark& mark() { return mark_; }
const Mark& mark() const { return mark_; }
Halffacet_handle& twin() { return twin_; }
Halffacet_const_handle twin() const { return twin_; }
Plane_3& plane() { return supporting_plane_; }
const Plane_3& plane() const { return supporting_plane_; }
Volume_handle& incident_volume() { return volume_; }
Volume_const_handle incident_volume() const { return volume_; }
Object_list& boundary_entry_objects() { return boundary_entry_objects_; }
const Object_list& boundary_entry_objects() const { return boundary_entry_objects_; }
Halffacet_cycle_iterator facet_cycles_begin()
{ return boundary_entry_objects_.begin(); }
Halffacet_cycle_iterator facet_cycles_end()
{ return boundary_entry_objects_.end(); }
Halffacet_cycle_const_iterator facet_cycles_begin() const
{ return boundary_entry_objects_.begin(); }
Halffacet_cycle_const_iterator facet_cycles_end() const
{ return boundary_entry_objects_.end(); }
bool is_twin() const { return (&*twin_ < this); }
bool is_valid( bool verb = false, int level = 0) const {
Verbose_ostream verr(verb);
verr << "begin CGAL::SNC_items<...>::Halffacet_base::is_valid( verb=true, "
"level = " << level << "):" << std::endl;
bool valid = (twin_ != NULL && twin_ != Halffacet_handle());
valid = valid && (volume_ != NULL && volume_ != Volume_handle());
valid = valid && (supporting_plane_.a() != 0 ||
supporting_plane_.b() != 0 ||
supporting_plane_.c() != 0);
valid = valid && (!boundary_entry_objects_.empty());
verr << "end of CGAL::SNC_items<...>::Halffacet_base::is_valid(): structure is "
<< ( valid ? "valid." : "NOT VALID.") << std::endl;
return valid;
}
}; // Halffacet_base
} //namespace CGAL
#endif //CGAL_NEF_HALFFACET_H
|