⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extra.cpp

📁 空战游戏flacon源码
💻 CPP
字号:
//___________________________________________________________________________

#include "..\..\..\3Dlib\define.h"
#include "..\..\..\3Dlib\object.h"
#include "..\..\..\3Dlib\inline.h"
#include "..\..\..\3Dlib\math.h"
#include "extra.h"

//___________________________________________________________________________

/*
void glProcessObjectShadowQ (GLViewport *view, GLObject *object, GLfloat scale, GLAnimation *input, GLint textureSet)
{
	glProcessObject (view, object, scale, input, textureSet,
					OBJECT_TYPE_SHADOW | OBJECT_TYPE_USE_QUATERNION);
}

void glProcessObjectClipQ (GLViewport *view, GLObject *object, GLfloat scale, GLAnimation *input, GLint textureSet)
{
	glProcessObject (view, object, scale, input, textureSet, 
					OBJECT_TYPE_CLIPXZ | OBJECT_TYPE_USE_QUATERNION);
}

void glProcessObjectQ (GLViewport *view, GLObject *object, GLfloat scale, GLAnimation *input, GLint textureSet)
{
	glProcessObject (view, object, scale, input, textureSet, OBJECT_TYPE_USE_QUATERNION);
}
*/

void glProcessObjectShadow (GLViewport *view, GLObject *object, GLfloat scale, GLAnimation *input, GLint textureSet)
{
	glProcessObject (view, object, scale, input, textureSet, OBJECT_TYPE_SHADOW);
}

void glProcessObjectClip (GLViewport *view, GLObject *object, GLfloat scale, GLAnimation *input, GLint textureSet)
{
	glProcessObject (view, object, scale, input, textureSet, OBJECT_TYPE_CLIPXZ);
}

/*
+---------------------------------------------------------------------------+
|    glProcessObject                                                        |
+---------------------------------------------------------------------------+
|    Description:  Select object from detail list and display it            |
|                                                                           |
|    Parameters:   object = pointer to object                               |
+---------------------------------------------------------------------------+
|    Programmed by Erick Jap                            January 14, 1994    |
+---------------------------------------------------------------------------+
*/
void glProcessObject (GLViewport *view, GLObject *object, GLfloat scale,
					  GLAnimation *input, GLint textureSet, GLint objecttype)
{
	GLfloat				ObjectDistance;				// distance from camera
	GLObjectDetail		*objectDetail;
	GLint				dist;
	GLObject3D			curObject;

	curObject.view = view;
	curObject.ObjectType = objecttype;
	curObject.currentObject = object;
	curObject.ObjectIOffset.x = object -> objectCoordinate -> x - view -> CameraCoordinate.x;
	curObject.ObjectIOffset.y = object -> objectCoordinate -> y - view -> CameraCoordinate.y;
	curObject.ObjectIOffset.z = object -> objectCoordinate -> z - view -> CameraCoordinate.z;
	glMultVertex (&curObject.ObjectOffset, &curObject.ObjectIOffset, &view -> CameraTransformMatrix);

	ObjectDistance = glVectorLength (&curObject.ObjectIOffset);
	ObjectDistance *= view -> LODScale;
	if (scale != (GLfloat) 1.0) ObjectDistance /= scale;
	if (view -> glCalculateDepthCueValue (ObjectDistance)) return;
	
	dist = (GLint) ObjectDistance;
	objectDetail = object -> objectDetail;
	if (objectDetail) {
		while (objectDetail -> displayDistance) {
			if (dist < objectDetail -> displayDistance) {
				if (!objectDetail -> objectData) break;
				ProcessObjectDetail (	&curObject, objectDetail, 
										(GLObjectData *) objectDetail -> objectData, 
										scale, input, textureSet);
				break;
			}
			objectDetail++;
		}
	}
}	/* glProcessObject */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -