DebugGrid.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using Urho.Shapes;
  2. namespace Urho.SharpReality
  3. {
  4. public class DebugGrid : Component
  5. {
  6. public override void OnAttachedToNode(Node node)
  7. {
  8. const int horizontalSize = 5;
  9. const float scale = 1f;
  10. Color color = new Color(0.7f, 0.7f, 0.7f);
  11. var geom = node.CreateComponent<CustomGeometry>();
  12. geom.BeginGeometry(0, PrimitiveType.LineList);
  13. var material = new Material();
  14. material.SetTechnique(0, CoreAssets.Techniques.NoTextureUnlitVCol, 1, 1);
  15. geom.SetMaterial(material);
  16. var halfSize = horizontalSize / 2;
  17. for (int i = -halfSize; i <= halfSize; i++)
  18. {
  19. for (int j = -halfSize; j <= halfSize; j++)
  20. {
  21. //x
  22. geom.DefineVertex(new Vector3(i, j, -halfSize) * scale);
  23. geom.DefineColor(color);
  24. geom.DefineVertex(new Vector3(i, j, halfSize) * scale);
  25. geom.DefineColor(color);
  26. //y
  27. geom.DefineVertex(new Vector3(j, -halfSize, i) * scale);
  28. geom.DefineColor(color);
  29. geom.DefineVertex(new Vector3(j, halfSize, i) * scale);
  30. geom.DefineColor(color);
  31. //z
  32. geom.DefineVertex(new Vector3(-halfSize, j, i) * scale);
  33. geom.DefineColor(color);
  34. geom.DefineVertex(new Vector3(halfSize, j, i) * scale);
  35. geom.DefineColor(color);
  36. }
  37. }
  38. var origin = node.CreateChild();
  39. origin.SetScale(0.05f);
  40. origin.CreateComponent<Urho.Shapes.Sphere>();
  41. geom.Commit();
  42. base.OnAttachedToNode(node);
  43. }
  44. }
  45. }