before xmas

This commit is contained in:
Michael Seel 2001-12-21 09:39:23 +00:00
parent 8f40e9a300
commit 7ca3f023a2
11 changed files with 133 additions and 36 deletions

View File

@ -1,4 +1,6 @@
Possible Improvements for future releases are
1) introduce clean spherical kernel trais
2) clean up edge pair architecture
3) introduce filtering

View File

@ -1 +1 @@
Nef polyhedra in the plane
Nef polyhedra in the sphere surface

View File

@ -0,0 +1,13 @@
construction.C
a simple example showing construction syntax
HowTo build these demos:
1) Set the environment variable CGAL_MAKEFILE to the makefile
of choice after the configuration of CGAL. Makefiles
(configurations) can be found in ../../make
2) Engage (type "make <return>")

View File

@ -0,0 +1,33 @@
// file : examples/Nef_S2/construction.C
#include <CGAL/Gmpz.h>
#include <CGAL/Homogeneous.h>
#include <CGAL/Nef_polyhedron_S2.h>
typedef CGAL::Gmpz RT;
typedef CGAL::Homogeneous<RT> Kernel;
typedef CGAL::Nef_polyhedron_S2<Kernel> Nef_polyhedron;
typedef Nef_polyhedron::Sphere_point Sphere_point;
typedef Nef_polyhedron::Sphere_segment Sphere_segment;
typedef Nef_polyhedron::Sphere_circle Sphere_circle;
int main() {
Nef_polyhedron N1(Nef_polyhedron::COMPLETE);
Sphere_circle c(1,1,1); // c : x + y + z = 0
Nef_polyhedron N2(c,Nef_polyhedron::INCLUDED);
Nef_polyhedron N3 = N2.complement();
CGAL_assertion(N1 == N2.join(N3));
Sphere_point p1(1,0,0), p2(0,1,0), p3(0,0,1);
Sphere_segment s1(p1,p2), s2(p2,p3), s3(p3,p1);
Sphere_segment triangle[3] = { s1, s2, s3 };
Nef_polyhedron N4(triangle, triangle+3);
Nef_polyhedron N5 = N2.intersection(N4);
CGAL_assertion(N5 <= N2 && N5 <= N4);
return 0;
}

View File

@ -0,0 +1,59 @@
# Created by the script create_makefile
# This is the makefile for compiling a CGAL application.
#---------------------------------------------------------------------#
# include platform specific settings
#---------------------------------------------------------------------#
# Choose the right include file from the <cgalroot>/make directory.
# CGAL_MAKEFILE = ENTER_YOUR_INCLUDE_MAKEFILE_HERE
include $(CGAL_MAKEFILE)
#---------------------------------------------------------------------#
# compiler flags
#---------------------------------------------------------------------#
CXXFLAGS = \
$(EXTRA_FLAGS) \
$(CGAL_CXXFLAGS) \
$(LONG_NAME_PROBLEM_CXXFLAGS) \
$(DEBUG_OPT)
#---------------------------------------------------------------------#
# linker flags
#---------------------------------------------------------------------#
LIBPATH = \
$(CGAL_LIBPATH)
LDFLAGS = \
$(LONG_NAME_PROBLEM_LDFLAGS) \
$(CGAL_LDFLAGS)
#---------------------------------------------------------------------#
# target entries
#---------------------------------------------------------------------#
all: \
construction$(EXE_EXT) \
simple$(EXE_EXT)
construction$(EXE_EXT): construction$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)construction \
construction$(OBJ_EXT) $(LDFLAGS)
simple$(EXE_EXT): simple$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)simple \
simple$(OBJ_EXT) $(LDFLAGS)
clean: \
construction.clean \
simple.clean
#---------------------------------------------------------------------#
# suffix rules
#---------------------------------------------------------------------#
.C$(OBJ_EXT):
$(CGAL_CXX) $(CXXFLAGS) $(OBJ_OPT) $<

View File

@ -0,0 +1,18 @@
// file : examples/Nef_S2/simple.C
#include <CGAL/Gmpz.h>
#include <CGAL/Homogeneous.h>
#include <CGAL/Nef_polyhedron_S2.h>
typedef CGAL::Gmpz RT;
typedef CGAL::Homogeneous<RT> Kernel;
typedef CGAL::Nef_polyhedron_S2<Kernel> Nef_polyhedron;
typedef Nef_polyhedron::Sphere_circle Sphere_circle;
int main()
{
Nef_polyhedron N1(Sphere_circle(1,0,0));
Nef_polyhedron N2(Sphere_circle(0,1,0), Nef_polyhedron::EXCLUDED);
Nef_polyhedron N3 = N1 * N2; // line (*)
return 0;
}

View File

@ -298,7 +298,7 @@ Face_handle new_face() const
void delete_vertex_only(Vertex_handle v) const
/*{\Mop deletes |v| without any connectivity update.}*/
{ return psm_->delete_vertex(v); }
{ psm_->delete_vertex(v); }
void delete_edge_pair_only(Halfedge_handle e) const
/*{\Mop deletes |e| and its twin without any connectivity update.}*/
@ -310,7 +310,7 @@ void delete_halfedge_only(Halfedge_handle e) const
void delete_face_only(Face_handle f) const
/*{\Mop deletes |f| without any connectivity update.}*/
{ return psm_->delete_face(f); }
{ psm_->delete_face(f); }
void delete_loop_only() const
/*{\Mop deletes the loop and its twin without any connectivity update.}*/

View File

@ -66,11 +66,11 @@ class SM_io_parser : public Decorator_
public:
/*{\Mcreation 3}*/
SM_io_parser(istream& is, const Base& D);
SM_io_parser(std::istream& is, const Base& D);
/*{\Mcreate creates an instance |\Mvar| of type |\Mname|
to input |H| from |is|.}*/
SM_io_parser(ostream& os, const Base& D);
SM_io_parser(std::ostream& os, const Base& D);
/*{\Mcreate creates an instance |\Mvar| of type |\Mname|
to output |H| to |os|.}*/
@ -101,7 +101,7 @@ static void dump(const Decorator_& D, std::ostream& os = cerr);
template <typename Decorator_>
SM_io_parser<Decorator_>::
SM_io_parser(istream& iin, const Decorator_& H) :
SM_io_parser(std::istream& iin, const Decorator_& H) :
Base(H), in(iin), out(std::cout), verbose(0),
vn(0), en(0), fn(0), ln(0)
{ clear(); }

View File

@ -769,7 +769,7 @@ void init()
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse );
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular );
glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess );
//#define SCREENSHOTS
#define SCREENSHOTS
#ifdef SCREENSHOTS
GLfloat mat_emission[] = { 0.1, 0.1, 0.2, 0.0 };
glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);

View File

@ -1,28 +0,0 @@
%------------------------------------------------------------------------------
%KILLSTART
%LDEL TRACE.*?\)\;
\documentclass[a4paper]{article}
\usepackage{amsmath,MyLweb,version}
\input{defs}
\excludeversion{ignorecodeparts}
\begin{document}
\title{Spherical Geometry}
\author{Michael Seel}
\maketitle
\tableofcontents
\newpage
\section{The manual page}
\input{manpages/Sphere_point.man}
\input{manpages/Sphere_segment.man}
\input{manpages/Sphere_circle.man}
\input{manpages/Sphere_direction.man}
\input{manpages/Sphere_triangle.man}
\newpage
\bibliographystyle{alpha}
\bibliography{diss}
\end{document}

View File

@ -55,7 +55,7 @@ int main()
L.push_back(s2);
L.push_back(s3);
SCircle pos_xy(0,0,1);
partition( pos_xy, L.begin(), L.end(), Lp);
CGAL::partition( pos_xy, L.begin(), L.end(), Lp);
for (it = Lp.begin(); it != Lp.end(); ++it) {
std::cout << *it << std::endl;
}