示例#1
0
        public override List<StationOffsetElevation> getStationOffsetElevation(ptsPoint interestPoint)
        {
            ptsVector arcCenterToInterestPtVector = new ptsVector(this.ArcCenterPt, interestPoint);
             Deflection deflToInterestPt = new Deflection(this.BeginRadiusVector.Azimuth, arcCenterToInterestPtVector.Azimuth, true);
             int arcDeflDirection = Math.Sign(this.Deflection.getAsDegreesDouble());
             if (arcDeflDirection * deflToInterestPt.getAsDegreesDouble() < 0.0)
             {
            return null;
             }
             else if (Math.Abs(this.Deflection.getAsDegreesDouble()) - Math.Abs(deflToInterestPt.getAsDegreesDouble()) < 0.0)
             {
            return null;
             }

             Double interestLength = this.Length * deflToInterestPt.getAsRadians() / this.Deflection.getAsRadians();
             Offset offset =  new Offset(arcDeflDirection * (this.Radius - arcCenterToInterestPtVector.Length));

             var soe = new StationOffsetElevation(this.BeginStation + interestLength, offset, 0.0);
             var returnList = new List<StationOffsetElevation>();
             returnList.Add(soe);
             return returnList;
        }
 //private StationOffsetElevation soePoint;
 public StationOffsetElevation()
 {
     offset = new Offset(0.0); elevation = new Elevation(0.0);
 }
 public StationOffsetElevation(double aStation, Offset anOffset, Elevation anElevation)
 {
     station = aStation; offset = anOffset; elevation = anElevation;
 }
示例#4
0
 public Offset(Offset other)
 {
     OFST = other.OFST;
 }