public void SetMappedAxis(Vector3 axis) { if (!IsMapped) { return; } Vector3 perp180 = _transform.GetAxis3D(0, AxisSign.Positive); if (_mappedAxisDesc.Index == 0) { perp180 = _transform.GetAxis3D(1, AxisSign.Positive); } _transform.Rotate3D(QuaternionEx.FromToRotation3D(Axis, axis, perp180)); }
public void MakeSliderPlane(GizmoTransform sliderPlaneTransform, PlaneId planeId, GizmoLineSlider3D firstAxisSlider, GizmoLineSlider3D secondAxisSlider, Camera camera) { PlaneQuadrantId quadrantId = sliderPlaneTransform.Get3DQuadrantFacingCamera(planeId, camera); AlignToQuadrant(sliderPlaneTransform, planeId, quadrantId, true); Vector3 firstQdrAxis = sliderPlaneTransform.GetAxis3D(PlaneIdHelper.GetFirstAxisDescriptor(planeId, quadrantId)); Vector3 secondQdrAxis = sliderPlaneTransform.GetAxis3D(PlaneIdHelper.GetSecondAxisDescriptor(planeId, quadrantId)); Vector3 sliderOffset = firstQdrAxis * secondAxisSlider.GetRealSizeAlongDirection(camera, firstQdrAxis) * 0.5f + secondQdrAxis * firstAxisSlider.GetRealSizeAlongDirection(camera, secondQdrAxis) * 0.5f; if (LookAndFeel.PlaneType == GizmoPlane3DType.Quad) { SetQuadCornerPosition(QuadCorner.BottomLeft, sliderPlaneTransform.Position3D + sliderOffset); } }