/******************************Module*Header*******************************\
* Module Name: objects.h
*
* Copyright (c) 1994 Microsoft Corporation
*
\**************************************************************************/
#ifndef __objects_h__
#define __objects_h__
#include "sspipes.h"
#include "state.h"
class OBJECT_BUILD_INFO {
public:
float radius;
float divSize;
int nSlices;
BOOL bTexture;
IPOINT2D *texRep;
};
/**************************************************************************\
*
* OBJECT classes
*
* - Display list objects
*
\**************************************************************************/
class OBJECT {
protected:
int listNum;
int nSlices;
public:
void Draw();
OBJECT();
~OBJECT();
};
class PIPE_OBJECT : public OBJECT {
private:
void Build( OBJECT_BUILD_INFO *state, float length, float start_s, float s_end );
public:
PIPE_OBJECT( OBJECT_BUILD_INFO *state, float length );
PIPE_OBJECT( OBJECT_BUILD_INFO *state, float length, float start_s, float end_s );
};
class ELBOW_OBJECT : public OBJECT {
private:
void Build( OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s );
public:
ELBOW_OBJECT( OBJECT_BUILD_INFO *state, int notch );
ELBOW_OBJECT( OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s );
};
class BALLJOINT_OBJECT : public OBJECT {
private:
void Build( OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s );
public:
// texturing version only
BALLJOINT_OBJECT( OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s );
};
class SPHERE_OBJECT : public OBJECT {
private:
void Build( OBJECT_BUILD_INFO *state, float radius, float start_s, float end_s );
public:
SPHERE_OBJECT( OBJECT_BUILD_INFO *state, float radius, float start_s, float end_s );
SPHERE_OBJECT( OBJECT_BUILD_INFO *state, float radius );
};
#endif // __objects_h__