((Shape*)newShape)-xntrl.set(currMtrl): // load transform and its inverse // загружаем преобразование и обратное ему
((Shape*)newShape)->transf.set(*(affStk.tos->affn)):
((Shape*)newShape)->invTransiF.set(*(affStk.tos->invAffn));
return newShape:
}
// end of default: block // конец блока default }
// end of outer switch
// конец внешнего переключателя
}
// end of while // конец while return NULL: }
// end of getObject
// конец getObject
// DefUnitStack methods
void DefUnitStack :: push(string n. string s) { D4S *temp_d4s - new D4S: temp_d4s->current - new DefUnitCn, s): temp_d4s->next - stack: stack - teinp_d4s:
}
void DefUnitStack :: printO { D4S *temp - stack; string t: while (temp) {
cout « temp->current->name « ":" :
cout « temp->current->stuff « endl:
temp - temp->next:
}
}
int DefUnitStack :: search(string s) { D4S *temp - stack: while (temp) {
if ( temp->current->name - s ) { return(l):
}
temp - teinp->next:
}
В4. Класс NOISE
return(O):
}
string DefUnitStack :: contents(string s) { D4S Петр - stack: while (temp) {
if (temp->current->name - s ) {
return(temp->current->stuff):
}
temp = temp->next;
}
return(NULL):
}
void DefUnitStack :: releaseO {
while(stack) {
D4S* tmp - stack: // grab it // захватываем его
//cerr « "releasing def_stack item: "« tmp->current->name« endl: // освобождение элемента def_stack
stack - stack->next: // advance p // продвигаем p
delete tmp->current: // release 2 strings // освобождаем две строки
delete tmp: // release node // освобождаем узел
}
stack - NULL:
}
// end of SDL.cpp // конец SDL.cpp
B4. Класс NOISE
//Noise.h
// Noise class for generating pseudorandom noise fields
// based on noise lattice a la Peachey/Perlin
// Класс Noise для генерирования полей псевдослучайного
// шума на основе решетки Печи-Перлина
♦include <assert.h>
class Noise{
public:
NoiseO // construct a noise object // конструируем объект класса noise
{
Приложение В. Некоторые полезные классы и служебные подпрограммы