public void SetCuttingCurve(CuttingCurve curve) { if (curve.IsIntersectable(this)) { cuttingCurves.Add(new CuttingCurveWrapper(curve, this)); modelReady = false; } }
public void RemoveCurve(CuttingCurve curve) { var p = CuttingCurves.Where(x => x.curve == curve); var cur = p.FirstOrDefault(); if (cur != null) { cuttingCurves.Remove(cur); } SideChanged(); }
private void GenerateModel(Real bigRadius, Real smallRadius, int bigAngleDensity, int smallAngleDensity) { CuttingCurve.ResetCounter(); var ptsAvaiable = GetAvaiablePoints(bigAngleDensity, smallAngleDensity); var tup = SurfaceFilling.MarchingAszklars(ptsAvaiable, FirstParamLimit, SecondParamLimit, true, true, PointAvaiable); CuttingCurve.DrawResult(bigAngleDensity * smallAngleDensity); this.indices = tup.Item2; points = tup.Item1.Select(x => CalculatePoint(x.X, x.Y, bigRadius, smallRadius)).ToList(); modelReady = true; }
public void SetCuttingCurve(CuttingCurve curve) { if (!curve.IsIntersectable(this)) { return; } cuttingCurves.Add(new CuttingCurveWrapper(curve, this)); foreach (var orderedPatch in orderedPatches) { orderedPatch.ShouldRegenerate(); } }