face.h

Go to the documentation of this file.
00001 /**
00002  *\file         face.h
00003  *
00004  *              
00005  *\brief
00006  *
00007  *\author       Xianming Chen\n
00008  *              Computer Science Department\n
00009  *              University of Utah
00010  *
00011  *\date         15 Aug 2006\n
00012  *              Copyright (c) 2006, University of Utah
00013  */
00014 
00015 
00016 #ifndef _FACE_H
00017 #define _FACE_H
00018 
00019 #include "node_fwd_dcl.h"
00020 
00021 namespace euler
00022 {
00023   class face_t
00024   {
00025   public:
00026       id_t id;
00027       solid_t *s;
00028       loop_t *l;
00029       face_t *pre, *nxt;
00030       vector_t eq;
00031 
00032   public:
00033       /**
00034        *  construct an arc at xy-plane, assume the start point of arc (e->v) is positioned at angle theta1.
00035        *  return the edge tailed at the last vertex.
00036        */
00037       edge_t* arc(edge_t* e, point_t const& cntr, float r, float theta1, float theta2, int segs=8);
00038 
00039 
00040       loop_t* kemr(edge_t* e);                //!< return created inner loop.
00041       edge_t* mekr(edge_t * e1, edge_t * e2); //!< return new half edge v1v2.
00042 
00043       loop_t* new_loop();
00044       loop_t* new_loop(vertex_t *v);
00045       void del_loop(loop_t* lp);
00046 
00047   private:
00048       friend class solid_t;
00049       face_t(solid_t* s) : id(cur_id++), s(s), l(0), pre(0), nxt(s->f) { }
00050       ~face_t();
00051       
00052       static id_t cur_id;
00053   };
00054 
00055 
00056 }
00057 
00058 #endif

Generated on Wed Aug 30 16:27:58 2006 for euler by  doxygen 1.4.6