Exemplo n.º 1
0
 public void MoveSphape(Vector3 position, Quaternion rotation, Vector3 scale, float radius)
 {
     _position   = position;
     _rotation   = rotation;
     _localScale = scale;
     _radius     = radius;
     _realRadius = radius * LocalScale.Maximum();
     _circle.MoveSphape(_position, _rotation * Vector3.up, _realRadius);
 }
Exemplo n.º 2
0
        private void UpdateMatrix()
        {
            _cylinderMatrix = Matrix4x4.TRS(_position, _rotation, _localScale * _radius);
            Vector3 size = new Vector3(0, _lenght / 2, 0);

            _p1           = _cylinderMatrix.MultiplyPoint3x4(Vector3.zero - ((-size)));
            _p2           = _cylinderMatrix.MultiplyPoint3x4(Vector3.zero + ((-size)));
            _delta        = _p2 - _p1;
            _deltaSquared = Vector3.Dot(_delta, _delta);

            _circle1.MoveSphape(_p1, _cylinderMatrix.UpFast(), _realRadius);
            _circle2.MoveSphape(_p2, _cylinderMatrix.DownFast(), _realRadius);
        }
        private void UpdateMatrix()
        {
            _coneMatrix = Matrix4x4.TRS(_position, _rotation, _localScale * _radius);
            Vector3 size = new Vector3(0, _lenght / 2, 0);

            _p1                    = _coneMatrix.MultiplyPoint3x4(Vector3.zero - ((-size)));
            _p2                    = _coneMatrix.MultiplyPoint3x4(Vector3.zero + ((-size)));
            _delta                 = _p2 - _p1;
            _deltaUnit             = _delta.FastNormalized();
            _deltaDist             = _delta.magnitude;
            _deltaDistSquared      = Vector3.Dot(_delta, _delta);
            _constantIsInsideShape = (_realSquaredRadius) / _deltaDist;
            _heightAtApex          = Vector3.Dot(_deltaUnit, _p1);// _deltaUnit.x * _p1.x + _deltaUnit.y * _p1.y + _deltaUnit.z * _p1.z;

            _circleBase.MoveSphape(_p2, _coneMatrix.DownFast(), _realRadius);
        }
Exemplo n.º 4
0
 private void UpdateMatrix()
 {
     _discMatrix = Matrix4x4.TRS(_position, _rotation, _localScale * _radius);
     _circle.MoveSphape(_position, _discMatrix.UpFast(), _realRadius);
 }