示例#1
0
        /// <summary>
        /// Generates a fluent syntax from a given type.
        /// </summary>
        /// <param name="root">The type to analyze for fluent syntax
        /// creation.</param>
        /// <param name="generateParams">Other parameters relevant for
        /// fluent syntax generation output.</param>
        /// <returns></returns>
        public static CodeNamespace Generate(Type root, GenerateParams generateParams)
        {
            SyntaxAutomataBuilder syntaxAutomataBuilder =
                new SyntaxAutomataBuilder(root);

            IDeterministicAutomata<MethodInfo> syntaxAutomata =
                syntaxAutomataBuilder.Build
                    (FundamentalAutomatas.True("Root",
                                               new ToStringComparer<MethodInfo>()));

            AutomataNamespaceBuilder automataNamespaceBuilder =
                new AutomataNamespaceBuilder(syntaxAutomata);

            CodeNamespace result =
                automataNamespaceBuilder.Build(generateParams.NamespaceName,
                                               generateParams.SyntaxTypeName);

            return result;
        }
示例#2
0
    public static MeshFilter GenerateRectObj(Vector3 origin, GenerateParams gParams)
    {
        nRow           = gParams.row;
        nCol           = gParams.col;
        generateParams = gParams;
        vecOrigin      = Vector3.zero;

        vertices.Clear();
        triangles.Clear();
        UV.Clear();
        dicProcessedRecord.Clear();

        int rectCount = 0;

        for (int i = 0; i < nCol; ++i)
        {
            for (int j = 0; j < nRow; ++j)
            {
                if (GenerateSingleRect(i, j))
                {
                    ++rectCount;
                }
            }
        }
        Debug.Log("Generate Rect Num: " + rectCount);

        Mesh mesh = null;

        if (gParams.mfOperate)
        {
            mesh = gParams.mfOperate.mesh;
            mesh.Clear();
        }
        else
        {
            GameObject go = new GameObject(gParams.objName);
            //分配mesh
            gParams.mfOperate      = go.AddComponent <MeshFilter>();
            gParams.mfOperate.mesh = mesh = new Mesh();
            //分配材质
            MeshRenderer mr = go.GetComponent <MeshRenderer>();
            if (!mr)
            {
                mr = go.AddComponent <MeshRenderer>();
            }
            mr.sharedMaterial = AssetDatabase.LoadAssetAtPath <Material>(gParams.materialPath);

            if (gParams.parent)
            {
                go.transform.SetParent(gParams.parent);
            }
        }
        mesh.vertices  = vertices.ToArray();
        mesh.triangles = triangles.ToArray();
        mesh.uv        = UV.ToArray();

        mesh.RecalculateBounds();
        mesh.RecalculateTangents();
        mesh.RecalculateNormals();

        gParams.mfOperate.transform.position = origin;

        return(gParams.mfOperate);
    }
 public bool Generate(GenerateParams parameters, int count)
 {
     return(_service.GenerateLocalUsers(parameters.template, parameters.pattern, parameters.domain, count));
 }