Witam!
Wykorzystuję MDX do wizualizacji chmury punktów zapisanej w strukturze
CustomVertex.TransformedColored m_dxPointCloud
Moim problemem polega na tym, że wizualizacja widoczna jest po uruchomieniu jedynie w rzucie wzdłuż osi z i żadne transformacje ani Transform.World ani Transform.View nie są w stanie obrócić tego co widzę.
Kąt obrotu uzyskuję z TrackBara, po każdorazowym przesunięciu TrackBara wywoływana jest funkcja RenderDX();
Funkcja inicjalizująca DX:
void InitializeDX()
{
this.m_dxDevice = null;
this.m_dxPresentParams = new PresentParameters();
m_dxPresentParams.Windowed = true;
m_dxPresentParams.SwapEffect = SwapEffect.Discard;
m_dxDevice = new Device( 0, DeviceType.Hardware, dxPanel, CreateFlags.SoftwareVertexProcessing, m_dxPresentParams );
m_dxDevice.VertexFormat = CustomVertex.TransformedColored.Format;
}
Funkcja odświeżania widoku:
void RenderDX()
{
m_dxDevice.Clear(ClearFlags.Target, Color.White, 1, 0);
m_dxDevice.BeginScene();
m_dxDevice.DrawUserPrimitives( PrimitiveType.PointList, m_iPointsCount, m_dxCloudPoint );
m_dxDevice.Transform.World = Matrix.RotationY( (float)RotationBar.Value );
m_dxDevice.EndScene();
m_dxDevice.Present();
}