📄 extra.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 + -