Ejemplo n.º 1
0
        public float GetTrackPosition(Token token, float longitudinal)
        {
            Asserts.Assert(this == token.TrackBranch);
            BranchToken branchToken = branchTokens[token.TrackBranchIndex];

            return(startLength + (branchToken.startLength + token.Length * longitudinal) * lenScale);
        }
Ejemplo n.º 2
0
        public Token EvaluateAt(float offset, float trasversal, out SBSVector3 pos, out SBSVector3 tang)
#endif
        {
            BranchToken dummy = new BranchToken(null, (offset - startLength) * invLenScale);

#if UNITY_FLASH
            int index = AS3Utils.BinarySearchList(branchTokens, dummy);
#else
            int index = branchTokens.BinarySearch(dummy);
#endif
            index = (index < 0 ? ~index : index);

            BranchToken branchToken = branchTokens[Mathf.Clamp(index - 1, 0, branchTokens.Count - 1)];
            float       l           = (dummy.startLength - branchToken.startLength) / branchToken.token.Length;
            l = Mathf.Clamp01(l);
#if UNITY_FLASH
            branchToken.token.TokenToWorld(l, trasversal, pos, tang);
#else
            branchToken.token.TokenToWorld(l, trasversal, out pos, out tang);
#endif
            return(branchToken.token);
        }