void handleDragEnd(DragEndDetails details, bool?isClosing = null) { animationCurve = new _BottomSheetSuspendedCurve( widget.route.animation.value, curve: material_._modalBottomSheetCurve ); }
public override void Run(RenderControl renderer) { var ellipse = SketchBuilder.MakeEllipse(GP.Origin(), 10, 5, GP.DX(), GP.DZ()); renderer.ShowShape(ellipse, Vector3.Blue); ParametricCurve pc = new ParametricCurve(ellipse); var paramsList = pc.SplitByUniformLength(1, 0.01); uint itemCount = (uint)paramsList.Count; var points = new ParticleSceneNode(itemCount, Vector3.Green, 5.0f); var lines = new SegmentsSceneNode(itemCount, Vector3.Red, 2); Random random = new Random(); for (int ii = 0; ii < paramsList.Count; ++ii) { var value = pc.D1(paramsList[ii]); var pos = value.GetPoint(); var dir = value.GetVectors()[0]; var end = new GPnt(pos.XYZ().Added(dir.XYZ())); lines.SetPositions((uint)ii, Vector3.From(pos), Vector3.From(end)); lines.SetColors((uint)ii, Vector3.Red, Vector3.From(random.NextDouble(), random.NextDouble(), random.NextDouble())); points.SetPosition((uint)ii, Vector3.From(pos)); } renderer.ShowSceneNode(points); renderer.ShowSceneNode(lines); }
public override void SetParametricRecruitmentControls(ParametricRecruitment currentRecruit, Panel panelRecruitModelParameter) { ParametricCurve currentParametricCurveRecruit = (ParametricCurve)currentRecruit; DataBindTextBox(this.textBoxAlpha, currentParametricCurveRecruit, "alpha"); DataBindTextBox(this.textBoxBeta, currentParametricCurveRecruit, "beta"); DataBindTextBox(this.textBoxVariance, currentParametricCurveRecruit, "variance"); this.textBoxAlpha.PrevValidValue = currentParametricCurveRecruit.alpha.ToString(); this.textBoxBeta.PrevValidValue = currentParametricCurveRecruit.beta.ToString(); this.textBoxVariance.PrevValidValue = currentParametricCurveRecruit.variance.ToString(); if (currentParametricCurveRecruit.GetType() == typeof(ParametricShepherdCurve)) { this.labelKparm.Visible = true; this.textBoxKParm.Visible = true; DataBindTextBox(this.textBoxKParm, currentParametricCurveRecruit, "kParm"); this.textBoxKParm.PrevValidValue = ((ParametricShepherdCurve)currentParametricCurveRecruit).kParm.ToString(); } if (currentParametricCurveRecruit.autocorrelated) { this.labelPhi.Enabled = true; this.labelLastResidual.Enabled = true; this.textBoxPhi.Enabled = true; this.textBoxLastResidual.Enabled = true; DataBindTextBox(this.textBoxPhi, currentParametricCurveRecruit, "phi"); DataBindTextBox(this.textBoxLastResidual, currentParametricCurveRecruit, "lastResidual"); this.textBoxPhi.PrevValidValue = currentParametricCurveRecruit.phi.Value.ToString(); this.textBoxLastResidual.PrevValidValue = currentParametricCurveRecruit.lastResidual.Value.ToString(); } base.SetParametricRecruitmentControls(currentRecruit, panelRecruitModelParameter); }
static void GenerateCurve() { Point pt = new Point(0, 0, 0); ParametricCurve curve = new ParametricCurve(0, 0, 0); curve.GeneratePoints(100); File.WriteAllText("GeneratedPoints.csv", curve.GeneratedPointsToCSV()); }
public override void Run(RenderControl renderer) { string fileName = GetResourcePath("Holes.stp"); var shape = StepIO.Open(fileName); if (shape == null) { return; } var face = shape.FindChild(EnumTopoShapeType.Topo_FACE, 148); var surface = new ParametricSurface(face); var wireExp = new WireExplor(face); var wires = wireExp.GetInnerWires(); foreach (var wire in wires) { // Show wire renderer.ShowShape(wire, Vector3.Red); var curve = new ParametricCurve(wire); var paramList = curve.SplitByUniformLength(1, 0.01); var lines = new SegmentsSceneNode((uint)paramList.Count, Vector3.Green, 2); uint idx = 0; foreach (var p in paramList) { var pt = curve.Value(p); var pointSur = new ExtremaPointSurface(); if (pointSur.Initialize(surface, pt, GP.Resolution(), GP.Resolution())) { var uv = pointSur.GetParameter(0); var normal = surface.GetNormal(uv.X(), uv.Y()); lines.SetPositions(idx++, Vector3.From(pt), Vector3.From(pt.XYZ().Added(normal.XYZ()))); } } lines.UpdateBoundingBox(); renderer.ShowSceneNode(lines); } // Show face var faceMaterial = MeshStandardMaterial.Create("pbr.face"); faceMaterial.SetColor(Vector3.LightGray); faceMaterial.SetFaceSide(EnumFaceSide.DoubleSide); var faceNode = BrepSceneNode.Create(face, faceMaterial, null); faceNode.SetDisplayFilter(EnumShapeFilter.Face); renderer.ShowSceneNode(faceNode); }
public static double[][] Divide(ParametricCurve crv, int divNum) { List <double[]> rs = new List <double[]>(); double unit = 1 / (double)divNum; for (int i = 0; i <= divNum; i++) { double t = unit * i; rs.Add(crv.ParameterAt(t)); } return(rs.ToArray()); }
public static double[][] GenerateSegments(ParametricCurve crv, int divNum) { List <double[]> rs = new List <double[]>(); double[][] pts = Divide(crv, divNum); for (int i = 0; i < divNum; i++) { double[] ln = pts[i].Concat(pts[i + 1]).ToArray(); rs.Add(ln); } return(rs.ToArray()); }
private static double[] GetParametricType4(ParametricCurve curve) { double[] result = new double[CurveResolution]; for (int i = 0; i < result.Length; i++) { double val = i / CurveResolutionD; if (val >= curve.d) { result[i] = Math.Pow(curve.a * val + curve.b, curve.g) + curve.c; } else { result[i] = curve.c * val + curve.f; } } return(result); }
public static double[] FromParametricCurve(ParametricCurve curve) { switch (curve.type) { case 0: return(GetParametricType0(curve)); case 1: return(GetParametricType1(curve)); case 2: return(GetParametricType2(curve)); case 3: return(GetParametricType3(curve)); case 4: return(GetParametricType4(curve)); //This should never happen: default: return(new double[] { 0.0 }); } }
public override void Run(RenderControl render) { GPntList points = new GPntList(); string fileName = GetResourcePath("data/CableViewInfo.txt"); using (StreamReader reader = File.OpenText(fileName)) { while (!reader.EndOfStream) { var line = reader.ReadLine(); var items = line.Split(','); if (items.Length < 3) { continue; } double x = double.Parse(items[0]); double y = double.Parse(items[1]); double z = double.Parse(items[2]); points.Add(new GPnt(x, y, z)); } } var path = SketchBuilder.MakeBSpline(points); render.ShowShape(path, ColorTable.Red); var curve = new ParametricCurve(path); var rt = curve.D1(curve.FirstParameter()); var position = rt.GetPoint(); var dir = new GDir(rt.GetVectors()[0]); var sketch = SketchBuilder.MakeCircle(position, 1, dir); var pipe = FeatureTool.Sweep(sketch, path, EnumGeomFillTrihedron.ConstantNormal); if (pipe != null) { render.ShowShape(pipe, new Vector3(0.8f)); } }
public override void Run(RenderControl render) { var fileName = GetResourcePath("models/YONGSHENGDA_9998.igs"); var shape = ShapeIO.Open(fileName); if (shape == null) { return; } var face = shape.FindChild(EnumTopoShapeType.Topo_FACE, 12); var edges = face.GetChildren(EnumTopoShapeType.Topo_EDGE); var wire = SketchBuilder.MakeWire(edges); if (wire == null) { return; } var curve = new ParametricCurve(); curve.Initialize(wire); var ulist = curve.SplitByUniformLength(1, 0.2); var node = new ParticleSceneNode((uint)ulist.Count, ColorTable.Red, 2); for (int ii = 0; ii < ulist.Count; ++ii) { node.SetPosition((uint)ii, Vector3.From(curve.Value(ulist[ii]))); } node.UpdateBoundingBox(); render.ShowShape(wire, ColorTable.GoldEnrod); render.ShowSceneNode(node); }
//TODO:REFACTOR private void LoadRecruitModelParameterControls(RecruitmentModel currentRecruitSelection) { if (currentRecruitSelection is EmpiricalRecruitment) { if (((EmpiricalRecruitment)currentRecruitSelection).subType == EmpiricalType.Empirical) { EmpiricalRecruitment currentEmpiricalRecruitSelection = (EmpiricalRecruitment)currentRecruitSelection; ControlRecruitmentEmpirical empiricalParameterControls = new ControlRecruitmentEmpirical(); empiricalParameterControls.SetEmpiricalRecruitmentControls(currentEmpiricalRecruitSelection, panelRecruitModelParameter); empiricalParameterControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels; empiricalParameterControls.collectionSelectedIndex = this.comboBoxRecruitSelection.SelectedIndex; } else if (((EmpiricalRecruitment)currentRecruitSelection).subType == EmpiricalType.TwoStage) { TwoStageEmpiricalRecruitment currentTwoStageEmpiricalRecruitSelection = (TwoStageEmpiricalRecruitment)currentRecruitSelection; //Load TwoStage Controls ControlRecruitmentEmpiricalTwoStage twoStageControls = new ControlRecruitmentEmpiricalTwoStage(); twoStageControls.SetTwoStageEmpiricalRecruitmentControls(currentTwoStageEmpiricalRecruitSelection, panelRecruitModelParameter); twoStageControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels; twoStageControls.collectionSelectedIndex = this.comboBoxRecruitSelection.SelectedIndex; } else if (((EmpiricalRecruitment)currentRecruitSelection).subType == EmpiricalType.CDFZero) { EmpiricalCDFZero currentEmpiricalCDFZeroRecruitmentSelection = (EmpiricalCDFZero)currentRecruitSelection; ControlRecruitmentEmpirical empiricalCDFZeroControls = new ControlRecruitmentEmpirical(); empiricalCDFZeroControls.SetEmpiricalCDFZeroRecruitmentControls( currentEmpiricalCDFZeroRecruitmentSelection, panelRecruitModelParameter); empiricalCDFZeroControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels; empiricalCDFZeroControls.collectionSelectedIndex = this.comboBoxRecruitSelection.SelectedIndex; } else if (((EmpiricalRecruitment)currentRecruitSelection).subType == EmpiricalType.Fixed) { FixedEmpiricalRecruitment currentFixedRecruitmentSelection = (FixedEmpiricalRecruitment)currentRecruitSelection; ControlRecruitmentFixed fixedRecruitmentControls = new ControlRecruitmentFixed(); fixedRecruitmentControls.seqYears = this.seqRecruitYears; fixedRecruitmentControls.SetFixedRecruitmentControls(currentFixedRecruitmentSelection, panelRecruitModelParameter); fixedRecruitmentControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels; fixedRecruitmentControls.collectionSelectedIndex = this.comboBoxRecruitSelection.SelectedIndex; } } else if (currentRecruitSelection is ParametricRecruitment) { if (((ParametricRecruitment)currentRecruitSelection).subtype == ParametricType.Curve) { ParametricCurve currentParametricCurveRecruit = (ParametricCurve)currentRecruitSelection; ControlRecruitmentParametricCurve parametricCurveControls = new ControlRecruitmentParametricCurve(); parametricCurveControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels; parametricCurveControls.collectionSelectedIndex = this.comboBoxRecruitSelection.SelectedIndex; parametricCurveControls.SetParametricRecruitmentControls(currentParametricCurveRecruit, panelRecruitModelParameter); } else if (((ParametricRecruitment)currentRecruitSelection).subtype == ParametricType.Lognormal) { ParametricLognormal currentParametricLognormalRecruit = (ParametricLognormal)currentRecruitSelection; ControlRecruitmentParametricLognormal lognormalControls = new ControlRecruitmentParametricLognormal(); lognormalControls.SetParametricRecruitmentControls(currentParametricLognormalRecruit, panelRecruitModelParameter); lognormalControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels; lognormalControls.collectionSelectedIndex = this.comboBoxRecruitSelection.SelectedIndex; } } else if (currentRecruitSelection is PredictorRecruitment) { PredictorRecruitment currentPredictorRecruitSelection = (PredictorRecruitment)currentRecruitSelection; ControlRecruitmentPredictor predictorParameterControls = new ControlRecruitmentPredictor(); predictorParameterControls.seqYears = this.seqRecruitYears; predictorParameterControls.collectionSelectedIndex = this.comboBoxRecruitSelection.SelectedIndex; predictorParameterControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels; predictorParameterControls.SetPredictorRecruitmentcontrols(currentPredictorRecruitSelection, panelRecruitModelParameter); } else if (currentRecruitSelection is MarkovMatrixRecruitment) { MarkovMatrixRecruitment currentRecruit = (MarkovMatrixRecruitment)currentRecruitSelection; ControlRecruitmentMarkovMatrix markovControls = new ControlRecruitmentMarkovMatrix(); markovControls.SetRecruitmentControls(currentRecruit, panelRecruitModelParameter); markovControls.collectionAgeproRecruitModels = this.collectionAgeproRecruitmentModels; markovControls.collectionSelectedIndex = this.comboBoxRecruitSelection.SelectedIndex; } else { panelRecruitModelParameter.Controls.Clear(); } }
private static double[] GetParametricType0(ParametricCurve curve) { return(FromGamma(curve.g)); }
public override void Run(RenderControl render) { double dS = 19.0; //弹簧螺距mm double dR = 11.25; //1/2弹簧中径mm double dr1 = 0.9; //内层钢丝半径mm double dr2 = 0.9; //外层钢丝半径mm double dr = dr1 + dr2; //钢丝轴心分布半径mm double da1 = 0.29; //弹簧螺旋角rad double dw0 = 1; //卷簧轴转速rad/s double dw1 = 5; //拧索轴转速rad/s int nOutterCount = 5; //外层钢丝股数 { // create the intter path GPntList pts = new GPntList(); for (double t = 0; t < 10; t += 0.1) { pts.Add(getIntterMultiSpingCoord(t, dS, dR, dw0)); } var path = SketchBuilder.MakeBSpline(pts); // Get the sketch position and direction var curve = new ParametricCurve(path); var rt = curve.D1(curve.FirstParameter()); var position = rt.GetPoint(); var dir = new GDir(rt.GetVectors()[0]); var sketch = SketchBuilder.MakeCircle(position, dr1, dir); // Create pipe var pipe = FeatureTool.Sweep(sketch, path, EnumGeomFillTrihedron.CorrectedFrenet); render.ShowShape(pipe, new Vector3(0.8f)); } Vector3[] colors = new Vector3[] { new Vector3(1.0f, 0, 0), new Vector3(1, 1, 0), new Vector3(0.5f, 1, 0), new Vector3(0, 1, 64 / 255.0f), new Vector3(0, 1, 1) }; // create the outter path for (int i = 0; i < nOutterCount; i++) { GPntList pts = new GPntList(); for (double t = 0; t < 10; t += 0.1) { pts.Add(getOutterMultiSpingCoord(t, dS, dR, dr, da1, dw0, dw1, i * 2 * Math.PI / nOutterCount)); } var path = SketchBuilder.MakeBSpline(pts); // Get the sketch position and direction var curve = new ParametricCurve(path); var rt = curve.D1(curve.FirstParameter()); var position = rt.GetPoint(); var dir = new GDir(rt.GetVectors()[0]); var sketch = SketchBuilder.MakeCircle(position, dr2, dir); // Create pipe var pipe = FeatureTool.Sweep(sketch, path, EnumGeomFillTrihedron.CorrectedFrenet); render.ShowShape(pipe, colors[i]); } }
void handleDragStart(DragStartDetails details) { animationCurve = Curves.linear; }
//internal int end; public override void GetTagData(byte[] iccData, int index, ICCHeader header) { FunctionType = HighEndianReader.GetUInt16(iccData, index, IsLittleEndian); //2 bytes reserved Curve = new ParametricCurve(FunctionType, iccData, index, IsLittleEndian); }
public void Awake() { parametricCurve = (ParametricCurve)target as ParametricCurve; }