private void subtractFootprint(Vector3 jetVector, int xIndex, int yIndex, int startXIndex, int endXIndex, int startYIndex, int endYIndex, double removalConst) { try { for (int surfX = startXIndex; surfX <= endXIndex; surfX++) { int jetXIndex = xIndex - surfX; for (int surfY = startYIndex; surfY <= endYIndex; surfY++) { int jetYIndex = yIndex - surfY; double remRate = abmachParams.AbMachJet.RemovalRateAt(jetXIndex, jetYIndex); if (remRate > 0) { Vector3 normal = _surface.GetNormal(surfX, surfY); double slopeF = slopeFactor(jetVector, normal); double materialRemoved = removalConst * slopeF * remRate; _tempSurf.SetDepth(surfX, surfY, materialRemoved); } else { var pt = new Abmach2DPoint(); pt.JetHit = false; _tempSurf.SetDepth(surfX, surfY, 0); } } } } catch (Exception) { throw; } }
private void moveTempToModel(int xIndex, int yIndex, int startXIndex, int endXIndex, int startYIndex, int endYIndex) { try { for (int surfX = startXIndex; surfX <= endXIndex; surfX++) { for (int surfY = startYIndex; surfY <= endYIndex; surfY++) { var depth = _surface.GetDepth(surfX, surfY) - _tempSurf.GetDepth(surfX, surfY); _surface.SetDepth(surfX, surfY, depth); } } } catch (Exception) { throw; } }