{
  "title": "ObjectSymbol3DLayer",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "description": "ObjectSymbol3DLayer is used to render Point geometries using a volumetric 3D shape (e.g., a sphere or cylinder) with a Symbol3D in a SceneView.",
  "properties": {
    "anchor": {
      "type": "string",
      "description": "The positioning of the object relative to the geometry.",
      "enum": [
        "bottom",
        "center",
        "origin",
        "relative",
        "top"
      ],
      "default": "origin"
    },
    "anchorPosition": {
      "type": "array",
      "description": "When `anchor` equals `relative`, this property specifies the positioning of the object relative to the geometry as a fraction of the symbol layer's bounding box. Otherwise it is ignored.",
      "items": {
        "type": "number"
      },
      "minItems": 3,
      "maxItems": 3
    },
    "castShadows": {
      "type": "boolean",
      "description": "Boolean to control the shadow casting behaviour of the rendered geometries.",
      "default": true
    },
    "depth": {
      "type": "number",
      "description": "Object depth in meters, positive only",
      "minimum": 0
    },
    "enable": {
      "type": "boolean"
    },
    "heading": {
      "type": "number",
      "description": "Rotation angle around Z axis in degrees. At 0 degrees, the model points in the direction of the Y-axis. Positive values indicate clockwise rotation (when looked at from the top). [Detailed description](static/objectSymbolLayerOrientation.md)."
    },
    "height": {
      "type": "number",
      "description": "Object height in meters, positive only",
      "minimum": 0
    },
    "material": {
      "$ref": "material_schema.json"
    },
    "resource": {
      "$ref": "objectSymbol3DLayer_resource_schema.json"
    },
    "roll": {
      "type": "number",
      "description": "Rotation angle around Y axis in degrees. At 0 degrees, the model is level. A positive value lifts the left part and lowers the right part of the model. [Detailed description](static/objectSymbolLayerOrientation.md)."
    },
    "tilt": {
      "type": "number",
      "description": "Rotation angle around X axis in degrees. At 0 degrees, the model is level. A positive value lifts the front and lowers the back of the model. [Detailed description](static/objectSymbolLayerOrientation.md)."
    },
    "type": {
      "type": "string",
      "description": "Specifies the type of symbol used.",
      "enum": [
        "Object"
      ]
    },
    "width": {
      "type": "number",
      "description": "Object width in meters, positive only",
      "minimum": 0
    }
  },
  "required": [
    "type"
  ],
  "additionalProperties": false,
  "esriDocumentation": {
    "additionalInformation": "- [Size property interaction](static/objectSymbolLayerSize.md)\n- [Anchor and `origin`](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-ObjectSymbol3DLayer.html#anchor) in ArcGIS API for JavaScript.",
    "examples": [
      {
        "title": "Object symbol layer",
        "code": {
          "symbolLayers": [
            {
              "type": "Object",
              "resource": {
                "primitive": "sphere"
              },
              "width": 50000,
              "height": 50000,
              "material": {
                "color": [
                  128,
                  255,
                  0
                ]
              }
            }
          ]
        }
      },
      {
        "title": "Object symbol layer with 3-axis rotation",
        "code": {
          "symbolLayers": [
            {
              "type": "Object",
              "resource": {
                "primitive": "diamond"
              },
              "width": 50000,
              "height": 50000,
              "material": {
                "color": [
                  128,
                  255,
                  0
                ]
              },
              "heading": 12,
              "tilt": 10,
              "roll": 5
            }
          ]
        }
      },
      {
        "title": "Object symbol layer with relative anchor",
        "description": "Places a diamond symbol such that its Southern tip coincides with the point geometry (assuming ENU coordinates).",
        "code": {
          "symbolLayers": [
            {
              "type": "Object",
              "resource": {
                "primitive": "diamond"
              },
              "width": 10000,
              "anchor": "relative",
              "anchorPosition": [
                0,
                -0.5,
                0
              ],
              "material": {
                "color": [
                  128,
                  255,
                  0
                ]
              }
            }
          ]
        }
      },
      {
        "title": "Object symbol layer with casting shadows disabled",
        "code": {
          "symbolLayers": [
            {
              "type": "Object",
              "resource": {
                "primitive": "cone"
              },
              "width": 50,
              "height": 100,
              "castShadows": false
            }
          ]
        }
      }
    ]
  }
}
