<!-- Visual -->
<element name="visual" required="*">
  <description>The visual properties of the link. This element specifies the shape of the object (box, cylinder, etc.) for visualization purposes.</description>

  <attribute name="name" type="string" default="__default__" required="1">
    <description>Unique name for the visual element within the scope of the parent link.</description>
  </attribute>

  <element name="cast_shadows" type="bool" default="true" required="0">
    <description>If true the visual will cast shadows.</description>
  </element>

  <element name="laser_retro" type="double" default="0.0" required="0">
    <description>will be implemented in the future release.</description>
  </element>

  <element name="transparency" type="double" default="0.0" required="0">
    <description>The amount of transparency( 0=opaque, 1 = fully transparent)</description>
  </element>
  
  <element name="pose" type="pose" default="0 0 0 0 0 0" required="0">
    <description>Origin of the visual relative to its parent.</description>
  </element>

  <element name="material" required="0">
    <description>The material of the visual element.</description>

    <element name="script" required="0">
      <description>Name of material from an installed script file. This will override the color element if the script exists.</description>

      <element name="uri" type="string" default="__default__" required="0">
        <description>URI of the material script file</description>
      </element>

      <element name="name" type="string" default="__default__" required="1">
        <description>Name of the script within the script file</description>
      </element>
    </element>

    <element name="shader" required="0">
      <description></description>

      <attribute name="type" type="string" default="pixel" required="1">
        <description>vertex, pixel, normal_map_objectspace, normal_map_tangentspace</description>
      </attribute>

      <element name="normal_map" type="string" default="__default__" required="0">
        <description>filename of the normal map</description>
      </element>
    </element>

    <element name="ambient" type="color" default="0 0 0 1" required="0">
      <description>The ambient color of a material specified by set of four numbers representing red/green/blue, each in the range of [0,1].</description>
    </element>

    <element name="diffuse"  type="color" default="0 0 0 1" required="0">
      <description>The diffuse color of a material specified by set of four numbers representing red/green/blue/alpha, each in the range of [0,1].</description>
    </element>

    <element name="specular" type="color" default="0 0 0 1" required="0">
      <description>The specular color of a material specified by set of four numbers representing red/green/blue/alpha, each in the range of [0,1].</description>
    </element>

    <element name="emissive" type="color" default="0 0 0 1" required="0">
      <description>The emissive color of a material specified by set of four numbers representing red/green/blue, each in the range of [0,1].</description>
    </element>
  </element> <!-- End Material -->

  <include filename="geometry.sdf" required="1"/>
</element> <!-- End Visual -->
