local AU = 149597870700 -- 1 AU

local RadialGrid = {
  Identifier = "ExampleRadialGrid",
  Parent = "Root",
  Transform = {
    Scale = {
      Type = "StaticScale",
      Scale = AU
    }
  },
  Renderable = {
    Type = "RenderableRadialGrid",
    Opacity = 0.8,
    Color = { 0.6, 1.0, 0.7 },
    LineWidth = 3.0,
    GridSegments = { 3, 4 },
    Radii = { 0.2, 1.0 }
  },
  GUI = {
    Name = "Example Radial Grid",
    Path = "/Examples/Grids"
  }
}

local PlanarGrid = {
  Identifier = "ExampleGrid",
  Transform = {
    Scale = {
      Type = "StaticScale",
      Scale = AU
    }
  },
  Renderable = {
    Type = "RenderableGrid",
    Color = { 0.0, 1.0, 0.8 },
    LineWidth = 2.0,
    Segments = { 6, 10 },
    Size = { 1, 2 },
    HighlightColor = { 1.0, 0.8, 0.0 },
    HighlightLineWidth = 3.2,
    HighlightRate = { 3, 3 }
  },
  GUI = {
    Name = "Example Grid",
    Path = "/Examples/Grids"
  }
}

local SphericalGrid = {
  Identifier = "ExampleSphericalGrid",
  Transform = {
    Scale = {
      Type = "StaticScale",
      Scale = AU
    }
  },
  Renderable = {
    Type = "RenderableSphericalGrid",
    Color = { 1.0, 0.5, 0.2 },
    LineWidth = 2.0,
    Segments = 40
  },
  GUI = {
    Name = "Example Spherical Grid",
    Path = "/Examples/Grids"
  }
}

local BoxGrid = {
  Identifier = "ExampleBoxGrid",
  Transform = {
    Scale = {
      Type = "StaticScale",
      Scale = AU
    }
  },
  Renderable = {
    Type = "RenderableBoxGrid",
    Color = { 0.5, 0.0, 1.0 },
    LineWidth = 2.0,
    Size = { 2, 2, 2 },
    Enabled = false
  },
  GUI = {
    Name = "Example Box Grid",
    Path = "/Examples/Grids"
  }
}


asset.onInitialize(function()
  openspace.addSceneGraphNode(RadialGrid)
  openspace.addSceneGraphNode(PlanarGrid)
  openspace.addSceneGraphNode(SphericalGrid)
  openspace.addSceneGraphNode(BoxGrid)
end)

asset.onDeinitialize(function()
  openspace.removeSceneGraphNode(BoxGrid)
  openspace.removeSceneGraphNode(SphericalGrid)
  openspace.removeSceneGraphNode(PlanarGrid)
  openspace.removeSceneGraphNode(RadialGrid)
end)

asset.export(RadialGrid)
asset.export(PlanarGrid)
asset.export(SphericalGrid)
asset.export(BoxGrid)
