Esempio n. 1
0
        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);
            });
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 4
0
        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);
                }
            }
        }