public TunnelDetail(ITunnelDetailCut tunnelDetailCut, IPositionCurve positionCurve, PositionRotation startPoint, float length, Angle rotationAtTheBeginning) { TunnelDetailCut = tunnelDetailCut; PositionCurve = positionCurve; GlobalStartPoint = startPoint; Length = length; RotationAtTheBeginning = rotationAtTheBeginning; }
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); } }