22 radiansPerMeter = 1.0f /
radius
37 radialTransformer.
angleOffset = radialParent.angleOffset + rectSpaceDelta.x / radialParent.radiusOffset;
38 radialTransformer.heightOffset = radialParent.heightOffset + rectSpaceDelta.y;
39 radialTransformer.radiusOffset = radialParent.radiusOffset + rectSpaceDelta.z;
40 radialTransformer.radiansPerMeter = 1.0f / (radialTransformer.radiusOffset);
55 Vector3 anchorRectPos =
space.transform.InverseTransformPoint(
anchor.transform.position);
56 anchorDelta = localRectPos - anchorRectPos;
63 position.x = Mathf.Sin(angle) *
radius;
72 float angle = Mathf.Atan2(localWarpedPos.x, localWarpedPos.z);
73 float height = localWarpedPos.y;
74 float radius =
new Vector2(localWarpedPos.x, localWarpedPos.z).magnitude;
81 Vector3 anchorRectPos =
space.transform.InverseTransformPoint(
anchor.transform.position);
82 Vector3 localRectPos = anchorRectPos + anchorDelta;
90 Vector3 anchorRectPos =
space.transform.InverseTransformPoint(
anchor.transform.position);
91 anchorDelta = localRectPos - anchorRectPos;
95 Quaternion rotation = Quaternion.Euler(0, angle * Mathf.Rad2Deg, 0);
97 return rotation * localRectRot;
103 float angle = Mathf.Atan2(localWarpedPos.x, localWarpedPos.z);
105 return Quaternion.Euler(0, -angle * Mathf.Rad2Deg, 0) * localWarpedRot;
111 Vector3 anchorRectPos =
space.transform.InverseTransformPoint(
anchor.transform.position);
112 anchorDelta = localRectPos - anchorRectPos;
116 Quaternion rotation = Quaternion.Euler(0, angle * Mathf.Rad2Deg, 0);
118 return rotation * localRectDirection;
124 float angle = Mathf.Atan2(localWarpedPos.x, localWarpedPos.z);
126 return Quaternion.Euler(0, -angle * Mathf.Rad2Deg, 0) * localWarpedDirection;
132 Vector3 anchorRectPos =
space.transform.InverseTransformPoint(
anchor.transform.position);
133 anchorDelta = localRectPos - anchorRectPos;
140 position.x = Mathf.Sin(angle) *
radius;
144 Quaternion rotation = Quaternion.Euler(0, angle * Mathf.Rad2Deg, 0);
146 return Matrix4x4.TRS(position, rotation, Vector3.one);
150 Vector3 elementRectPos =
space.transform.InverseTransformPoint(element.position);
151 Vector3 anchorRectPos =
space.transform.InverseTransformPoint(
anchor.transform.position);
152 Vector3 delta = elementRectPos - anchorRectPos;
override ITransformer CosntructBaseTransformer()
override void UpdateRadialTransformer(ITransformer transformer, ITransformer parent, Vector3 rectSpaceDelta)
override ITransformer ConstructTransformer(LeapSpaceAnchor anchor)