public override void DrawLine(ref IndexedVector3 from, ref IndexedVector3 to, ref IndexedVector3 fromColor, ref IndexedVector3 toColor) { if (m_lineIndex < m_lineVertexMaxSize - 2) { m_lineVertices[m_lineIndex].Position = from.ToVector3(); m_lineVertices[m_lineIndex++].Color = new Color(fromColor.ToVector3()); m_lineVertices[m_lineIndex].Position = to.ToVector3(); m_lineVertices[m_lineIndex++].Color = new Color(toColor.ToVector3()); } }
public void DrawText(String text, ref IndexedVector3 position, ref IndexedVector3 color) { TextPositionColor tpc = new TextPositionColor(); tpc.m_text = text; tpc.m_position = new Vector2(position.X, position.Y); tpc.m_color = new Color(color.ToVector3()); m_textPositionColours.Add(tpc); }
private Texture2D GetTexture(ref IndexedVector3 color) { if(!m_colorMap.ContainsKey(color)) { Texture2D newTexture = new Texture2D(m_game.GraphicsDevice,1,1); Color[] colorData = new Color[1]; newTexture.GetData<Color>(colorData); colorData[0] = new Color(color.ToVector3()); newTexture.SetData(colorData); m_colorMap[color] = newTexture; } return m_colorMap[color]; }
private void AddVertex(ref IndexedVector3 vec, ref IndexedVector3 normal, ref Vector2 tex) { if(m_texturedVertexCount < m_textureVertexMaxSize-1) { m_texturedVertices[m_texturedVertexCount++] = new VertexPositionNormalTexture(vec.ToVector3(), normal.ToVector3(),tex); } }
//---------------------------------------------------------------------------------------------- public virtual void UpdateCamera() { float rele = m_pitch; float razi = m_yaw; Quaternion rot = Quaternion.CreateFromAxisAngle(m_cameraUp.ToVector3(), razi); IndexedVector3 eyePos = new IndexedVector3(); eyePos[m_forwardAxis] = -m_cameraDistance; IndexedVector3 forward = eyePos; if (forward.LengthSquared() < MathUtil.SIMD_EPSILON) { forward = new IndexedVector3(0,0,-1); } IndexedVector3 right = IndexedVector3.Cross(m_cameraUp, IndexedVector3.Normalize(forward)); Quaternion roll = Quaternion.CreateFromAxisAngle(right.ToVector3(), -rele); rot.Normalize(); roll.Normalize(); IndexedMatrix m1 = IndexedMatrix.CreateFromQuaternion(rot); IndexedMatrix m2 = IndexedMatrix.CreateFromQuaternion(roll); IndexedMatrix m3 = m1 * m2; eyePos = new IndexedVector3(Vector3.Transform(eyePos.ToVector3(),(rot * roll))); //m_cameraTargetPosition = m_cameraPosition + eyePos; m_cameraPosition = eyePos; m_cameraPosition += m_cameraTargetPosition; if (m_glutScreenWidth == 0 && m_glutScreenHeight == 0) return; m_lookAt = IndexedMatrix.CreateLookAt(m_cameraPosition, m_cameraTargetPosition, m_cameraUp); Matrix t = Matrix.CreateLookAt(m_cameraPosition.ToVector3(), m_cameraTargetPosition.ToVector3(), m_cameraUp.ToVector3()); Matrix t2 = m_lookAt.ToMatrix(); if (t != t2) { int ibreak2 = 0; } int ibreak = 0; }