summaryrefslogtreecommitdiff
path: root/src/glu/sgi/libnurbs/internals/subdivider.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glu/sgi/libnurbs/internals/subdivider.h')
-rw-r--r--src/glu/sgi/libnurbs/internals/subdivider.h200
1 files changed, 0 insertions, 200 deletions
diff --git a/src/glu/sgi/libnurbs/internals/subdivider.h b/src/glu/sgi/libnurbs/internals/subdivider.h
deleted file mode 100644
index 4d539518186..00000000000
--- a/src/glu/sgi/libnurbs/internals/subdivider.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
- * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice including the dates of first publication and
- * either this permission notice or a reference to
- * http://oss.sgi.com/projects/FreeB/
- * shall be included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Except as contained in this notice, the name of Silicon Graphics, Inc.
- * shall not be used in advertising or otherwise to promote the sale, use or
- * other dealings in this Software without prior written authorization from
- * Silicon Graphics, Inc.
- */
-
-/*
- * subdivider.h
- *
- */
-
-#ifndef __glusubdivider_h_
-#define __glusubdivider_h_
-
-#include "mysetjmp.h"
-#include "bin.h"
-#include "flist.h"
-#include "slicer.h"
-#include "arctess.h"
-#include "trimvertex.h"
-#include "trimvertpool.h"
-
-class Arc;
-class Pool;
-class Renderhints;
-class Quilt;
-class Patchlist;
-class Curvelist;
-struct JumpBuffer;
-
-class Subdivider {
-public:
- Subdivider( Renderhints&, Backend& );
- ~Subdivider( void );
- void clear( void );
-
- void beginTrims( void ) {}
- void beginLoop( void );
- void addArc( REAL *, Quilt *, long );
- void addArc( int, TrimVertex *, long );
- void endLoop( void ) {}
- void endTrims( void ) {}
-
- void beginQuilts( void );
- void addQuilt( Quilt * );
- void endQuilts( void ) {}
-
- void drawCurves( void );
- void drawSurfaces( long );
-
- int ccwTurn_sl( Arc_ptr, Arc_ptr );
- int ccwTurn_sr( Arc_ptr , Arc_ptr );
- int ccwTurn_tl( Arc_ptr , Arc_ptr );
- int ccwTurn_tr( Arc_ptr , Arc_ptr );
-
- void setJumpbuffer( JumpBuffer * );
-
- void set_domain_distance_u_rate(REAL u_rate)
- {
- domain_distance_u_rate = u_rate;
- }
- void set_domain_distance_v_rate(REAL v_rate)
- {
- domain_distance_v_rate = v_rate;
- }
- void set_is_domain_distance_sampling(int flag)
- {
- is_domain_distance_sampling = flag;
- }
-
-private:
- void classify_headonleft_s( Bin &, Bin &, Bin &, REAL );
- void classify_tailonleft_s( Bin &, Bin &, Bin &, REAL );
- void classify_headonright_s( Bin &, Bin &, Bin &, REAL );
- void classify_tailonright_s( Bin &, Bin &, Bin &, REAL );
- void classify_headonleft_t( Bin &, Bin &, Bin &, REAL );
- void classify_tailonleft_t( Bin &, Bin &, Bin &, REAL );
- void classify_headonright_t( Bin &, Bin &, Bin &, REAL );
- void classify_tailonright_t( Bin &, Bin &, Bin &, REAL );
-
- enum dir { down, same, up, none };
- void tessellate( Arc_ptr, REAL );
- void monotonize( Arc_ptr , Bin & );
- int isMonotone( Arc_ptr );
- int decompose( Bin &, REAL );
-
-
- Slicer slicer;
- ArcTessellator arctessellator;
- Pool arcpool;
- Pool bezierarcpool;
- Pool pwlarcpool;
- TrimVertexPool trimvertexpool;
-
- JumpBuffer* jumpbuffer;
- Renderhints& renderhints;
- Backend& backend;
-
- Bin initialbin;
- Arc_ptr pjarc;
- int s_index;
- int t_index;
- Quilt * qlist;
- Flist spbrkpts;
- Flist tpbrkpts;
- Flist smbrkpts;
- Flist tmbrkpts;
- REAL stepsizes[4];
- int showDegenerate;
- int isArcTypeBezier;
-
- void samplingSplit( Curvelist&, int );
-
- void subdivideInS( Bin& );
- void splitInS( Bin&, int, int );
- void splitInT( Bin&, int, int );
- void samplingSplit( Bin&, Patchlist&, int, int );
- void nonSamplingSplit( Bin&, Patchlist&, int, int );
- void tessellation( Bin&, Patchlist& );
- void monosplitInS( Bin&, int, int );
- void monosplitInT( Bin&, int, int );
-
- void outline( Bin & );
- void freejarcs( Bin & );
- void render( Bin & );
- void split( Bin &, Bin &, Bin &, int, REAL );
- void tessellate( Bin &, REAL, REAL, REAL, REAL );
-
- inline void setDegenerate( void ) { showDegenerate = 1; }
- inline void setNonDegenerate( void ) { showDegenerate = 0; }
- inline int showingDegenerate( void ) { return showDegenerate; }
- inline void setArcTypeBezier( void ) { isArcTypeBezier = 1; }
- inline void setArcTypePwl( void ) { isArcTypeBezier = 0; }
- inline int isBezierArcType( void ) { return isArcTypeBezier; }
-
- void makeBorderTrim( const REAL *, const REAL * );
- void split( Bin &, int, const REAL *, int, int );
- void partition( Bin &, Bin &, Bin &, Bin &, Bin &, int, REAL );
- void findIrregularS( Bin & );
- void findIrregularT( Bin & );
-
-
- inline int bbox( TrimVertex *, TrimVertex *, TrimVertex *, int );
- static int bbox( REAL, REAL, REAL, REAL, REAL, REAL );
- static int ccw( TrimVertex *, TrimVertex *, TrimVertex * );
- void join_s( Bin &, Bin &, Arc_ptr, Arc_ptr );
- void join_t( Bin &, Bin &, Arc_ptr , Arc_ptr );
- int arc_split( Arc_ptr , int, REAL, int );
- void check_s( Arc_ptr , Arc_ptr );
- void check_t( Arc_ptr , Arc_ptr );
- inline void link( Arc_ptr , Arc_ptr , Arc_ptr , Arc_ptr );
- inline void simple_link( Arc_ptr , Arc_ptr );
-
- Bin* makePatchBoundary( const REAL *from, const REAL *to );
-
- /*in domain distance method, the tessellation is controled by two numbers:
- *GLU_U_STEP: number of u-segments per unit u length of domain
- *GLU_V_STEP: number of v-segments per unit v length of domain
- *These two numbers are normally stored in mapdesc->maxs(t)rate.
- *I (ZL) put these two numbers here so that I can optimize the untrimmed
- *case in the case of domain distance sampling.
- *These two numbers are set by set_domain_distance_u_rate() and ..._v_..().
- */
- REAL domain_distance_u_rate;
- REAL domain_distance_v_rate;
- int is_domain_distance_sampling;
-};
-
-inline void
-Subdivider::beginLoop( void )
-{
- pjarc = 0;
-}
-
-
-#endif /* __glusubdivider_h_ */