예제 #1
0
파일: Junction.cs 프로젝트: mANDROID99/IaS
        public Junction(string id, SplitTrack branchDefault, SplitTrack branchAlternate, JunctionDirection direction)
        {
            Id = id;
            NextBranchType = BranchType.BranchDefault;
            Direction = direction;

            BranchDefault = GetFirstGroup(branchDefault);
            BranchAlternate = GetFirstGroup(branchAlternate);
        }
예제 #2
0
파일: SubTrack.cs 프로젝트: mANDROID99/IaS
        public SubTrack(string id, SplittedRegion splitRegion, SubTrackGroup[] trackGroups)
        {
            SplittedRegion = splitRegion;
            TrackGroups = trackGroups;
            Id = id;

            foreach (SubTrackGroup trackGroup in trackGroups)
            {
                trackGroup.OnAttachToSubTrack(this);
            }
        }
예제 #3
0
 public bool AllowPrevious(SubTrackGroup stGroup)
 {
     if(_junction.Direction == Junction.JunctionDirection.ManyToOne)
     {
         return stGroup == _junction.NextBranch;
     }
     return true;
 }
예제 #4
0
 public bool AllowNext(SubTrackGroup stGroup)
 {
     if(_junction.Direction == Junction.JunctionDirection.OneToMany)
     {
         return stGroup == _junction.NextBranch;
     }
     return true;
 }
예제 #5
0
 public TrackRunner(TrackConnectionResolver connectionResolver, SubTrackGroup initialTrackGroup, bool initialReverse)
 {
     ConnectionResolver = connectionResolver;
     Setup(initialTrackGroup, initialReverse);
 }
예제 #6
0
 private void Setup(SubTrackGroup initialTrackGroup, bool initialReverse)
 {
     NextConnection = true;
     _connectionCtx = ConnectionResolver.FirstContext(initialTrackGroup, initialReverse);
     _interpolator = new BezierSpline.LinearInterpolator(initialTrackGroup.Spline, initialReverse);
     _interpolator.Step(0);
     _currentPt = _interpolator.Value();
     SetStartingValues();
 }
예제 #7
0
파일: Junction.cs 프로젝트: mANDROID99/IaS
 private Vector3 DirectionFromTrackGroup(SubTrackGroup trackGroup)
 {
     return trackGroup.NumTrackNodes > 1 ? trackGroup.Nodes[1].Forward : trackGroup.Nodes[0].Forward;
 }
예제 #8
0
파일: Junction.cs 프로젝트: mANDROID99/IaS
 public bool ReferencesGroup(SubTrackGroup group)
 {
     return BranchDefault == group || BranchAlternate == group;
 }