00001 #include "nurbsSub.cpp"
00002
00003 namespace PLib {
00004
00005 #ifdef NO_IMPLICIT_TEMPLATES
00006
00007 template class SurfSample<double> ;
00008 template class NurbsSubSurface<double> ;
00009 template class NurbSurface<double> ;
00010 template class RenderMesh<double>;
00011 template class RenderMeshPS<double>;
00012 template class RenderMeshVRML<double>;
00013 template class RenderMeshVRML97<double>;
00014 template class RenderMeshPoints<double> ;
00015
00016
00017 double NurbSurface<double>::epsilon = 1e-6 ;
00018 double SurfSample<double>::epsilon = 1e-6 ;
00019
00020 template void DrawSubdivision( NurbSurface<double> *, double tolerance );
00021 template void DrawEvaluation( NurbSurface<double> * );
00022
00023 template int FindBreakPoint( double u, double * kv, int m, int k );
00024 template void AllocNurb( NurbSurface<double> *, double *, double * );
00025 template void CloneNurb( NurbSurface<double> *, NurbSurface<double> * );
00026 template void FreeNurb( NurbSurface<double> * );
00027 template void RefineSurface( NurbSurface<double> *, NurbSurface<double> *, BOOL );
00028
00029 template void CalcPoint( double, double, NurbSurface<double> *, Point_nD<double,3> *, Point_nD<double,3> *, Point_nD<double,3> * );
00030
00031
00032 template void GetNormal( NurbSurface<double> * n, int indV, int indU );
00033 template void DoSubdivision( NurbSurface<double> * n, double tolerance, BOOL dirflag, int level ) ;
00034 template void BasisFunctions( double u, int brkPoint, double * kv, int k, double * bvals );
00035 template void BasisDerivatives( double u, int brkPoint, double * kv, int k, double * dvals );
00036 template void CalcAlpha( double * ukv, double * wkv, int m, int n, int k, double *** alpha );
00037
00038 template void AdjustNormal( SurfSample<double> * samp );
00039 template BOOL TestFlat( NurbSurface<double> * n, double tolerance );
00040 template void EmitTriangles( NurbSurface<double> * n );
00041 template void SplitSurface( NurbSurface<double> * parent,
00042 NurbSurface<double> * kid0, NurbSurface<double> * kid1,
00043 BOOL dirflag );
00044
00045
00046 template BOOL IsCurveStraight( NurbSurface<double> * n,double tolerance,int crvInd,BOOL dirflag );
00047 template void FixNormals( SurfSample<double> * s0, SurfSample<double> * s1, SurfSample<double> * s2 );
00048 template int SplitKV( double * srckv,double ** destkv,int * splitPt,int m, int k );
00049 template void MakeNewCorners( NurbSurface<double> * parent,NurbSurface<double> * kid0,NurbSurface<double> * kid1,BOOL dirflag );
00050 template void ProjectToLine( Point_nD<double,3> * firstPt, Point_nD<double,3> * lastPt, Point_nD<double,3> * midPt );
00051
00052
00053
00054
00055
00056 #ifdef USING_LINUX
00057 #endif
00058
00059 #ifdef USING_GNU_SOLARIS
00060 template void fill<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, PLib::Point_nD<double, 3> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, PLib::Point_nD<double, 3> const &);
00061 template void deque<int, __default_alloc_template<false, 0>, 0>::insert<__deque_iterator<int, int const &, int const &, 0> >(__deque_iterator<int, int &, int *, 0>, __deque_iterator<int, int const &, int const &, 0>, __deque_iterator<int, int const &, int const &, 0>, forward_iterator_tag);
00062 template void deque<PLib::Point_nD<double, 3>, __default_alloc_template<false, 0>, 0>::insert<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, forward_iterator_tag);
00063 template __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0> __uninitialized_copy_aux<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __false_type);
00064 template void __uninitialized_fill_aux<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, PLib::Point_nD<double, 3> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, PLib::Point_nD<double, 3> const &, __false_type);
00065 template void __uninitialized_fill_aux<PLib::Point_nD<double, 3> *, PLib::Point_nD<double, 3> >(PLib::Point_nD<double, 3> *, PLib::Point_nD<double, 3> *, PLib::Point_nD<double, 3> const &, __false_type);
00066 template __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0> __uninitialized_copy_aux<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __false_type);
00067 template void fill<__deque_iterator<int, int &, int *, 0>, int>(__deque_iterator<int, int &, int *, 0>, __deque_iterator<int, int &, int *, 0>, int const &);
00068 template void fill<int *, int>(int *, int *, int const &);
00069 template void deque<PLib::Point_nD<double, 3>, __default_alloc_template<false, 0>, 0>::insert_aux<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, unsigned int);
00070 template void deque<int, __default_alloc_template<false, 0>, 0>::insert_aux<__deque_iterator<int, int const &, int const &, 0> >(__deque_iterator<int, int &, int *, 0>, __deque_iterator<int, int const &, int const &, 0>, __deque_iterator<int, int const &, int const &, 0>, unsigned int);
00071 #endif
00072
00073 #ifdef USING_GNU_DECALPHA
00074 template void fill<__deque_iterator<Point_nD<double, 3>, Point_nD<double, 3> &, Point_nD<double, 3> *, 0>, Point_nD<double, 3> >(__deque_iterator<Point_nD<double, 3>, Point_nD<double, 3> &, Point_nD<double, 3> *, 0>, __deque_iterator<Point_nD<double, 3>, Point_nD<double, 3> &, Point_nD<double, 3> *, 0>, Point_nD<double, 3> const &);
00075 template void deque<PLib::Point_nD<double, 3>, __default_alloc_template<0, 0>, 0>::insert<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, forward_iterator_tag);
00076 template __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0> __uninitialized_copy_aux<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __false_type);
00077 template __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0> __uninitialized_copy_aux<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __false_type);
00078 template void __uninitialized_fill_aux<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, PLib::Point_nD<double, 3> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, PLib::Point_nD<double, 3> const &, __false_type);
00079 template void __uninitialized_fill_aux<PLib::Point_nD<double, 3> *, PLib::Point_nD<double, 3> >(PLib::Point_nD<double, 3> *, PLib::Point_nD<double, 3> *, PLib::Point_nD<double, 3> const &, __false_type);
00080 template void deque<int, __default_alloc_template<0, 0>, 0>::insert<__deque_iterator<int, int const &, int const &, 0> >(__deque_iterator<int, int &, int *, 0>, __deque_iterator<int, int const &, int const &, 0>, __deque_iterator<int, int const &, int const &, 0>, forward_iterator_tag);
00081 template void fill<__deque_iterator<int, int &, int *, 0>, int>(__deque_iterator<int, int &, int *, 0>, __deque_iterator<int, int &, int *, 0>, int const &);
00082 template void fill<int *, int>(int *, int *, int const &);
00083 template void deque<int, __default_alloc_template<true, 0>, 0>::insert<__deque_iterator<int, int const &, int const &, 0> >(__deque_iterator<int, int &, int *, 0>, __deque_iterator<int, int const &, int const &, 0>, __deque_iterator<int, int const &, int const &, 0>, forward_iterator_tag);
00084 template void deque<PLib::Point_nD<double, 3>, __default_alloc_template<false, 0>, 0>::destroy_nodes_at_back(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>);
00085 template void deque<PLib::Point_nD<double, 3>, __default_alloc_template<true, 0>, 0>::destroy_nodes_at_back(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>);
00086 template void deque<PLib::Point_nD<double, 3>, __default_alloc_template<false, 0>, 0>::destroy_nodes_at_front(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>);
00087 template void deque<PLib::Point_nD<double, 3>, __default_alloc_template<true, 0>, 0>::destroy_nodes_at_front(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>);
00088 template void deque<PLib::Point_nD<double, 3>, __default_alloc_template<true, 0>, 0>::insert<__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0> >(__deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> &, PLib::Point_nD<double, 3> *, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, __deque_iterator<PLib::Point_nD<double, 3>, PLib::Point_nD<double, 3> const &, PLib::Point_nD<double, 3> const &, 0>, forward_iterator_tag);
00089 template void* __default_alloc_template<true, 0>::free_list ;
00090 template char* __default_alloc_template<true, 0>::end_free;
00091 template char* __default_alloc_template<true, 0>::heap_size;
00092 template char* __default_alloc_template<true, 0>::start_free;
00093
00094 #endif
00095
00096 #endif
00097
00098 }