// system includes
#include <math.h>
#include <iostream.h>
#include <stdlib.h>

// openGL includes
#include <GL/gl.h>
#include <GL/glu.h>

// gprims utility library: need definition of max_flt, etc.
#include "gprims/vector.H"

// local includes
#include "drawutils.H"
#include "constraint.H"
#include "object.H"

Constraint::Constraint( Float4 *eqn ) {
  _eqn = new Float4(0.0,0.0,0.0,0.0);
  setEqn(eqn);
}

int
Constraint::setEqn(Float4 *eqn) {
  (*_eqn) = (*eqn);
  return 1;
}

int
Constraint::draw(float r, float g, float b, BB *bb) {
  Float3 verts[4];
  if (bb->intersectPlane(_eqn,verts)) {
    glBegin(GL_QUADS);
    glColor3f(r,g,b);
    glVertex3f(verts[0].x, verts[0].y, verts[0].z);
    glVertex3f(verts[1].x, verts[1].y, verts[1].z);
    glVertex3f(verts[2].x, verts[2].y, verts[2].z);
    glVertex3f(verts[3].x, verts[3].y, verts[3].z);
    glEnd();
    return 1;
  }
  return 0;
}
