Exemplo n.º 1
0
ts::DeBoorNet& ts::DeBoorNet::operator=(ts::DeBoorNet&& other)
{
    if (&other != this) {
        ts_deboornet_free(&deBoorNet);
        swap(other);
    }
    return *this;
}
Exemplo n.º 2
0
void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    // draw spline
    glColor3f(1.0, 1.0, 1.0);
    glLineWidth(3);
    gluBeginCurve(theNurb);
        gluNurbsCurve(
            theNurb, 
            spline.n_knots, 
            spline.knots, 
            spline.dim, 
            spline.ctrlp, 
            spline.order, 
            GL_MAP1_VERTEX_3
        );
    gluEndCurve(theNurb);

    // draw control points
    glColor3f(1.0, 0.0, 0.0);
    glPointSize(5.0);
	float j=0;
    size_t i;
    glBegin(GL_POINTS);
      for (i = 0; i < spline.n_ctrlp; i++) {
		  j+=1.0/n_ctrlp;
		  glColor3f(0.0, j, 0.0);
         glVertex3fv(&spline.ctrlp[i * spline.dim]);
	  }
    glEnd();
    
    // draw evaluation
    glColor3f(0.0, 0.0, 1.0);
    glPointSize(5.0);
    tsDeBoorNet net;
    ts_bspline_evaluate(&spline, u, &net);
    glBegin(GL_POINTS);
        glVertex3fv(net.result);
    glEnd();
    ts_deboornet_free(&net);
    
    u += 0.001;
    if (u > 4.f) {
        u = 0.f;
    }
    
    glutSwapBuffers();
    glutPostRedisplay();
}
Exemplo n.º 3
0
ts::DeBoorNet::~DeBoorNet()
{
    ts_deboornet_free(&deBoorNet);
}