Как правильно инициализировать XMVECTOR в конструкторе?

У меня проблемы с поиском надежной документации о том, что происходит, когда вы вызываете конструктор по умолчанию в XMVECTOR.

MSDN говорит, что конструктор по умолчанию XMMATRIX не инициализирует переменные в 0 (http://msdn.microsoft.com/en-us/library/windows/desktop/ee420023(v=vs.85).aspx). Так что я чувствую, что то же самое относится и к XMVECTOR, но, к сожалению, я не могу найти это подтверждение на сайте MSDN.

Вернуться к исходному вопросу:

// Trackball.h
class Trackball
{
...
XMVECTOR m_eye;
XMVECTOR m_position;
XMVECTOR m_up;
XMVECTOR m_rotateStart;
XMVECTOR m_rotateEnd;
...
}

// Trackball.cpp
Trackball::Trackball(void) :
...
m_eye(),
m_rotateStart(),
m_rotateEnd(),
m_zoomStart(),
m_zoomEnd(),
m_panStart(),
m_panEnd(),
...
{
}

Но это просто использует конструктор по умолчанию для инициализации переменной правильно? Так что, если вышеприведенное предположение о том, что конструктор по умолчанию не инициализирует члены XMVECTOR, выполняется, тогда я должен делать это вместо этого ?:

// Trackball.cpp
Trackball::Trackball(void) :
...
m_eye(XMVectorZero()),
m_rotateStart(XMVectorZero()),
m_rotateEnd(XMVectorZero()),
m_zoomStart(XMVectorZero()),
m_zoomEnd(XMVectorZero()),
m_panStart(XMVectorZero()),
m_panEnd(XMVectorZero()),
...
{
}

Это выглядит некрасиво, но, возможно, правильно.

Спасибо за чтение и спасибо за любую помощь.

0

Решение

Я думаю, что ваш путь правильный, если вы думаете, что он уродлив, вы можете поместить его в тело конструктора, хотя он потеряет некоторую производительность, так как инициализация списка вызывает только конструктор копирования. если вы хотите увидеть, что делает конструктор по умолчанию XMVECTOR, вы можете запустить вашу программу в режиме отладки и посмотреть это в окне просмотра.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]