@@ -30,6 +30,9 @@ public class ProbeInsertion
3030 public float theta ;
3131 public float spin ;
3232
33+ /// <summary>
34+ /// The **transformed** coordinate in the active CoordinateSpace
35+ /// </summary>
3336 public Vector3 apmldv
3437 {
3538 get => new Vector3 ( ap , ml , dv ) ;
@@ -79,17 +82,38 @@ public ProbeInsertion(Vector3 tipPosition, Vector3 angles,
7982
8083 #endregion
8184
82- public Vector3 GetPositionSpace ( )
85+ /// <summary>
86+ /// Get the corresponding **un-transformed** coordinate in the CoordinateSpace
87+ /// </summary>
88+ /// <returns></returns>
89+ public Vector3 PositionSpace ( )
8390 {
8491 return _coordinateTransform . Transform2Space ( apmldv ) ;
8592 }
8693
87- public Vector3 GetPositionWorld ( )
94+ /// <summary>
95+ /// Get the corresponding **transformed** coordinate in World
96+ /// </summary>
97+ /// <returns></returns>
98+ public Vector3 PositionWorld ( )
8899 {
89- return _coordinateSpace . Space2World ( GetPositionSpace ( ) ) ;
100+ return _coordinateSpace . Space2World ( _coordinateTransform . Transform2SpaceRot ( apmldv ) ) ;
90101 }
91102
92- // Convenience function for transforming world to this insertion's transformed space (i.e. world -> space -> transformed)
103+ /// <summary>
104+ /// Get the corresponding **un-transformed** coordinate in World
105+ /// </summary>
106+ /// <returns></returns>
107+ public Vector3 GetPositionWorldUnTransformed ( )
108+ {
109+ return _coordinateSpace . Space2World ( PositionSpace ( ) ) ;
110+ }
111+
112+ /// <summary>
113+ /// Convert a world coordinate into the ProbeInsertion's transformed space
114+ /// </summary>
115+ /// <param name="coordWorld"></param>
116+ /// <returns></returns>
93117 public Vector3 World2Transformed ( Vector3 coordWorld )
94118 {
95119 return _coordinateTransform . Space2Transform ( _coordinateSpace . World2Space ( coordWorld ) ) ;
@@ -100,6 +124,22 @@ public Vector3 World2TransformedRot(Vector3 coordWorld)
100124 return _coordinateTransform . Space2TransformRot ( _coordinateSpace . World2SpaceRot ( coordWorld ) ) ;
101125 }
102126
127+ /// <summary>
128+ /// Convert a world coordinate into the corresponding world coordinate after transformation
129+ /// </summary>
130+ /// <param name="coordWorld"></param>
131+ /// <returns></returns>
132+ public Vector3 World2World ( Vector3 coordWorld )
133+ {
134+ //_coordinateSpace.Space2World(_coordinateTransform.Transform2SpaceRot(
135+ Debug . Log ( coordWorld ) ;
136+ Debug . Log ( _coordinateSpace . World2Space ( coordWorld ) ) ;
137+ Debug . Log ( _coordinateTransform . Space2Transform ( _coordinateSpace . World2Space ( coordWorld ) ) ) ;
138+ Debug . Log ( _coordinateTransform . Transform2SpaceRot ( _coordinateTransform . Space2Transform ( _coordinateSpace . World2Space ( coordWorld ) ) ) ) ;
139+ Debug . Log ( _coordinateSpace . Space2World ( _coordinateTransform . Transform2SpaceRot ( _coordinateTransform . Space2Transform ( _coordinateSpace . World2Space ( coordWorld ) ) ) ) ) ;
140+ return _coordinateSpace . Space2World ( _coordinateTransform . Transform2SpaceRot ( _coordinateTransform . Space2Transform ( _coordinateSpace . World2Space ( coordWorld ) ) ) ) ;
141+ }
142+
103143 public Vector3 Transformed2World ( Vector3 coordTransformed )
104144 {
105145 return _coordinateSpace . Space2World ( _coordinateTransform . Transform2Space ( coordTransformed ) ) ;
0 commit comments