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