public virtual void Render() { if (!Visible) { return; } if (MatrixChanged) { var matrix = Matrix4.CreateTranslation(Position.X, Position.Y, Position.Z); if (Rotation != Vector3.Zero) { var r1 = Matrix4.CreateRotationX(Rotation.X); var r2 = Matrix4.CreateRotationY(Rotation.Y); var r3 = Matrix4.CreateRotationZ(Rotation.Z); matrix = r1 * r2 * r3 * matrix; } if (Scale != Vector3.Zero) { var s1 = Matrix4.CreateScale(Scale); matrix = s1 * matrix; } for (int i = 0; i < vertices.Length; i++) { calculated[i] = vertices[i].Apply(matrix, Color); } MatrixChanged = false; } MasterRenderer.AddToBatch(calculated); }
public virtual void PushToBatchRenderer() { if (!Visible) { return; } MasterRenderer.AddToBatch(vertices); }