float minReflectlvity. minTransparency; // boo! isInShadow(Ray& f):

// for ray tracing: implementation left to the reader // для трассировки лучей: реализация оставлена читателю Scene():light(NULL).obj(NULL).tail(NULL)

ВЗ. Класс SCENE и сопутствующие классы

// default constructor // конструктор по умолчанию {

currMtrl .setDefaultO: background.set(0.О.О.6f): ambient.setCO.If.0.If.0.If); minReflectivity - 0.5; minTransparency - 0.5: maxRecursionDepth - 3:

}
SceneCstring fname){Scene(): read(fname);} void freeSceneO:

void makeLightsOpenGL(){/* to be implemented */} // подлежит реализации

void drawSceneOpenGLO;
bool read(string fname):
GeomObj* getObjectO: private:
// private stuff used only for reading a scene

// private материал, используется только для чтения сцены

int line:
int nextline:
if stream *file_in;
strstream *f_in;
strstream temp_fin;
DefUni tStack *def_stack:

GeomObj * tail: // tail of object list // остаток списка объектов

AffineStack affStk; // affine stack // аффинный стек

Material currMtrl:
string nexttoken(void):
float getFloatO:
bool isidentifier(string keyword): void cleanUpO:
mTokenType whichtoken(string keyword);
}:
// end of Scene.h

// конец файла Scene.h

#endif //SDL.cpp
// support code for the classes in SDL.h

// вспомогательный код для классов в файле SDL.h

#include "SDL.h"
// Vector3 methods

// методы Vector3

Vector3 Vector3 :: cross(Vector3 b) //return this cross b

//возвращаем зто векторное произведение на b {

Приложение В. Некоторые полезные классы и служебные подпрограммы

Vector3 c(y*b.z - z*b.y. z*b.x - x*b.z. x*b.y - y*b.x); return c:
}
float Vector3 ;: dot(Vector3 b)
// return this dotted with b

// возвращаем это скалярное произведение с b

{return х * b.x + у * b.y + z * b.z:}

void Vector3 :: normalize()
// adjust this vector to unit length

// приводим данный вектор к единичной длине

{
double sizeSq - x*x + y*y + z*z:
if(s1zeSq < 0.0000001)
{
cerr « "\nnonralizeO sees vector (0.0.0)!": return:
// does nothing to zero vectors:

// для нулевых векторов не делается ничего


⇐ Предыдущая| |Следующая ⇒