fourierknots/fourier_syn.cpp
void FourierKnot::toCurveOnS3(const int sampling, Curve<Vector4> *curve) {
  float isampling = 1./(float)sampling, s;
  Vector4 p,t;
  for (int i=0;i<sampling;++i) {
    s = (float)i*isampling;
    // Tangent gets normalized in biarc constructor
    project_to_S3((*this)(s), this->prime(s), p, t);
    curve->append(p,t);
  }
}
// sample fourier knot, project to S^3 and put that in initialized
// pointer to Curve curve 
sample fourier knot, project to S^3 and put that in initialized
pointer to Curve curve
sample fourier knot project to S^3 and put that in initialized pointer to Curve curve
void FourierKnot::toCurveOnS3(const int sampling, Curve<Vector4> *curve) {
  float isampling = 1./(float)sampling, s;
  Vector4 p,t;
  for (int i=0;i<sampling;++i) {
    s = (float)i*isampling;
    project_to_S3((*this)(s), this->prime(s), p, t);
    curve->append(p,t);
  }
}
void FourierKnot :: toCurveOnS3 ( const int sampling , Curve < Vector4 > * curve ) { float isampling = 1. / ( float ) sampling , s ; Vector4 p , t ; for ( int i = 0 ; i < sampling ; ++ i ) { s = ( float ) i * isampling ; project_to_S3 ( ( * this ) ( s ) , this -> prime ( s ) , p , t ) ; curve -> append ( p , t ) ; } }
sample fourier knot, project to S^3 and put that in initialized
pointer to Curve curve
sample fourier knot project to S^3 and put that in initialized pointer to Curve curve
// Tangent gets normalized in biarc constructor