75 lines
1.9 KiB
C
75 lines
1.9 KiB
C
|
/******************************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__
|