public override void Update()
    {
        base.Update();
        if (isPlacingNewObject)
        {
            SetEditObjectAtMouse();
        }
        else if (isSquareMultiSelectionInputActive && isMouseDragging)
        {
            List <BIWEntity> allEntities = null;

            allEntities = entityHandler.GetAllEntitiesFromCurrentScene();

            foreach (BIWEntity entity in allEntities)
            {
                if (!entity.rootEntity.meshRootGameObject || entity.rootEntity.meshesInfo.renderers.Length <= 0)
                {
                    continue;
                }

                if (BIWUtils.IsWithInSelectionBounds(entity.rootEntity.meshesInfo.mergedBounds.center, lastMousePosition, Input.mousePosition))
                {
                    outlinerController.OutlineEntity(entity);
                }
                else
                {
                    outlinerController.CancelEntityOutline(entity);
                }
            }
        }
    }
Exemple #2
0
    public void EndMultiVoxelSelection()
    {
        List <BIWEntity> voxelEntities = biwEntityHandler.GetAllVoxelsEntities();

        foreach (BIWEntity voxelEntity in voxelEntities)
        {
            if (BIWUtils.IsWithInSelectionBounds(voxelEntity.rootEntity.gameObject.transform, lastMousePosition, Input.mousePosition))
            {
                biwEntityHandler.SelectEntity(voxelEntity);
            }
        }

        outlinerController.SetOutlineCheckActive(true);
        outlinerController.CancelAllOutlines();
    }
    private void EndBoundMultiSelection()
    {
        freeCameraController.SetCameraCanMove(true);
        List <BIWEntity> allEntities = null;

        allEntities = entityHandler.GetAllEntitiesFromCurrentScene();

        List <BIWEntity> selectedInsideBoundsEntities = new List <BIWEntity>();
        int alreadySelectedEntities = 0;

        if (!isMultiSelectionActive)
        {
            entityHandler.DeselectEntities();
        }

        foreach (BIWEntity entity in allEntities)
        {
            if (entity.rootEntity.meshRootGameObject && entity.rootEntity.meshesInfo.renderers.Length > 0)
            {
                if (BIWUtils.IsWithInSelectionBounds(entity.rootEntity.meshesInfo.mergedBounds.center, lastMousePosition, Input.mousePosition) &&
                    !entity.IsLocked)
                {
                    if (entity.IsSelected)
                    {
                        alreadySelectedEntities++;
                    }

                    entityHandler.SelectEntity(entity);
                    selectedInsideBoundsEntities.Add(entity);
                }
            }
        }

        if (selectedInsideBoundsEntities.Count == alreadySelectedEntities && alreadySelectedEntities > 0)
        {
            foreach (BIWEntity entity in selectedInsideBoundsEntities)
            {
                entityHandler.DeselectEntity(entity);
            }
        }

        outlinerController.CancelAllOutlines();
    }