private void SetPosition()
 {
     if (isDecorationSet && !(manipulatableObject == null))
     {
         Vector3 vector = IglooTargetUtil.GetBaseOfTargetPoint(manipulatableObject, minCameraDistance);
         if (!boundsForCameraTarget.Contains(vector))
         {
             vector = boundsForCameraTarget.ClosestPoint(vector);
         }
         Vector3 a = Camera.main.WorldToScreenPoint(vector);
         Vector3 v = a * (1f / canvas.scaleFactor);
         v.y += panelTransform.rect.height * 0.25f;
         panelTransform.anchoredPosition = v;
     }
 }
    private void calculateTargetPositionForSelectedObject(ManipulatableObject mo)
    {
        switch (sceneStateData.State)
        {
        case SceneStateData.SceneState.Edit:
            if (mo.Type == DecorationLayoutData.DefinitionType.Structure)
            {
                return;
            }
            break;

        case SceneStateData.SceneState.StructurePlacement:
            if (mo.Type == DecorationLayoutData.DefinitionType.Decoration)
            {
                return;
            }
            break;
        }
        Vector3 baseOfTargetPoint = IglooTargetUtil.GetBaseOfTargetPoint(mo, MinCameraTargetDistanceOnNewItem);

        updateEditCameraTargetPosition(baseOfTargetPoint);
        CenterCameraOnSelect = false;
        eventDispatcher.DispatchEvent(new IglooUIEvents.ShowSelectedUIWidget(mo, boundsForCameraTarget, MinCameraTargetDistanceOnNewItem));
    }