#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 <> float NurbSurface::epsilon = 1e-6 ; template <> float SurfSample::epsilon = 1e-6 ; template void DrawSubdivision( NurbSurface *, float tolerance ); template void DrawEvaluation( NurbSurface * ); template int FindBreakPoint( float u, float * kv, int m, int k ); template void AllocNurb( NurbSurface *, float *, float * ); template void CloneNurb( NurbSurface *, NurbSurface * ); template void FreeNurb( NurbSurface * ); template void RefineSurface( NurbSurface *, NurbSurface *, BOOL ); template void CalcPoint( float, float, NurbSurface *, Point_nD *, Point_nD *, Point_nD * ); template void GetNormal( NurbSurface * n, int indV, int indU ); template void DoSubdivision( NurbSurface * n, float tolerance, BOOL dirflag, int level ) ; template void BasisFunctions( float u, int brkPoint, float * kv, int k, float * bvals ); template void BasisDerivatives( float u, int brkPoint, float * kv, int k, float * dvals ); template void CalcAlpha( float * ukv, float * wkv, int m, int n, int k, float *** alpha ); template void AdjustNormal( SurfSample * samp ); template BOOL TestFlat( NurbSurface * n, float tolerance ); template void EmitTriangles( NurbSurface * n ); template void SplitSurface( NurbSurface * parent, NurbSurface * kid0, NurbSurface * kid1, BOOL dirflag ); template BOOL IsCurveStraight( NurbSurface * n,float tolerance,int crvInd,BOOL dirflag ); template void FixNormals( SurfSample * s0, SurfSample * s1, SurfSample * s2 ); template int SplitKV( float * srckv,float ** 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 vector >; //template class deque > ; //template class deque ; #ifdef USING_LINUX /* template void fill(int *, int *, int const &); template void fill<_Deque_iterator, int>(_Deque_iterator, _Deque_iterator, int const &); 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, allocator >, 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 class _Deque_base,0>; template void deque, allocator >, 0>::_M_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_base, allocator >, 0>::_M_initialize_map(unsigned int); template void _Deque_base, allocator >, 0>::_M_destroy_nodes(PLib::Point_nD **, PLib::Point_nD **); template _Deque_base, allocator >, 0>::~_Deque_base(void); template void deque, 0>::insert<_Deque_iterator >(_Deque_iterator, _Deque_iterator, _Deque_iterator, forward_iterator_tag); template void _Deque_base, allocator >, 0>::_M_create_nodes(PLib::Point_nD **, PLib::Point_nD **); template void deque, 0>::_M_insert_aux<_Deque_iterator >(_Deque_iterator, _Deque_iterator, _Deque_iterator, unsigned int); template void _Deque_base, 0>::_M_initialize_map(unsigned int); template _Deque_base, 0>::~_Deque_base(void); template void _Deque_base, 0>::_M_destroy_nodes(int **, int **); template void _Deque_base, 0>::_M_create_nodes(int **, int **); */ #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 }