/// <summary>
 ///
 /// </summary>
 /// <param name="list"></param>
 /// <param name="items"></param>
 public static void AddRange(this Vector3List list, IEnumerable <float3> items)
 {
     foreach (float3 item in items)
     {
         list.Add(item);
     }
 }
Beispiel #2
0
        private void projLineToSurfaceToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Vector3List points = new Vector3List();

            points.Add(new Vector3(0, 0, 0));
            points.Add(new Vector3(50, 0, 0));
            points.Add(new Vector3(100, 0, 0));

            points.Add(new Vector3(0, 50, 0));
            points.Add(new Vector3(50, 50, 5));
            points.Add(new Vector3(100, 50, -5));

            points.Add(new Vector3(0, 150, 5));
            points.Add(new Vector3(50, 150, -5));
            points.Add(new Vector3(100, 150, 0));

            TopoShape surface = GlobalInstance.BrepTools.MakeSurfaceFromPoints(points, 3, 3);

            TopoShape line = GlobalInstance.BrepTools.MakeLine(new Vector3(0, 0, 200), new Vector3(100, 150, 200));

            TopoShape proj = GlobalInstance.BrepTools.ProjectOnSurface(line, surface);

            renderView.ShowGeometry(proj, ++shapeId);
            renderView.ShowGeometry(surface, ++shapeId);
            renderView.RequestDraw();
        }
Beispiel #3
0
        private void projectionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // construct a wire;
            Vector3List points = new Vector3List();

            points.Add(new Vector3(0, 0, 0));
            points.Add(new Vector3(0, 100, 0));
            points.Add(new Vector3(100, 100, 0));
            TopoShape wire = GlobalInstance.BrepTools.MakePolygon(points);

            renderView.ShowGeometry(wire, ++shapeId);

            Vector3 dirPlane1 = new Vector3(0, 1, 1);

            dirPlane1.Normalize();
            TopoShape newWire1 = GlobalInstance.BrepTools.ProjectOnPlane(wire, new Vector3(0, 0, 100),
                                                                         dirPlane1, new Vector3(0, 0, 1));

            Vector3 dirPlane2 = new Vector3(0, 1, -1);

            dirPlane2.Normalize();
            TopoShape newWire2 = GlobalInstance.BrepTools.ProjectOnPlane(wire, new Vector3(0, 0, 500),
                                                                         dirPlane2, new Vector3(0, 0, 1));

            TopoShapeGroup tsg = new TopoShapeGroup();

            tsg.Add(newWire1);
            tsg.Add(newWire2);
            TopoShape loft = GlobalInstance.BrepTools.MakeLoft(tsg, false);

            renderView.ShowGeometry(loft, ++shapeId);

            renderView.RequestDraw();
        }
/*AUTO SCRIPT*/
/*AUTO SCRIPT*/ public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
/*AUTO SCRIPT*/ {
/*AUTO SCRIPT*/ if (list == null)
/*AUTO SCRIPT*/ {
/*AUTO SCRIPT*/ list  = EditorUtility.GetPropertyObject <Vector3List>(property);
/*AUTO SCRIPT*/ rList = new ReorderableList(list, typeof(Vector3), true, false, true, true);
/*AUTO SCRIPT*/                         // rList.onAddCallback += data => { list.Add(defaultVal); };
/*AUTO SCRIPT*/                         // rList.onChangedCallback += data=> {
/*AUTO SCRIPT*/                         // };
/*AUTO SCRIPT*/ }
/*AUTO SCRIPT*/
/*AUTO SCRIPT*/ numLines = 3 + list.Count;
/*AUTO SCRIPT*/ var title  = new GUIContent($" {label.text}");
/*AUTO SCRIPT*/ var height = base.GetPropertyHeight(property, label);
/*AUTO SCRIPT*/ var rect   = new Rect(position.x, position.y, position.width, height);

/*AUTO SCRIPT*/ EditorGUI.BeginChangeCheck();
/*AUTO SCRIPT*/ rList.DoList(rect);
/*AUTO SCRIPT*/ EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), title);
/*AUTO SCRIPT*/
/*AUTO SCRIPT*/ if (EditorGUI.EndChangeCheck())
            {
/*AUTO SCRIPT*/ property.serializedObject.ApplyModifiedProperties();
            }
/*AUTO SCRIPT*/
/*AUTO SCRIPT*/ }
        /// <summary>
        ///
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public static List <float3> ToFloat3List(this Vector3List list)
        {
            List <float3> newList = new List <float3> ();

            for (int i = 0; i < list.Count; i++)
            {
                newList.Add(list[i]);
            }

            return(newList);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public static float3[] ToFloat3Array(this Vector3List list)
        {
            float3[] newArray = new float3[list.Count];

            for (int i = 0; i < list.Count; i++)
            {
                newArray[i] = list[i];
            }

            return(newArray);
        }
Beispiel #7
0
    public void Init()
    {
        string[] items = { "全部", "进行中", "可接取", "已完成", "未获取" };
        m_DataChangeCallBackInfoPool.Init(32, () => { return(new DataChangeCallBackInfo()); }, v => { });
        StrList strlist = new StrList();

        strlist.Add(string.Empty);
        strlist.Sort((a, b) => a.CompareTo(b));
        List <int> intlist = new List <int>();

        intlist.Add(1);
        var sa = strlist[0];

        intlist.Sort((a, b) => a.CompareTo(b));
        int iaa = null != strlist ? strlist.Count : intlist.Count;

        int[] aa = new int[] { 1, 2, 3, 4, 5 };
        int[,] bb = new int[, ] {
            { 1, 2 }, { 3, 4 }, { 5, 6 }
        };
        var ia = bb[0, 1];

        foreach (var s in strlist)
        {
            Console.WriteLine(s);
        }
        foreach (var v in aa)
        {
            Console.WriteLine(v);
        }
        foreach (var v in bb)
        {
            Console.WriteLine(v);
        }
        var            act    = (Action)(() => { Console.Write(ia); });
        var            cc     = ToList(aa);
        List <Vector3> v3list = new List <Vector3>();

        v3list.Add(Vector3.zero);
        Vector3List nv3list = new Vector3List();

        nv3list.Add(Vector3.zero);
        var v3 = nv3list[0];

        nv3list[0] = v3;
        var vv3 = ToArray(nv3list)[0];

        ToArray(nv3list)[0] = vv3;
    }
Beispiel #8
0
        private void splineToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Vector3List points = new Vector3List();

            points.Add(new Vector3(0, 0, 0));
            points.Add(new Vector3(0, 0, 10));
            points.Add(new Vector3(0, 10, 50));
            points.Add(new Vector3(10, 20, 150));

            TopoShape spline = GlobalInstance.BrepTools.MakeSpline(points);
            TopoShape circle = GlobalInstance.BrepTools.MakeCircle(Vector3.ZERO, 10, Vector3.UNIT_Z);

            TopoShape shape = GlobalInstance.BrepTools.MakePipe(circle, spline, 0);

            renderView.ShowGeometry(shape, ++shapeId);
            renderView.RequestDraw();
        }
        public static Vector3List ConvertVector3DList(string vec)
        {
            Vector3List list = new Vector3List();

            try {
                string   strPos = vec;
                string[] resut  = strPos.Split(s_ListSplitString, StringSplitOptions.RemoveEmptyEntries);
                if (resut != null && resut.Length > 0 && resut[0] != "")
                {
                    for (int index = 0; index < resut.Length;)
                    {
                        list.Add(new ScriptRuntime.Vector3(Convert.ToSingle(resut[index]),
                                                           Convert.ToSingle(resut[index + 1]),
                                                           Convert.ToSingle(resut[index + 2])));
                        index += 3;
                    }
                }
            } catch (System.Exception ex) {
                list.Clear();
                LogSystem.Error("ConvertVector3DList {0} Exception:{1}/{2}", vec, ex.Message, ex.StackTrace);
                throw;
            }
            return(list);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="list"></param>
        /// <param name="items"></param>
        public static void Initialise(this Vector3List list, IEnumerable <float3> items)
        {
            list.Clear();

            list.AddRange(items);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="list"></param>
 /// <param name="allocator"></param>
 /// <returns></returns>
 public static NativeArray <float3> ToFloat3NativeArray(this Vector3List list, Allocator allocator)
 {
     return(new NativeArray <float3> (list.ToFloat3Array(), allocator));
 }
Beispiel #12
0
        private void surfaceToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LineStyle lineStyle = new LineStyle();

            lineStyle.SetLineWidth(0.5f);
            lineStyle.SetColor(ColorValue.RED);

            Vector3List points = new Vector3List();

            points.Add(new Vector3(0, 0, 0));
            points.Add(new Vector3(50, 0, 0));
            points.Add(new Vector3(100, 0, 0));

            points.Add(new Vector3(0, 50, 0));
            points.Add(new Vector3(50, 50, 5));
            points.Add(new Vector3(100, 50, -5));

            points.Add(new Vector3(0, 150, 5));
            points.Add(new Vector3(50, 150, -5));
            points.Add(new Vector3(100, 150, 0));

            TopoShape face = GlobalInstance.BrepTools.MakeSurfaceFromPoints(points, 3, 3);

            renderView.ShowGeometry(face, ++shapeId);

            GeomeSurface surface = new GeomeSurface();

            surface.Initialize(face);
            float ufirst = surface.FirstUParameter();
            float uLarst = surface.LastUParameter();
            float vfirst = surface.FirstVParameter();
            float vLast  = surface.LastVParameter();

            float ustep = (uLarst - ufirst) * 0.1f;
            float vstep = (vLast - vfirst) * 0.1f;

            for (float ii = ufirst; ii <= uLarst; ii += ustep)
            {
                for (float jj = vfirst; jj <= vLast; jj += vstep)
                {
                    Vector3List data = surface.D1(ii, jj);

                    Vector3 pos  = data.Get(0);
                    Vector3 dirU = data.Get(1);
                    Vector3 dirV = data.Get(2);
                    Vector3 dir  = dirV.CrossProduct(dirU);
                    dir.Normalize();
                    {
                        TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dir * 10.0f);
                        SceneNode node = renderView.ShowGeometry(line, ++shapeId);

                        node.SetLineStyle(lineStyle);
                    }
                }
            }

            TopoShapeProperty property = new TopoShapeProperty();

            property.SetShape(face);

            float area = property.SurfaceArea();

            TextNode text = new TextNode();

            text.SetText(String.Format("Surface Area: {0}", area));
            text.SetPosition(new Vector3(100, 100, 0));
            renderView.SceneManager.ClearNodes2d();
            renderView.SceneManager.AddNode2d(text);

            renderView.RequestDraw();
        }
 public void CreateGameObjectList()
 {
     vector3List = ScriptableObject.CreateInstance <Vector3List> ();
 }