private void DrawBoundingBox(IObjectAnchorsServiceEventArgs instance) { MultiAnchorObjectPlacement placement; if (!_objectPlacements.TryGetValue(instance.InstanceId, out placement)) { var boundingBox = _objectAnchorsService.GetModelBoundingBox(instance.ModelId); Debug.Assert(boundingBox.HasValue); placement = Instantiate(MultiAnchorPlacementPrefab).GetComponent <MultiAnchorObjectPlacement>(); var bbox = placement.ModelSpaceContent.AddComponent <WireframeBoundingBox>(); bbox.UpdateBounds(boundingBox.Value.Center, Vector3.Scale(boundingBox.Value.Extents, instance.ScaleChange), boundingBox.Value.Orientation, WireframeMaterial); var mesh = new GameObject("Model Mesh"); mesh.AddComponent <MeshRenderer>().sharedMaterial = WireframeMaterial; mesh.transform.SetParent(placement.ModelSpaceContent.transform, false); MeshLoader.AddMesh(mesh, _objectAnchorsService, instance.ModelId); _objectPlacements.Add(instance.InstanceId, placement); } if (instance.SurfaceCoverage > placement.SurfaceCoverage || !instance.Location.HasValue) { placement.UpdatePlacement(instance); } }