• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# Engine3D.Object3d类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Engine3D.Object3d的典型用法代码示例。如果您正苦于以下问题:C# Object3d类的具体用法?C# Object3d怎么用?C# Object3d使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Object3d类属于Engine3D命名空间,在下文中一共展示了Object3d类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: Support

        private int s5i; // top of the head

        #endregion Fields

        #region Constructors

        public Support()
        {
            tag = Object3d.OBJ_SUPPORT; // tag for support
            m_supporting = null;
            this.Name = "Support_" + supcnt.ToString();
            supcnt++;
        }
开发者ID:njh19,项目名称:UVDLPSlicerController,代码行数:13,代码来源:Support.cs


示例2: FillObjectInfo

 public void FillObjectInfo(Object3d obj)
 {
     if (obj == null)
     {
         foreach (Control ctl in layoutPanel.Controls)
         {
             if (ctl.GetType() == typeof(ctlInfoItem))
                 ((ctlInfoItem)ctl).DataText = "";
         }
         tName.Text = "";
         return;
     }
     obj.FindMinMax();
     tName.Text = obj.Name;
     tPoints.DataText = obj.NumPoints.ToString();
     tPolys.DataText = obj.NumPolys.ToString();
     tMin.DataText = String.Format("{0:0.00}, {1:0.00}, {2:0.00}", obj.m_min.x, obj.m_min.y, obj.m_min.z);
     tMax.DataText = String.Format("{0:0.00}, {1:0.00}, {2:0.00}", obj.m_max.x, obj.m_max.y, obj.m_max.z);
     double xs, ys, zs;
     xs = obj.m_max.x - obj.m_min.x;
     ys = obj.m_max.y - obj.m_min.y;
     zs = obj.m_max.z - obj.m_min.z;
     tSize.DataText = String.Format("{0:0.00}, {1:0.00}, {2:0.00}", xs, ys, zs);
     double vol = obj.Volume;
     vol /= 1000.0; // convert to cm^3
     tVolume.DataText = string.Format("{0:0.000} cm^3", vol);
     double cost = vol * (UVDLPApp.Instance().m_buildparms.m_resinprice / 1000.0);
     tCost.DataText = string.Format("{0:0.000}", cost);
 }
开发者ID:mingzhilin,项目名称:UVDLPSlicerController,代码行数:29,代码来源:ctlObjectInfo.cs


示例3: RaiseEvent

 private void RaiseEvent(eCSGEvent ev, string msg, Object3d dat) 
 {
     if (CSGEvent != null) 
     {
         CSGEvent(ev, msg, dat);
     }
 }
开发者ID:Biseny,项目名称:UVDLPSlicerController,代码行数:7,代码来源:CSG.cs


示例4: Clone

        public virtual Object3d Clone() 
        {
            Object3d obj = new Object3d();
            try
            {
                obj.m_name = UVDLPApp.Instance().Engine3D.GetUniqueName( this.m_name); // need to find unique name
                obj.m_fullname = this.m_fullname;
                obj.tag = this.tag;

                foreach (Polygon ply in m_lstpolys)
                {
                    Polygon pl2 = new Polygon();
                    pl2.m_color = ply.m_color;
                    pl2.m_points = new Point3d[3];
                    obj.m_lstpolys.Add(pl2);
                    pl2.m_points[0] = new Point3d(ply.m_points[0]);
                    pl2.m_points[1] = new Point3d(ply.m_points[1]);
                    pl2.m_points[2] = new Point3d(ply.m_points[2]);
                }
                foreach (Polygon ply in obj.m_lstpolys) 
                {
                    foreach (Point3d pnt in ply.m_points) 
                    {
                        obj.m_lstpoints.Add(pnt); // a fair bit of overlap, but whatever...
                    }
                }
                obj.Update();
            }
            catch (Exception ex) 
            {
                DebugLogger.Instance().LogError(ex);
            }
            return obj;
        }
开发者ID:tojoevan,项目名称:BGC-CW,代码行数:34,代码来源:Object3d.cs


示例5: AddObject

 public void AddObject(Object3d obj)
 {
     m_objects.Add(obj);
     if (ModelAddedEvent != null)
     {
         ModelAddedEvent(obj);
     }
 }
开发者ID:ramkanna,项目名称:UVDLPSlicerController,代码行数:8,代码来源:Engine3d.cs


示例6: FillObjectInfo

 public void FillObjectInfo(Object3d selobj)
 {
     List<Object3d> objects;
     if (buttScene.Checked)
     {
         objects = UVDLPApp.Instance().Engine3D.m_objects;
     }
     else
     {
         objects = new List<Object3d>();
         if (selobj != null)
             objects.Add(selobj);
     }
     if (objects.Count == 0)
     {
         foreach (Control ctl in layoutPanel.Controls)
         {
             if (ctl.GetType() == typeof(ctlInfoItem))
                 ((ctlInfoItem)ctl).DataText = "";
         }
         tName.Text = "";
         return;
     }
     tName.Text = buttScene.Checked ? "Scene" : selobj.Name;
     Point3d min = new Point3d(99999999,99999999,99999999);
     Point3d max = new Point3d(-99999999,-99999999,-99999999);
     int points = 0;
     int polys = 0;
     double vol = 0;
     foreach (Object3d obj in objects)
     {
         if (obj.tag != Object3d.OBJ_NORMAL && obj.tag != Object3d.OBJ_SUPPORT && obj.tag != Object3d.OBJ_SUPPORT_BASE)
             continue;
         obj.FindMinMax();
         points += obj.NumPoints;
         polys += obj.NumPolys;
         if (obj.m_min.x < min.x) min.x = obj.m_min.x;
         if (obj.m_min.y < min.y) min.y = obj.m_min.y;
         if (obj.m_min.z < min.z) min.z = obj.m_min.z;
         if (obj.m_max.x > max.x) max.x = obj.m_max.x;
         if (obj.m_max.y > max.y) max.y = obj.m_max.y;
         if (obj.m_max.z > max.z) max.z = obj.m_max.z;
         vol += obj.Volume;
     }
     tPoints.DataText = points.ToString();
     tPolys.DataText = polys.ToString();
     tMin.DataText = String.Format("{0:0.00}, {1:0.00}, {2:0.00}", min.x, min.y, min.z);
     tMax.DataText = String.Format("{0:0.00}, {1:0.00}, {2:0.00}", max.x, max.y, max.z);
     double xs, ys, zs;
     xs = max.x - min.x;
     ys = max.y - min.y;
     zs = max.z - min.z;
     tSize.DataText = String.Format("{0:0.00}, {1:0.00}, {2:0.00}", xs, ys, zs);
     vol /= 1000.0; // convert to cm^3
     tVolume.DataText = string.Format("{0:0.000} cm^3", vol);
     double cost = vol * (UVDLPApp.Instance().m_buildparms.m_resinprice / 1000.0);
     tCost.DataText = string.Format("{0:0.000}", cost);
 }
开发者ID:David-Estevez,项目名称:Sunrise,代码行数:58,代码来源:ctlObjectInfo.cs


示例7: SaveScale

        public void SaveScale(Object3d obj, double x, double y, double z)
        {
            if ((x == 1) && (y == 1) && (z == 1))
                return;
            if ((x == 0) || (y == 0) || (z == 0))
                return;

            AddItem(eOperationType.Scale, obj, x, y, z);
        }
开发者ID:RFranta,项目名称:UVDLPSlicerController,代码行数:9,代码来源:Undoer.cs


示例8: SolidSphere

        /*
        class SolidSphere
        {
        protected:
        std::vector<GLfloat> vertices;
        std::vector<GLfloat> normals;
        std::vector<GLfloat> texcoords;
        std::vector<GLushort> indices;

        public:
        SolidSphere(float radius, unsigned int rings, unsigned int sectors)
        {
        float const R = 1./(float)(rings-1);
        float const S = 1./(float)(sectors-1);
        int r, s;

        vertices.resize(rings * sectors * 3);
        normals.resize(rings * sectors * 3);
        texcoords.resize(rings * sectors * 2);
        std::vector<GLfloat>::iterator v = vertices.begin();
        std::vector<GLfloat>::iterator n = normals.begin();
        std::vector<GLfloat>::iterator t = texcoords.begin();
        for(r = 0; r < rings; r++) for(s = 0; s < sectors; s++) {
                float const y = sin( -M_PI_2 + M_PI * r * R );
                float const x = cos(2*M_PI * s * S) * sin( M_PI * r * R );
                float const z = sin(2*M_PI * s * S) * sin( M_PI * r * R );

                *t++ = s*S;
                *t++ = r*R;

                *v++ = x * radius;
                *v++ = y * radius;
                *v++ = z * radius;

                *n++ = x;
                *n++ = y;
                *n++ = z;
        }

        indices.resize(rings * sectors * 4);
        std::vector<GLushort>::iterator i = indices.begin();
        for(r = 0; r < rings-1; r++) for(s = 0; s < sectors-1; s++) {
                *i++ = r * sectors + s;
                *i++ = r * sectors + (s+1);
                *i++ = (r+1) * sectors + (s+1);
                *i++ = (r+1) * sectors + s;
        }
        }
         */
        public static Object3d Sphere(float radius, int rings, int sectors)
        {
            try
            {
                Object3d sp = new Object3d();
                sp.Name = "Sphere";
                float R = 1f/(float)(rings-1);
                float S = 1f/(float)(sectors-1);

                float M_PI = (float)Math.PI;// *0.0174532925f; // with deg2rad
                float M_PI_2 = M_PI / 2;
                for(int r = 0; r < rings; r++)
                {
                    for(int s = 0; s < sectors; s++)
                    {
                        float y =(float) Math.Sin( - M_PI_2 + M_PI * r * R );
                        float x = (float)Math.Cos(2 * M_PI * s * S) * (float)Math.Sin(M_PI * r * R);
                        float z = (float)Math.Sin(2 * M_PI * s * S) * (float)Math.Sin(M_PI * r * R);

                        Point3d pnt = new Point3d(x * radius, y * radius, z * radius);
                        sp.m_lstpoints.Add(pnt);
                    }
                }

                //indices.resize(rings * sectors * 4);
                //std::vector<GLushort>::iterator i = indices.begin();
                for(int r = 0; r < rings - 1; r++)
                {
                    for (int s = 0; s < sectors - 1; s++)
                    {
                        Polygon p1 = new Polygon();
                        Polygon p2 = new Polygon();
                        sp.m_lstpolys.Add(p1);
                        sp.m_lstpolys.Add(p2);
                        p1.m_points = new Point3d[3];
                        p2.m_points = new Point3d[3];
                        p1.m_points[2] = sp.m_lstpoints[r * sectors + s];
                        p1.m_points[1] = sp.m_lstpoints[r * sectors + (s + 1)];
                        p1.m_points[0] = sp.m_lstpoints[(r + 1) * sectors + (s + 1)];

                        p2.m_points[2] = sp.m_lstpoints[(r + 1) * sectors + (s + 1)];
                        p2.m_points[1] = sp.m_lstpoints[(r + 1) * sectors + s];
                        p2.m_points[0] = sp.m_lstpoints[r * sectors + s];
                    }
                }
                sp.Update();
                sp.Rotate(90 * 0.0174532925f, 0, 0);
                sp.Update();
                return sp;
            }
            catch(Exception ex)
//.........这里部分代码省略.........
开发者ID:kampos91,项目名称:UVDLPSlicerController,代码行数:101,代码来源:Primitives.cs


示例9: StartOp

 public void StartOp(eCSGOp op, Object3d obj1, Object3d obj2) 
 {
     m_op = op;
     m_obj1 = obj1;
     m_obj2 = obj2;
     //m_cancel = false;
     m_runthread = new Thread(new ThreadStart(RunThread), STACKSIZE);
     m_running = true;
     m_runthread.Start();
 }
开发者ID:Biseny,项目名称:UVDLPSlicerController,代码行数:10,代码来源:CSG.cs


示例10: FindObjectNode

	    private TreeNode FindObjectNode(TreeNodeCollection nodes, Object3d sel) 
        {
	        TreeNode found = null;
	        foreach (TreeNode node in nodes) {
	            if (node.Tag == sel) { return node; }
                found = FindObjectNode(node.Nodes, sel);
	            if (found!=null) { break; }
	        }
	        return found;
        }
开发者ID:Biseny,项目名称:UVDLPSlicerController,代码行数:10,代码来源:ctlScene.cs


示例11: ISectData

 public ISectData(Object3d o, Polygon p, Point3d isect, Point3d orgin, Vector3d dir) 
 {
     intersect = new Point3d();
     intersect.Set(isect);
     origin = new Point3d();
     direction = new Vector3d();
     origin.Set(orgin);
     direction.Set(dir);
     obj = o;
     poly = p;
 }
开发者ID:RFranta,项目名称:UVDLPSlicerController,代码行数:11,代码来源:ISectData.cs


示例12: Add

 /*This cuntion adds the objects points and polygons to this one*/
 public void Add(Object3d obj)
 {
     foreach (Point3d p in obj.m_lstpoints)
     {
         m_lstpoints.Add(p);
     }
     foreach (Polygon ply in obj.m_lstpolys)
     {
         m_lstpolys.Add(ply);
     }
     Update();
 }
开发者ID:brots,项目名称:UVDLPSlicerController,代码行数:13,代码来源:Object3d.cs


示例13: GetNumberOfSlices

 public int GetNumberOfSlices(SliceBuildConfig sp, Object3d obj)
 {
     try
     {
         obj.FindMinMax();
         int numslices = (int)((obj.m_max.z - obj.m_min.z) / sp.ZThick);
         return numslices;
     }
     catch (Exception)
     {
         return 0;
     }
 }
开发者ID:tojoevan,项目名称:UVDLPSlicerController,代码行数:13,代码来源:Slicer.cs


示例14: HighLightSelected

 private void HighLightSelected(Object3d sel) 
 {
     int idx = 0;
     foreach (ListViewItem lvi in lbSupports.Items) 
     {
         Object3d obj = (Object3d)lvi.Tag;
         if (obj == sel) 
         {
             //lbSupports.sel
             lbSupports.Items[idx].Selected = true;
             break;
         }
         idx++;
     }
 }
开发者ID:RFranta,项目名称:UVDLPSlicerController,代码行数:15,代码来源:ctlSupports.cs


示例15: AddItem

 protected void AddItem(eOperationType type, Object3d obj, double x, double y, double z)
 {
     if (obj == null)
         return;
     while (m_undopointer < m_undoItemList.Count)
     {
         m_undoItemList.RemoveAt(m_undopointer);
     }
     UndoItem item = new UndoItem();
     item.opType = type;
     item.obj = obj;
     item.x = x;
     item.y = y;
     item.z = z;
     item.linkedToPrev = false;
     m_undoItemList.Add(item);
     m_undopointer++;
     UpdateButtons();
 }
开发者ID:RFranta,项目名称:UVDLPSlicerController,代码行数:19,代码来源:Undoer.cs


示例16: StartSlice

        public bool StartSlice(Object3d obj)
        {
            try
            {
                // make sure we've got new slicedata
                m_data = new SliceData();
                SliceModule.m_data = m_data;
                //set the target object
                SliceModule.m_data.m_obj = obj;

                //start the thread
                m_running = true;
                m_runthread = new Thread(run);
                m_runthread.Start();
            }
            catch (Exception ex)
            {
                DebugLogger.Instance().LogError(ex.Message);
            }
            return false;
        }
开发者ID:hammil,项目名称:UVDLPSlicerController,代码行数:21,代码来源:FlexSlice.cs


示例17: Load

        public List<Object3d> Load(string filename)
        {
            string ext = Path.GetExtension(filename).ToLower();
            // special loaders
            foreach (ModelLoaderType loader in m_loaders)
            {
                if (ext == loader.FileExtension)
                    return loader.LoadModel(filename);
            }

            // built in loaders
            Object3d obj = new Object3d();
            bool ret = false;
            if (ext.Equals(".dxf"))
            {
                ret = obj.LoadDXF(filename);
            }
            if (ext.Equals(".stl"))
            {
                ret = obj.LoadSTL(filename);
            }
            if (ext.Equals(".obj"))
            {
                ret = obj.LoadObjFile(filename);
            }
            if (ext.Equals(".3ds"))
            {
                ret = obj.Load3ds(filename);
            }
            if (ret == true)
            {
                List<Object3d> objlist = new List<Object3d>();
                objlist.Add(obj);
                return objlist;
            }

            return null;
        }
开发者ID:RFranta,项目名称:UVDLPSlicerController,代码行数:38,代码来源:ModelLoader.cs


示例18: CalcScene

 /// <summary>
 /// I want to get rid of this function, need to replace the 
 /// Slic3r model and the supportgenerator model
 /// </summary>
 public void CalcScene()
 {
     m_sceneobject = new Object3d();
     int idx = 0;
     foreach(Object3d obj in m_engine3d.m_objects)
     {
         m_sceneobject.Add(obj);
         if (idx == 0) // if this is the first object
         {
             if (m_engine3d.m_objects.Count > 1)// if there is more than one object in the scene, generate a unique name
             {
                 string scenename = obj.m_fullname;
                 scenename = Path.GetDirectoryName(obj.m_fullname) + m_pathsep + Path.GetFileNameWithoutExtension(obj.m_fullname) + "_scene.stl";
                 m_sceneobject.m_fullname = scenename;
             }
             else
             {
                 m_sceneobject.m_fullname = obj.m_fullname;
             }
         }
         idx++;
     }
 }
开发者ID:gobrien4418,项目名称:UVDLPSlicerController,代码行数:27,代码来源:UVDLPApp.cs


示例19: CSGEvent

 public void CSGEvent(CSG.eCSGEvent ev, string msg, Object3d dat)
 {
     try
     {
         switch (ev)
         {
             case CSG.eCSGEvent.eCompleted:
                 m_engine3d.AddObject(dat);
                 RaiseAppEvent(eAppEvent.eReDraw, "");
                 break;
             case CSG.eCSGEvent.eError:
                 break;
             case CSG.eCSGEvent.eProgress:
                 break;
             case CSG.eCSGEvent.eStarted:
                 break;
         }
     }
     catch (Exception ex)
     {
         DebugLogger.Instance().LogError(ex);
     }
 }
开发者ID:gobrien4418,项目名称:UVDLPSlicerController,代码行数:23,代码来源:UVDLPApp.cs


示例20: Support

        private int s5i; // top of the head

        #endregion Fields

        #region Constructors

        public Support()
        {
            tag = Object3d.OBJ_SUPPORT; // tag for support
            m_supporting = null;
        }
开发者ID:norbertut,项目名称:UVDLPSlicerController,代码行数:11,代码来源:Support.cs



注:本文中的Engine3D.Object3d类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Engine3D.Vector3d类代码示例发布时间:2022-05-24
下一篇:
C# Engine.Vector类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap