#include "nurbsSub.cpp" namespace PLib { #ifdef NO_IMPLICIT_TEMPLATES template class SurfSample ; template class NurbsSubSurface ; template class NurbSurface ; template class RenderMesh; template class RenderMeshPS; template class RenderMeshVRML; template class RenderMeshVRML97; template class RenderMeshPoints ; template <> double NurbSurface::epsilon = 1e-6 ; template <> double SurfSample::epsilon = 1e-6 ; template void DrawSubdivision( NurbSurface *, double tolerance ); template void DrawEvaluation( NurbSurface * ); template int FindBreakPoint( double u, double * kv, int m, int k ); template void AllocNurb( NurbSurface *, double *, double * ); template void CloneNurb( NurbSurface *, NurbSurface * ); template void FreeNurb( NurbSurface * ); template void RefineSurface( NurbSurface *, NurbSurface *, BOOL ); template void CalcPoint( double, double, NurbSurface *, Point_nD *, Point_nD *, Point_nD * ); template void GetNormal( NurbSurface * n, int indV, int indU ); template void DoSubdivision( NurbSurface * n, double tolerance, BOOL dirflag, int level ) ; template void BasisFunctions( double u, int brkPoint, double * kv, int k, double * bvals ); template void BasisDerivatives( double u, int brkPoint, double * kv, int k, double * dvals ); template void CalcAlpha( double * ukv, double * wkv, int m, int n, int k, double *** alpha ); template void AdjustNormal( SurfSample * samp ); template BOOL TestFlat( NurbSurface * n, double tolerance ); template void EmitTriangles( NurbSurface * n ); template void SplitSurface( NurbSurface * parent, NurbSurface * kid0, NurbSurface * kid1, BOOL dirflag ); template BOOL IsCurveStraight( NurbSurface * n,double tolerance,int crvInd,BOOL dirflag ); template void FixNormals( SurfSample * s0, SurfSample * s1, SurfSample * s2 ); template int SplitKV( double * srckv,double ** destkv,int * splitPt,int m, int k ); template void MakeNewCorners( NurbSurface * parent,NurbSurface * kid0,NurbSurface * kid1,BOOL dirflag ); template void ProjectToLine( Point_nD * firstPt, Point_nD * lastPt, Point_nD * midPt ); //template class deque > ; //template class deque ; #ifdef USING_LINUX #endif #ifdef USING_GNU_SOLARIS template void fill<__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, PLib::Point_nD >(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, PLib::Point_nD const &); template void deque, 0>::insert<__deque_iterator >(__deque_iterator, __deque_iterator, __deque_iterator, forward_iterator_tag); template void deque, __default_alloc_template, 0>::insert<__deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0> >(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, forward_iterator_tag); template __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0> __uninitialized_copy_aux<__deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0> >(__deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __false_type); template void __uninitialized_fill_aux<__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, PLib::Point_nD >(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, PLib::Point_nD const &, __false_type); template void __uninitialized_fill_aux *, PLib::Point_nD >(PLib::Point_nD *, PLib::Point_nD *, PLib::Point_nD const &, __false_type); template __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0> __uninitialized_copy_aux<__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0> >(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __false_type); template void fill<__deque_iterator, int>(__deque_iterator, __deque_iterator, int const &); template void fill(int *, int *, int const &); template void deque, __default_alloc_template, 0>::insert_aux<__deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0> >(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, unsigned int); template void deque, 0>::insert_aux<__deque_iterator >(__deque_iterator, __deque_iterator, __deque_iterator, unsigned int); #endif #ifdef USING_GNU_DECALPHA template void fill<__deque_iterator, Point_nD &, Point_nD *, 0>, Point_nD >(__deque_iterator, Point_nD &, Point_nD *, 0>, __deque_iterator, Point_nD &, Point_nD *, 0>, Point_nD const &); template void deque, __default_alloc_template<0, 0>, 0>::insert<__deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0> >(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, forward_iterator_tag); template __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0> __uninitialized_copy_aux<__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0> >(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __false_type); template __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0> __uninitialized_copy_aux<__deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0> >(__deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __false_type); template void __uninitialized_fill_aux<__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, PLib::Point_nD >(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, PLib::Point_nD const &, __false_type); template void __uninitialized_fill_aux *, PLib::Point_nD >(PLib::Point_nD *, PLib::Point_nD *, PLib::Point_nD const &, __false_type); template void deque, 0>::insert<__deque_iterator >(__deque_iterator, __deque_iterator, __deque_iterator, forward_iterator_tag); template void fill<__deque_iterator, int>(__deque_iterator, __deque_iterator, int const &); template void fill(int *, int *, int const &); template void deque, 0>::insert<__deque_iterator >(__deque_iterator, __deque_iterator, __deque_iterator, forward_iterator_tag); template void deque, __default_alloc_template, 0>::destroy_nodes_at_back(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>); template void deque, __default_alloc_template, 0>::destroy_nodes_at_back(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>); template void deque, __default_alloc_template, 0>::destroy_nodes_at_front(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>); template void deque, __default_alloc_template, 0>::destroy_nodes_at_front(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>); template void deque, __default_alloc_template, 0>::insert<__deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0> >(__deque_iterator, PLib::Point_nD &, PLib::Point_nD *, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, __deque_iterator, PLib::Point_nD const &, PLib::Point_nD const &, 0>, forward_iterator_tag); template void* __default_alloc_template::free_list ; template char* __default_alloc_template::end_free; template char* __default_alloc_template::heap_size; template char* __default_alloc_template::start_free; #endif #endif }