示例#1
0
 public TunnelDetail(ITunnelDetailCut tunnelDetailCut,
                     IPositionCurve positionCurve,
                     PositionRotation startPoint,
                     float length,
                     Angle rotationAtTheBeginning)
 {
     TunnelDetailCut        = tunnelDetailCut;
     PositionCurve          = positionCurve;
     GlobalStartPoint       = startPoint;
     Length                 = length;
     RotationAtTheBeginning = rotationAtTheBeginning;
 }
示例#2
0
    private void FillDetails()
    {
        _details = new TunnelDetail[_count];
        IPositionRotationCalculator calculator = new SimplePositionRotationCalculator();

        PositionRotation start = PositionRotation.Identity;
        ITunnelDetailCut cut   = new SimpleCut(_radius);

        IPositionCurve[] curves = new IPositionCurve[3];
        curves[0] = new SimpleCurvedCurve(10);
        curves[1] = new SimpleCurvedCurve(30);
        curves[2] = new SimpleCurve();

        for (int i = 0; i < _count; i++)
        {
            _details[i] = new TunnelDetail(cut, curves[i % curves.Length], start, _length, new Angle(Random.Range(0, 360f)));
            start       = calculator.GetCentralPoint(_details[i], _details[i].Length);
        }
    }