int row. col: // for screen extents // для экстентов экрана

int numlnside: // number of objects on list // число объектов на список

GeomObj* inside[10]: // array of object pointers // массив указателей на объекты

Ray(){start.set(0.0.0): dir.set(O.O.O); numlnside - 0:}

Ray(Point3 origin); // constructor: set start point of ray // конструктор: устанавливаем начальную точку луча

Ray(Point3& origin. Vector3& direction)
{ start.set(origin): dir.set(direction): numlnside - 0;}
void setStart(Point3& p){start.set(p);}
void setDir(float x. float y. float z)

{dir.x - x; dir.у - у: dir.z - z:}

void setRayDirection(Light *L): // for shadow feelers // для щупов теней

void setRayDirection(Vector3& dir); // for spawned rays // для порожденных лучей

int isInShadowO:
void makeGenericRay(GeomObj* p. Ray& gr);
}:
Hitlnfo $№№<№№№№&
class Hitlnfo {
// data for each hit with a surface

// данные для каждого соударения с поверхностью

public:

double hitTime; // the hit time // момент соударения

GeomObj* hitObject: // the object hit // объект соударения

int surface: // which surface is hit? // с какой поверхностью соударение?

int isEntering: // is ray entering the object? // входит ли луч в объект?

Point3 hitPoint: // hit point // точка соударения

Vector3 hitNormal: // normal at hit point // нормаль в точке соударения

HitlnfoO
{
1000

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

hitObject - NULL: hitTime - -1000:
surface - 0: isEntering - 0: } void set(H1tInfo& h) j {
hitTime - h.hitTime: hitObject - h.hitObject:
surface - h.surface: isEntering - h.isEntering:
hi tPoi nt.set(h.hi tPoint): hi tNormal.set(h.hi tNormal):
}
//wowmmmm intersection mmmmmmm

class Intersection! // hold the hit list // содержит список соударений public:

♦define maxNumHits 8

int numHIts: // the number of hits // число соударений

Hitlnfo hit[maxNumHits]: // list of hits: // список соударений

Intersection){numHits - 0:} // default constructor // конструктор по умолчанию

void set(Intersections intr)
{
// copy intersection info

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