Main Page   Namespace List   Class Hierarchy   Compound List   File List   Header Files   Namespace Members   Compound Members   File Members   Related Pages  

/msg/src/nodes/shape.h

This is the verbatim text of the shape.h include file.
/* -*- C++ -*-
 * shape.h
 * $Id: shape.h,v 1.2 2000/07/21 22:31:45 ghali Exp $
 */

#ifndef SHAPE_H
#define SHAPE_H

#include <iostream.h>
#include <GL/glut.h>

#include <string>
#include <vector>
#include "node.h"

namespace MSG {

  class Shape : public Node {
    // A Shape node is an indexed face set
  protected:
    bool solids;                // is this shape a true solid?

    int numV;                   // number of vertices in shape

    GLfloat *coords;            // array 0.. 3*(numV-1) of vertex coordinates
                                // cannot use std::vector or Point3d since
                                // coords will be passed to glVertexPointer

    int numP;                   // number of polygons in shape

    int *vertsPerPoly;          // vertsPerPoly has size numP and each entry
                                // stores the number of vertices for
                                // the corresponding poly

    GLfloat *normals;           // numP normals

    int indexxSize;             // convenience variable:
                                // sum of elements in vertsPerPoly 

    GLuint *indexx;             // sequence of indices (not separated by -1)
                                // of vertex coordinates in coords
                                // cannot use std::vector since
                                // indexx will be passed to glDrawElements
  public:
    Shape(char* inputFile);
    virtual ~Shape();

    void performTransformations(std::vector<TransformGroup*> transforms);

    void draw();

    virtual void render(std::vector<ActiveLight*>* &activelights,
                        std::vector<TransformGroup*> transforms);

    virtual bool handleEvent(Event* event);

    friend ostream& operator<<( ostream& out, const Shape& shape );
  };
}
#endif

Generated at Sat Jul 22 00:32:16 2000 for MSG by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999