77 lines
1.7 KiB
C++
77 lines
1.7 KiB
C++
//-----------------------------------------------------------------------------
|
|
// File: nstate.h
|
|
//
|
|
// Desc: NORMAL_STATE
|
|
//
|
|
// Copyright (c) 1994-2000 Microsoft Corporation
|
|
//-----------------------------------------------------------------------------
|
|
#ifndef __nstate_h__
|
|
#define __nstate_h__
|
|
|
|
#define NORMAL_PIPE_COUNT 5
|
|
#define NORMAL_TEX_PIPE_COUNT 3
|
|
#define NUM_JOINT_STYLES 3
|
|
|
|
|
|
// styles for pipe joints
|
|
enum
|
|
{
|
|
ELBOWS = 0,
|
|
BALLS,
|
|
EITHER
|
|
};
|
|
|
|
// joint types
|
|
enum
|
|
{
|
|
ELBOW_JOINT = 0,
|
|
BALL_JOINT
|
|
};
|
|
|
|
// shchemes for choosing directions
|
|
enum
|
|
{
|
|
NORMAL_SCHEME_CHOOSE_DIR_RANDOM,
|
|
NORMAL_SCHEME_CHOOSE_DIR_TURN,
|
|
NORMAL_SCHEME_CHOOSE_DIR_STRAIGHT
|
|
};
|
|
|
|
// this used for traditional pipe drawing
|
|
class PIPE_OBJECT;
|
|
class ELBOW_OBJECT;
|
|
class SPHERE_OBJECT;
|
|
class BALLJOINT_OBJECT;
|
|
class STATE;
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Name:
|
|
// Desc:
|
|
//-----------------------------------------------------------------------------
|
|
class NORMAL_STATE
|
|
{
|
|
public:
|
|
int m_jointStyle;
|
|
int m_bCycleJointStyles;
|
|
IDirect3DDevice8* m_pd3dDevice;
|
|
|
|
PIPE_OBJECT* m_pShortPipe;
|
|
PIPE_OBJECT* m_pLongPipe;
|
|
ELBOW_OBJECT* m_pElbows[4];
|
|
SPHERE_OBJECT* m_pBallCap;
|
|
SPHERE_OBJECT* m_pBigBall;
|
|
BALLJOINT_OBJECT* m_pBallJoints[4];
|
|
|
|
NORMAL_STATE( STATE *pState );
|
|
~NORMAL_STATE();
|
|
|
|
void Reset();
|
|
void BuildObjects( float radius, float divSize, int nSlices,
|
|
BOOL bTexture, IPOINT2D *pTexRep );
|
|
int ChooseJointType();
|
|
};
|
|
|
|
#endif // __nstate_h__
|