Example #1
0
    public void SetOffset(EditToolOffsetType offsetType)
    {
        var   offsetValue       = 1.0f * Time.fixedDeltaTime * (int)offsetType;
        float newEditToolOffset = _Offset + offsetValue;
        float speedBoost        = (newEditToolOffset / _OffsetMax) * (int)offsetType * _SpeedDistanceFactor;

        newEditToolOffset += speedBoost;
        float newEditToolOffset_original = newEditToolOffset;

        // Must be greater than the dynamic minimum offset (that depends on current value of _Scale)
        newEditToolOffset = newEditToolOffset >= _OffsetMinDynamic ? newEditToolOffset : _OffsetMinDynamic;

        // Must be greater than minimum distance
        newEditToolOffset = newEditToolOffset >= _OffsetMin ? newEditToolOffset : _OffsetMin;

        // And less than maximun offset
        newEditToolOffset = newEditToolOffset <= _OffsetMax ? newEditToolOffset : _OffsetMax;

        if (transform.localPosition.z < _OffsetMin)
        {
            transform.localPosition = new Vector3(0.0f, 0.0f, _OffsetMin);
        }

        if (newEditToolOffset >= _OffsetMin && newEditToolOffset <= _OffsetMax)
        {
            if (transform.localPosition.z >= _OffsetMin && transform.localPosition.z <= _OffsetMax)
            {
                if (newEditToolOffset >= _OffsetMin)
                {
                    transform.localPosition = new Vector3(0.0f, 0.0f, newEditToolOffset);
                }
            }
        }
        else if (transform.localPosition.z < _OffsetMin)
        {
            transform.localPosition = new Vector3(0.0f, 0.0f, _OffsetMin);
            newEditToolOffset       = _OffsetMin;
        }
        else if (transform.localPosition.z > _OffsetMax)
        {
            transform.localPosition = new Vector3(0.0f, 0.0f, _OffsetMax);
            newEditToolOffset       = _OffsetMax;
        }

        if (newEditToolOffset_original == newEditToolOffset)
        {
            // Trigger Offset accepted event
            OnOffsetAccepted?.Invoke(this, EventArgs.Empty);
        }

        _Offset = newEditToolOffset;
        _point_cloud_manager.EditToolSetPosition(transform.position);
    }
Example #2
0
    void Start()
    {
        SetActive(false);
        transform.parent = _Parent.transform;
        SetParentOffsetZ(_ParentOffsetZ);

        gameObject.GetComponent <Renderer>().material = _Material;

        _Scale     = _ScaleMin;
        _ScaleType = EditToolScaleType.NONE;

        _OffsetMin  = _ScaleMin / 2 + _ParentOffsetZ;
        _Offset     = _OffsetMin;
        _OffsetType = EditToolOffsetType.NONE;

        SetMode(EditToolMode.NONE);

        SetOffsetAndScaleDynamic();
        SelectedPointColorSet(_SelectedPointColor);
    }
Example #3
0
 public void SetOffsetType(EditToolOffsetType offsetType)
 {
     _OffsetType = offsetType;
 }