protected void RecalculateParametrizationPoints() { var avai = Surface.GetAvaiablePatch(UPos, VPos, WidthDiv, HeightDiv); Func <Vector2, bool> check = vector2 => Surface.IsPointAvaiable(UPos, VPos, vector2); var aszk = SurfaceFilling.MarchingAszklars(avai, 1, 1, false, false, check); meshIndices = aszk.Item2; parametrizationPoints = aszk.Item1; ParametrizationChanged = false; Changed = true; }
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; }