private void MainForm_Load(object sender, EventArgs e) { mRenderView.SetSelectCallback((PickedItem item) => { this.listBox1.Items.Clear(); if (item.IsNull()) { return; } var ssn = BrepSceneNode.Cast(item.GetNode()); if (ssn != null) { this.listBox1.Items.Add(ssn.GetType().Name); } else { this.listBox1.Items.Add(item.GetNode().GetType().Name); } this.listBox1.Items.Add(String.Format("NodeId: {0}", item.GetNodeId())); this.listBox1.Items.Add(item.GetPoint().GetPosition().ToString()); this.listBox1.Items.Add(item.GetShapeType().ToString()); this.listBox1.Items.Add(String.Format("SubIndex: {0}", item.GetShapeIndex())); }); mRenderView.SetAnimationCallback((float timer) => { TestCase.RunAnimation(mRenderView, timer); }); }
public override void Run(RenderControl render) { base.Run(render); // Let's iterate the scene using (FileStream fs = new FileStream("d:/myZip.zip", FileMode.Create)) { using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Create)) { for (var itr = render.GetScene().CreateIterator(); itr.More(); itr.Next()) { var node = BrepSceneNode.Cast(itr.Current()); if (node == null) { continue; } ZipArchiveEntry entry = zipArchive.CreateEntry(String.Format("{0}.brep", node.GetUuid())); using (StreamWriter writer = new StreamWriter(entry.Open(), Encoding.Default)) { writer.Write(node.GetTopoShape().Write()); } } } } }
public override void Animation(RenderControl render, float time) { if (mRobotAnimation.Play(time)) { Vector3 pt = new Vector3(0); pt = pt * mRobot.GetFinalTransform(); mMotionTrail.SetPosition(mCount, pt); mMotionTrail.UpdateBoundingBox(); ++mCount; //Blink blink effect BrepSceneNode.Cast(mRobot.GetLink((mCount - 1) % 7).GetVisualNode()).GetShape().SetFaceMaterial(mRobotMaterial); BrepSceneNode.Cast(mRobot.GetLink(mCount % 7).GetVisualNode()).GetShape().SetFaceMaterial(mMaterial); render.RequestDraw(EnumUpdateFlags.Scene); } }
public override void OnSelectionChanged(RenderControl render, PickedResult result) { var item = result.GetItem(); if (item.GetNode() == null) { return; } var ssn = BrepSceneNode.Cast(item.GetNode()); if (ssn == null) { return; } if (item.GetShapeType() == EnumShapeFilter.Face) { var face = ssn.GetShape().GetShape().FindChild(EnumTopoShapeType.Topo_FACE, (int)item.GetShapeIndex()); if (face != null) { var surface = new ParametricSurface(face); var pt = item.GetPoint().GetPosition(); var param = surface.ComputeClosestPoint(pt.ToPnt(), GP.Resolution(), GP.Resolution()); var values = surface.D1(param.X(), param.Y()); var postion = Vector3.From(values.GetPoint()); var vecs = values.GetVectors(); var dir = Vector3.From(vecs[0].Crossed(vecs[1])); dir.normalize(); mArrow.SetLocation(postion, dir); mArrow.RequstUpdate(); mArrow.Update(); render.GetContext().GetSelection().Clear(); render.RequestDraw(EnumUpdateFlags.Scene); } } }