/// <summary>
        ///     Create table in base from a list
        /// </summary>
        /// <param name="tl"></param>
        /// <param name="connectionString"></param>
        public static bool CreateTable(IEnumerable <Table> tl, string connectionString, IWin32Window own)
        {
            foreach (var t in tl)
            {
                if (string.Equals(t.Name, "utilisateurs", StringComparison.InvariantCultureIgnoreCase))
                {
                    var utilFrm = new UtilEditor();
                    utilFrm.btnCancel.Enabled = false;
                    if (utilFrm.ShowDialog() == System.Windows.Forms.DialogResult.OK)//for user table need to ask for user 0
                    {
                        Program.AppSet.grainDeSable = Classes.WizardEvents.GetUniqueKey(7);
                        TabloidConfig.Config.updateCurrentKey(Program.AppSet.grainDeSable);
                        var param = new string[] { utilFrm.txtLogin.Text, utilFrm.txtNom.Text, utilFrm.txtPrenom.Text, utilFrm.txtMail.Text, Tabloid.Classes.Tools.SecurityHelper.EncryptPassword(utilFrm.txtMdp1.Text) };
                        WizardSQLHelper.ExecuteFromFile(t.SqlFile, param, connectionString, own);

                        Program.AppSet.ModeAuthentification = utilFrm.cmbAuth.SelectedIndex == 0 ? AuthenticationHandler.AuthenticationType.Formulaire : AuthenticationHandler.AuthenticationType.Windows;
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    SqlCommands.SqlFromFile(t.SqlFile, connectionString, false);
                }
            }
            return(true);
        }
    static void Init()
    {
        // Get existing open window if one exist, otherwise create a new one
        UtilEditor window = (UtilEditor)EditorWindow.GetWindow(typeof(UtilEditor));

        window.Load();
    }
示例#3
0
    public static UIText CreateComponent()
    {
        UIText component = UtilEditor.ExtensionComponentWhenCreate <UIText>(typeof(UIText).Name.ToString());

        //设置默认值
        SetDefaultValue(component);
        return(component);
    }
示例#4
0
        public static UIRawImage AddComponent()
        {
            UIRawImage component = UtilEditor.ExtensionComponentWhenCreate <UIRawImage>(typeof(UIRawImage).Name.ToString());

            //设置默认值
            SetDefaultValue(component);
            return(component);
        }
示例#5
0
    public static UIButton AddComponent()
    {
        UIButton component = UtilEditor.ExtensionComponentWhenCreate <UIButton>(typeof(UIButton).Name.ToString());
        UIImage  image     = UtilEditor.GetOrAddCompoment <UIImage>(component.gameObject);

        component.targetGraphic = image;
        //设置默认值
        SetDefaultValue(component);
        return(component);
    }
    public static UITagButtonGroup AddComponent()
    {
        UITagButtonGroup component = UtilEditor.ExtensionComponentWhenCreate <UITagButtonGroup>(typeof(UITagButtonGroup).Name.ToString());

//            component.list.Clear();
//
//            for (int i = 0; i < 2; i++)
//            {
//                Selection.activeObject = component;
//                QToggleButton button = QToggleButtonEditor.AddComponent();
//                component.list.Add(button);
//            }
//            Selection.activeObject = component;
        return(component);
    }
示例#7
0
    public static new UITagButton AddComponent()
    {
//            QImageBox image = QImageBoxEditor.AddComponent();
//            image.raycastTarget = true;
//
//            QToggleButton component = Util.GetOrAddCompoment<QToggleButton>(image.CacheGameObject);
//            component.name = typeof(QToggleButton).Name.ToString();
        //设置默认值
        UITagButton component =
            UtilEditor.ExtensionComponentWhenCreate <UITagButton>(typeof(UITagButton).Name.ToString());
        UIImage image = UtilEditor.GetOrAddCompoment <UIImage>(component.gameObject);

        component.targetGraphic = image;
        SetDefaultValue(component);
        return(component);
    }
示例#8
0
    public void MakeTransitions()
    {
        List <Vector3> vert = new List <Vector3>();
        List <int>     tri  = new List <int>();

        foreach (VTChunk c in _chunks)
        {
            if (c == null)
            {
                continue;
            }
            Vector3 or = origin + v.blockSize * new Vector3(c.x, c.y, c.z), size = v.blockSize * Vector3.one;
            // Get no. of grid points for this chunk
            int nx = Mathf.RoundToInt(size.x / v.lod[c.lod].gridSize);
            int ny = Mathf.RoundToInt(size.y / v.lod[c.lod].gridSize);
            int nz = Mathf.RoundToInt(size.z / v.lod[c.lod].gridSize);

            // If there is a neighbor in the y-direction with a different LOD
            if (c.getNeigh(0, 1, 0) != null && c.lod == c.getNeigh(0, 1, 0).lod + 1)
            {
                // Fix the faces normal to y-direction
                for (int i = 0; i < nx; i++)
                {
                    for (int j = 0; j < nz; j++)
                    {
                        System.Func <int, int, Vector3> gridPt = (a, b) => {
                            return(or + new Vector3((float)(i + (float)a / 2) / (float)nx * size.x, size.y, (float)(j + (float)b / 2) / (float)nz * size.z));
                        };
                        // Get the case
                        int icase = 0;
                        for (int a = 0; a < 3; a++)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                if (v.Density(gridPt(a, b)) < 0)
                                {
                                    icase += transitionCaseValues[b * 3 + a];
                                }
                            }
                        }

                        int  classIndex = transitionCellClass[icase];
                        bool invert     = (classIndex & 0x80) > 0;
                        classIndex = classIndex & 0x7F;
                        int gc = transitionCellData[classIndex][0];
                        int nv = gc >> 4, tc = gc & 0x0F;
                        for (int a = 0; a < tc * 3; a += 3)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                int     vd = transitionVertexData[icase][transitionCellData[classIndex][a + 1 + b]];
                                int     iv0 = (vd & 0x0F), iv1 = (vd & 0xFF) >> 4;
                                Vector3 p0 = gridPt(transitionVertexPos[iv0][0], transitionVertexPos[iv0][1]);
                                Vector3 p1 = gridPt(transitionVertexPos[iv1][0], transitionVertexPos[iv1][1]);
                                float   d0 = v.Density(p0);
                                float   d1 = v.Density(p1);
                                if (d0 * d1 >= 0)
                                {
                                    // Density values should never be of the same sign
                                    Debug.LogError("transition density sign");
                                }
                                vert.Add(p0 + d0 / (d0 - d1) * (p1 - p0));
                            }
                            for (int b = 0, n = vert.Count; b < 3; b++)
                            {
                                vert.Add(vert[n - 3 + b]);
                            }
                            tri.Add(vert.Count - 2 - 3); tri.Add(vert.Count - 3 - 3); tri.Add(vert.Count - 1 - 3);
                            tri.Add(vert.Count - 3); tri.Add(vert.Count - 2); tri.Add(vert.Count - 1);
                        }
                    }
                }
            }

            if (c.getNeigh(0, -1, 0) != null && c.lod == c.getNeigh(0, -1, 0).lod + 1)
            {
                for (int i = 0; i < nx; i++)
                {
                    for (int j = 0; j < nz; j++)
                    {
                        System.Func <int, int, Vector3> gridPt = (a, b) => {
                            return(or + new Vector3((float)(i + (float)a / 2) / (float)nx * size.x, (float)(0) / (float)ny * size.y, (float)(j + (float)b / 2) / (float)nz * size.z));
                        };
                        int icase = 0;
                        for (int a = 0; a < 3; a++)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                if (v.Density(gridPt(a, b)) < 0)
                                {
                                    icase += transitionCaseValues[b * 3 + a];
                                }
                            }
                        }
                        int  classIndex = transitionCellClass[icase];
                        bool invert     = (classIndex & 0x80) > 0;
                        classIndex = classIndex & 0x7F;
                        int gc = transitionCellData[classIndex][0];
                        int nv = gc >> 4, tc = gc & 0x0F;
                        for (int a = 0; a < tc * 3; a += 3)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                int     vd = transitionVertexData[icase][transitionCellData[classIndex][a + 1 + b]];
                                int     iv0 = (vd & 0x0F), iv1 = (vd & 0xFF) >> 4;
                                Vector3 p0 = gridPt(transitionVertexPos[iv0][0], transitionVertexPos[iv0][1]);
                                Vector3 p1 = gridPt(transitionVertexPos[iv1][0], transitionVertexPos[iv1][1]);
                                float   d0 = v.Density(p0);
                                float   d1 = v.Density(p1);
                                if (d0 * d1 >= 0)
                                {
                                    Debug.LogError("transition density sign");
                                }
                                vert.Add(p0 + d0 / (d0 - d1) * (p1 - p0));
                            }
                            for (int b = 0, n = vert.Count; b < 3; b++)
                            {
                                vert.Add(vert[n - 3 + b]);
                            }
                            tri.Add(vert.Count - 2 - 3); tri.Add(vert.Count - 3 - 3); tri.Add(vert.Count - 1 - 3);
                            tri.Add(vert.Count - 3); tri.Add(vert.Count - 2); tri.Add(vert.Count - 1);
                        }
                    }
                }
            }

            if (c.getNeigh(1, 0, 0) != null && c.lod == c.getNeigh(1, 0, 0).lod + 1)
            {
                for (int i = 0; i < ny; i++)
                {
                    for (int j = 0; j < nz; j++)
                    {
                        System.Func <int, int, Vector3> gridPt = (a, b) => {
                            return(or + new Vector3((float)(nx) / (float)nx * size.x, (float)(i + (float)a / 2) / (float)ny * size.y, (float)(j + (float)b / 2) / (float)nz * size.z));
                        };
                        int icase = 0;
                        for (int a = 0; a < 3; a++)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                if (v.Density(gridPt(a, b)) < 0)
                                {
                                    icase += transitionCaseValues[b * 3 + a];
                                }
                            }
                        }
                        int  classIndex = transitionCellClass[icase];
                        bool invert     = (classIndex & 0x80) > 0;
                        classIndex = classIndex & 0x7F;
                        int gc = transitionCellData[classIndex][0];
                        int nv = gc >> 4, tc = gc & 0x0F;
                        for (int a = 0; a < tc * 3; a += 3)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                int     vd = transitionVertexData[icase][transitionCellData[classIndex][a + 1 + b]];
                                int     iv0 = (vd & 0x0F), iv1 = (vd & 0xFF) >> 4;
                                Vector3 p0 = gridPt(transitionVertexPos[iv0][0], transitionVertexPos[iv0][1]);
                                Vector3 p1 = gridPt(transitionVertexPos[iv1][0], transitionVertexPos[iv1][1]);
                                float   d0 = v.Density(p0);
                                float   d1 = v.Density(p1);
                                if (d0 * d1 >= 0)
                                {
                                    Debug.LogError("transition density sign");
                                }
                                vert.Add(p0 + d0 / (d0 - d1) * (p1 - p0));
                            }
                            //Vector3 nor=Vector3.Cross (vert[vert.Count-2]-vert[vert.Count-3],vert[vert.Count-1]-vert[vert.Count-2]).normalized;
                            for (int b = 0, n = vert.Count; b < 3; b++)
                            {
                                vert.Add(vert[n - 3 + b]);
                            }
                            tri.Add(vert.Count - 2 - 3); tri.Add(vert.Count - 3 - 3); tri.Add(vert.Count - 1 - 3);
                            tri.Add(vert.Count - 3); tri.Add(vert.Count - 2); tri.Add(vert.Count - 1);
                        }
                    }
                }
            }

            if (c.getNeigh(-1, 0, 0) != null && c.lod == c.getNeigh(-1, 0, 0).lod + 1)
            {
                for (int i = 0; i < ny; i++)
                {
                    for (int j = 0; j < nz; j++)
                    {
                        System.Func <int, int, Vector3> gridPt = (a, b) => {
                            return(or + new Vector3((float)(0) / (float)nx * size.x, (float)(i + (float)a / 2) / (float)ny * size.y, (float)(j + (float)b / 2) / (float)nz * size.z));
                        };
                        int icase = 0;
                        for (int a = 0; a < 3; a++)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                if (v.Density(gridPt(a, b)) < 0)
                                {
                                    icase += transitionCaseValues[b * 3 + a];
                                }
                            }
                        }
                        int  classIndex = transitionCellClass[icase];
                        bool invert     = (classIndex & 0x80) > 0;
                        classIndex = classIndex & 0x7F;
                        int gc = transitionCellData[classIndex][0];
                        int nv = gc >> 4, tc = gc & 0x0F;
                        for (int a = 0; a < tc * 3; a += 3)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                int     vd = transitionVertexData[icase][transitionCellData[classIndex][a + 1 + b]];
                                int     iv0 = (vd & 0x0F), iv1 = (vd & 0xFF) >> 4;
                                Vector3 p0 = gridPt(transitionVertexPos[iv0][0], transitionVertexPos[iv0][1]);
                                Vector3 p1 = gridPt(transitionVertexPos[iv1][0], transitionVertexPos[iv1][1]);
                                float   d0 = v.Density(p0);
                                float   d1 = v.Density(p1);
                                if (d0 * d1 >= 0)
                                {
                                    Debug.LogError("transition density sign");
                                }
                                vert.Add(p0 + d0 / (d0 - d1) * (p1 - p0));
                            }
                            //Vector3 nor=Vector3.Cross (vert[vert.Count-2]-vert[vert.Count-3],vert[vert.Count-1]-vert[vert.Count-2]).normalized;
                            for (int b = 0, n = vert.Count; b < 3; b++)
                            {
                                vert.Add(vert[n - 3 + b]);
                            }
                            tri.Add(vert.Count - 2 - 3); tri.Add(vert.Count - 3 - 3); tri.Add(vert.Count - 1 - 3);
                            tri.Add(vert.Count - 3); tri.Add(vert.Count - 2); tri.Add(vert.Count - 1);
                        }
                    }
                }
            }

            if (c.getNeigh(0, 0, 1) != null && c.lod == c.getNeigh(0, 0, 1).lod + 1)
            {
                for (int i = 0; i < ny; i++)
                {
                    for (int j = 0; j < nx; j++)
                    {
                        System.Func <int, int, Vector3> gridPt = (a, b) => {
                            return(or + new Vector3((float)(j + (float)b / 2) / (float)nx * size.x, (float)(i + (float)a / 2) / (float)ny * size.y, (float)(nz) / (float)nz * size.z));
                        };
                        int icase = 0;
                        for (int a = 0; a < 3; a++)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                if (v.Density(gridPt(a, b)) < 0)
                                {
                                    icase += transitionCaseValues[b * 3 + a];
                                }
                            }
                        }
                        int  classIndex = transitionCellClass[icase];
                        bool invert     = (classIndex & 0x80) > 0;
                        classIndex = classIndex & 0x7F;
                        int gc = transitionCellData[classIndex][0];
                        int nv = gc >> 4, tc = gc & 0x0F;
                        for (int a = 0; a < tc * 3; a += 3)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                int     vd = transitionVertexData[icase][transitionCellData[classIndex][a + 1 + b]];
                                int     iv0 = (vd & 0x0F), iv1 = (vd & 0xFF) >> 4;
                                Vector3 p0 = gridPt(transitionVertexPos[iv0][0], transitionVertexPos[iv0][1]);
                                Vector3 p1 = gridPt(transitionVertexPos[iv1][0], transitionVertexPos[iv1][1]);
                                float   d0 = v.Density(p0);
                                float   d1 = v.Density(p1);
                                if (d0 * d1 >= 0)
                                {
                                    Debug.LogError("transition density sign");
                                }
                                vert.Add(p0 + d0 / (d0 - d1) * (p1 - p0));
                            }
                            for (int b = 0, n = vert.Count; b < 3; b++)
                            {
                                vert.Add(vert[n - 3 + b]);
                            }
                            tri.Add(vert.Count - 2 - 3); tri.Add(vert.Count - 3 - 3); tri.Add(vert.Count - 1 - 3);
                            tri.Add(vert.Count - 3); tri.Add(vert.Count - 2); tri.Add(vert.Count - 1);
                        }
                    }
                }
            }

            if (c.getNeigh(0, 0, -1) != null && c.lod == c.getNeigh(0, 0, -1).lod + 1)
            {
                for (int i = 0; i < ny; i++)
                {
                    for (int j = 0; j < nx; j++)
                    {
                        System.Func <int, int, Vector3> gridPt = (a, b) => {
                            return(or + new Vector3((float)(j + (float)b / 2) / (float)nx * size.x, (float)(i + (float)a / 2) / (float)ny * size.y, (float)(0) / (float)nz * size.z));
                        };
                        int icase = 0;
                        for (int a = 0; a < 3; a++)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                if (v.Density(gridPt(a, b)) < 0)
                                {
                                    icase += transitionCaseValues[b * 3 + a];
                                }
                            }
                        }
                        int  classIndex = transitionCellClass[icase];
                        bool invert     = (classIndex & 0x80) > 0;
                        classIndex = classIndex & 0x7F;
                        int gc = transitionCellData[classIndex][0];
                        int nv = gc >> 4, tc = gc & 0x0F;
                        for (int a = 0; a < tc * 3; a += 3)
                        {
                            for (int b = 0; b < 3; b++)
                            {
                                int     vd = transitionVertexData[icase][transitionCellData[classIndex][a + 1 + b]];
                                int     iv0 = (vd & 0x0F), iv1 = (vd & 0xFF) >> 4;
                                Vector3 p0 = gridPt(transitionVertexPos[iv0][0], transitionVertexPos[iv0][1]);
                                Vector3 p1 = gridPt(transitionVertexPos[iv1][0], transitionVertexPos[iv1][1]);
                                float   d0 = v.Density(p0);
                                float   d1 = v.Density(p1);
                                if (d0 * d1 >= 0)
                                {
                                    Debug.LogError("transition density sign");
                                }
                                vert.Add(p0 + d0 / (d0 - d1) * (p1 - p0));
                            }
                            for (int b = 0, n = vert.Count; b < 3; b++)
                            {
                                vert.Add(vert[n - 3 + b]);
                            }
                            tri.Add(vert.Count - 2 - 3); tri.Add(vert.Count - 3 - 3); tri.Add(vert.Count - 1 - 3);
                            tri.Add(vert.Count - 3); tri.Add(vert.Count - 2); tri.Add(vert.Count - 1);
                        }
                    }
                }
            }
        }

        Mesh transitionMesh = new Mesh();

        transitionMesh.vertices = vert.ToArray();
        transitionMesh.SetTriangles(tri.ToArray(), 0);
        transitionMesh.RecalculateBounds(); transitionMesh.RecalculateNormals();
        transitionMesh.hideFlags = HideFlags.DontSave;

        GameObject tr = UtilEditor.createOrGetGO("Tr", transform);

        if (tr.GetComponent <MeshFilter>() == null)
        {
            tr.AddComponent <MeshFilter>();
        }
        if (tr.GetComponent <MeshRenderer>() == null)
        {
            tr.AddComponent <MeshRenderer>();
        }
        tr.GetComponent <MeshFilter>().sharedMesh       = transitionMesh;
        tr.GetComponent <MeshRenderer>().sharedMaterial = v.mat;
    }
示例#9
0
    public static Transform getAT(GameObject g)
    {
        GameObject at = UtilEditor.createOrGetGO("AimTargets", null);

        return(UtilEditor.createOrGetGO(g.name + "AT", at.transform).transform);
    }
示例#10
0
    /// <summary>
    /// Make all meshes in the area of this part of the terrain with the specified gridSize
    /// </summary>
    /// <param name="gridSize">Grid size (in meters)</param>
    public void Make(float gridSize)
    {
        // Get the mesh Gameobject if already present in the hierarchy, or create a new one.
        mesh = GameObject.Find(gameObject.name + " mesh");
        if (mesh != null)
        {
            DestroyImmediate(mesh);
        }
        mesh = new GameObject(gameObject.name + " mesh");
        mesh.transform.parent = UtilEditor.createOrGetGO("VTMesh", null).transform;

        VTChunk[,,] nch = new VTChunk[nchunk, nchunk, nchunk];
        for (int i = 0, gi = 0; i < nchunk; i++)
        {
            for (int j = 0; j < nchunk; j++)
            {
                for (int k = 0; k < nchunk; k++)
                {
                    Mesh m = Make(gridSize, origin + v.blockSize * new Vector3(i, j, k), v.blockSize * Vector3.one);
                    if (m == null)
                    {
                        chunk(i, j, k, null); continue;
                    }
                    GameObject g = new GameObject("Chunk" + gi++);
                    g.transform.parent = mesh.transform;
                    g.AddComponent <MeshFilter>().sharedMesh       = m;
                    g.AddComponent <MeshRenderer>().sharedMaterial = v.mat;
                    g.AddComponent <MeshCollider>().sharedMesh     = m;
                    g.layer = LayerMask.NameToLayer("VoxelTerrain");
                    VTChunk c = g.AddComponent <VTChunk>();
                    c.x = i; c.y = j; c.z = k;
                    System.Func <int, int, int, int> SetNeighs = (x, y, z) => {
                        VTChunk c1 = null;
                        if (i + x == -1)
                        {
                            c1 = px <= 0?null:v.getPart(px - 1, py, pz).chunk(nchunk - 1, j, k);
                        }
                        else if (i + x == nchunk)
                        {
                            c1 = px >= v.npart - 1?null:v.getPart(px + 1, py, pz).chunk(0, j, k);
                        }
                        else if (j + y == -1)
                        {
                            c1 = py <= 0?null:v.getPart(px, py - 1, pz).chunk(i, nchunk - 1, k);
                        }
                        else if (j + y == nchunk)
                        {
                            c1 = py >= v.npart - 1?null:v.getPart(px, py + 1, pz).chunk(i, 0, k);
                        }
                        else if (k + z == -1)
                        {
                            c1 = pz <= 0?null:v.getPart(px, py, pz - 1).chunk(i, j, nchunk - 1);
                        }
                        else if (k + z == nchunk)
                        {
                            c1 = pz >= v.npart - 1?null:v.getPart(px, py, pz + 1).chunk(i, j, 0);
                        }
                        else
                        {
                            c1 = nch[i + x, j + y, k + z];
                        }
                        if (c1 != null)
                        {
                            c.setNeigh(x, y, z, c1); c1.setNeigh(-x, -y, -z, c);
                        }
                        return(0);
                    };
                    SetNeighs(-1, 0, 0); SetNeighs(1, 0, 0);
                    SetNeighs(0, -1, 0); SetNeighs(0, 1, 0);
                    SetNeighs(0, 0, -1); SetNeighs(0, 0, 1);
                    nch[i, j, k] = c;
                    chunk(i, j, k, c);
                }
            }
        }
    }