{
// load 4-tuple with this color: v[3] - 1 for homogeneous // загружаем тетрады этим цветом: v[3] - 1 для однородных v[0] - х: v[l] - у; v[2] - z: v[3] - l.Of:
}
}:
//mmmmmm vector3 class mmmmom
class Vector3{ public:
float x.y.z:
void set(float dx. float dy. float dz){ x - dx: у - dy: z - dz:}
votd set(Vector3& v){ x - v.x: у - v.у: z - v.z:}
void flip(){x - -x: у - -у: z - -z;} // reverse this vector // обращаем этот вектор
void setDiff(Point3& a. Point3& b) // set to difference a - b // устанавливаем его в разность а - b
{ х - а.х - b.x: у - а.у - b.y: z - a.z - b.z:} void normalizeO:
// adjust this vector to unit length
// приводим этот вектор к единичной длине
Vector3(float xx. float yy. float zz){x - xx: у - yy: z - zz:}
Vector3(Vector3& v){x - v.x: у - v.y: z - v.z:}
Vector30{x - у - z - 0:} // default constructor // конструктор no умолчанию
Vector3 cross(Vector3 b): // return this cross b
// возвращаем это векторное произведение на b
float dot(Vector3 b): // return this dotted with b // возвращаем это скалярное произведение на b
}:
Приложение В. Некоторые полезные классы и служебные подпрограммы
// ттттттт Coic-гз class ттттет
class Со1огЗ {
// holds a red. green, blue 3-tuple
// содержит триаду красного, зеленого и синего цветов
public:
float red. green, blue:
Color3(){red - green - blue - 0:}
Color3(float r. float g. float b){red - r: green - g: blue - b:} Color3(Color3& c){red - c.red: green - c.green: blue - c.blue:} void set(float r. float g. float b){red - r: green - g: blue - b:} void set(Color3& c)
{red - c.red: green - c.green: blue - c.blue:} void add(float r. float g. float b)
{red +- r: green +- g: blue +- b:} void add(Color3& src. Color3& refl): void add(Color3& coir): void build4tuple(Aoat v[]):
}:
//mmeommmm light class mmmmomm
class Light{
// for a linked list of light sources' color and position // для связанного списка цвета и положения источников света public:
Point3 pos:
СоТогЗ color:
Light* next:
void setPosition(Point3 p){pos.set(p):} void setColor(Color3 c){color.set(c);} Light(){next - NULL:}