private int AddLine(XYZ startPoint, XYZ direction, PointDirections directions, float distance) { float deltaX = 0.0f; int totalRead = 0; while (deltaX < distance) { AddPoints(startPoint + direction * deltaX, directions); deltaX += s_delta; } return(totalRead); }
private void AddPoints(XYZ point, PointDirections directions) { // Two random items: number of points, and delta int numberOfPoints = 5; double transverseDelta = 0.1; if (m_randomize) { numberOfPoints = 5 + m_random.Next(10); transverseDelta = m_random.NextDouble() * 0.1; } for (int i = 1; i < numberOfPoints; i++) { if ((directions & PointDirections.PlusX) == PointDirections.PlusX) { AddModifiedPoint(point, XYZ.BasisX, transverseDelta, i); } if ((directions & PointDirections.MinusX) == PointDirections.MinusX) { AddModifiedPoint(point, -XYZ.BasisX, transverseDelta, i); } if ((directions & PointDirections.PlusY) == PointDirections.PlusY) { AddModifiedPoint(point, XYZ.BasisY, transverseDelta, i); } if ((directions & PointDirections.MinusY) == PointDirections.MinusY) { AddModifiedPoint(point, -XYZ.BasisY, transverseDelta, i); } if ((directions & PointDirections.PlusZ) == PointDirections.PlusZ) { AddModifiedPoint(point, XYZ.BasisZ, transverseDelta, i); } if ((directions & PointDirections.MinusZ) == PointDirections.MinusZ) { AddModifiedPoint(point, -XYZ.BasisZ, transverseDelta, i); } } }
private unsafe int AddLine(XYZ startPoint, XYZ direction, PointDirections directions, float distance) { float deltaX = 0.0f; int totalRead = 0; while (deltaX < distance) { AddPoints(startPoint + direction * deltaX, directions); deltaX += s_delta; } return totalRead; }