ПРОГРАМИРУЕМ 3D ГРАФИКУ ИСПОЛЬЗУЯ DirectX


Интерфейсы и классы - часть 21


Хотя я и сказал, что контейнер не обязательно сохранять после завершения его работы, он все же может принести определенную пользу. Дело в том, что пользователь может выбрать объект, с которым желает произвести какие-то манипуляции в макете. Хотелось бы управлять им посредством объекта-контейнера C++. Непонятно? Мы рассмотрим эту тему в главе 6, когда будем изучать манипуляции с объектами, входящими в макет.

C3dStage

Класс C3dStage используется классом C3dWnd и обеспечивает устройство и ракурс, необходимые для отображения трехмерного макета в окне. Данный класс

Библиотека классов 3dPlus ^iS. 83

содержит функции для определения параметров камеры, установки качества визуализации и задания фона для текущего макета. Вряд ли на первых порах вам придется пользоваться всеми функциями этого класса. Вам скорее всего понадобятся функции для определения камеры. Макет можно прикрепить к сцене и в классе C3dWnd, содержащем функцию SetScene, которая передает запрос в класс сцены:

BOOL C3dWnd::SetScene(C3dScene* pScene)

{

if (!m_pStage) return FALSE;

m_pScene = pScene;

m_pStage-»SetScene (m_p3cene) ;

if (m_pScene) (

// Разрешить воспроизведение

// во время пассивной работы приложения m_bEnableUpdates = TRUE;

( else (

m_bEnableUpdates = FALSE;

}

return TRUE;

}

C3dLighf

Базовый класс для производных классов, объекты которых представляют источники света. Его функция Create вызывается производными классами для конструирования соответствующего интерфейса:

BOOL C3dLight::Create(D3DRMLIGHTTYPE type,

double r, double g, double b)

{

// Создать фрейм для источника света if (!C3dFrame::Create(NULL)) return FALSE;

// Создать объект-источник света ASSERT(m_pILight == NULL);

if (!the3dEngine.CreateLight(type, r, g, b, &m_pILight)) ( return FALSE;

} ASSERT(m_pILight) ;

// Присоединить источник света к его фрейму ASSERT(m_plFrame) ;

m_hr = m_pIFrame-»AddLight (m pILight);

if (FAILED(m_hr)) return FALSE;

return TRUE;

}

84 liy Глава 3. Интерфейсы и классы

CSdAmbLight




Начало  Назад  Вперед



Книжный магазин