}
float scaleFactor - 1.0/(float)sqrt(sizeSq):
х *- scaleFactor: у *- scaleFactor: z *- scaleFactor:
}
// Color3 methods // методы Color3
void Color3 ::add(Color3& src. Color3& refl) {
// add the product of source color and reflection coefficient // добавляем произведение цвета источника и коэффициента // отражения
red +- src.red * refl.red:
green +- src.green * refl.green;
blue +- src.blue * refl.blue:
}
void Color3:: add(Color3* coir) {
// add coir to this color
// добавляем coir к данному цвету
red +- coir.red : green +- coir.green: blue +- coir.blue:}
void Color3 :: build4tuple(float v[]) {
// load 4-tuple with this color: v[3] - 1 for homogeneous // загружаем тетраду с этим цветом: v[3] - 1 для однородных
v[0] - red: v[l] - green: v[2] - blue; v[3] - l.Of:
}
// Affine4 methods
// методы Affine4
Affine4::Affine4(){
// make identity transform
// создаем тождественное преобразование
m[0] - m[5] - m[10] - m[15] - 1.0:
m[l] - m[2] - m[3] - m[4] - 0.0:
ВЗ. Класс SCENE и сопутствующие классы
ш[б] - ш[7] - ш[В] - ш[9] - 0.0: ш[11]- ш[12] - т[13] - т[14] - 0.0:
}
void Affine4 :: setIdentityMatrix(){
// make identity transform
// создаем тождественное преобразование
m[0] - m[5] - m[10] - m[15] - 1.0:
m[l] - m[2] - m[3] - m[4] - 0.0;
m[6] - m[7] - m[8] - m[9] - 0.0:
m[ll]- m[12] - m[13] - m[14] - 0.0:
}
void Affine4 ::set(Affine4 a)
// set this matrix to a
// устанавливаем эту матрицу в а
{
for(int i - 0; i < 16: i++) m[i]-a.m[i]:
}
11««««««« preMult »»»»»» void Affine4 ::preMult(Affine4 n) {
// postmultlplies this with n // умножает this справа на n
float sum:
Affine4 tmp:
tmp.set(*this): // tmp copy // копия tmp
// following mult's : this - tmp * n // следующие умножения: this - tmp * n for(int с - 0: с < 4: С++)
fordnt r - 0: r <4 : r++)
{
sum » 0:
fordnt k - 0: k < 4: k++)
sum +- n.m[4 * k + r]* tmp.m[4 * c + k]: m[4 * с + r] - sum:
}
// end of for loops // конец циклов for
}
// end of preMultO // конец preMultO //«««««« postMult »»>»»» void Affine4 ::postMult(Affine4 n){ // postmultiplies this with n // this умножается справа на n