Exemplo n.º 1
0
 public void TurnOnCurrentModeWithObjectUpdate(McData data)
 {
     scene.SetOrUpdateModel(new McGameObjData(data, mcManager.LoadModelMeshes(data)));
     ModelsListChanged();
     TurnOnCurrentMode();
     controllerRaycast.SetActive(true);
 }
Exemplo n.º 2
0
    public override McData GetDefaultData()
    {
        var data = new McData();

        data.Guid   = Guid.NewGuid();
        data.Colors = Enumerable.Repeat(new Vector4(0, 0.5f, 1, 1), DesiredBufferSize).ToArray();

        data.Values = new float[DesiredBufferSize];
        for (int z = 0; z < N; z++)
        {
            for (int y = 0; y < N; y++)
            {
                for (int x = 0; x < N; x++)
                {
                    data.Values[x + y * N + z * N * N] = 0;

                    if (x != 0 && y != 0 && z != 0 && x != N - 1 && y != N - 1 && z != N - 1)
                    {
                        if ((x <= 1 || x >= N - 2) && (y <= 1 || y >= N - 2) && (z <= 1 || z >= N - 2) ||
                            x >= N / 2 && x <= N / 2 + 1 && y >= N / 2 && y <= N / 2 + 1 && z >= N / 2 && z <= N / 2 + 1)
                        {
                            //if (y > 0 && y < 2 && x > 1 && x < N && z > 1 && z < N)
                            data.Values[x + y * N + z * N * N] = 1.0f;
                        }
                    }
                }
            }
        }


        return(data);
    }
Exemplo n.º 3
0
    public GameObject GenerateMeshes(McData data)
    {
        if (data.Values.Length != DesiredBufferSize)
        {
            throw new System.ArgumentException("Values array should have " + DesiredBufferSize + " elements");
        }

        if (data.Colors.Length != DesiredBufferSize)
        {
            throw new System.ArgumentException("Colors array should have " + DesiredBufferSize + " elements");
        }

        _verts = new McVert[Size];
        dataBuffer.SetData(data.Values);
        dataColorBuffer.SetData(data.Colors);

        GameObject meshesObject = new GameObject("Marching Meshes");

        CleanMeshBuffer();
        CalculateMesh(meshesObject.transform);
        CalculateNormals();

        CreateMeshes(meshesObject.transform);

        return(meshesObject);
    }
Exemplo n.º 4
0
    public GameObject LoadTerrainMeshes(McData data)
    {
        var gameObject = TerrainGenerator.GenerateMeshes(data);

        gameObject.name = McConsts.TerrainPrefix + data.Guid.ToString();

        return(gameObject);
    }
Exemplo n.º 5
0
    public GameObject LoadModelMeshes(McData data)
    {
        var gameObject = ModelGenerator.GenerateMeshes(data);

        gameObject.name = McConsts.ModelPrefix + data.Guid.ToString();
        gameObject.SetActive(false);

        return(gameObject);
    }
Exemplo n.º 6
0
        public McData GetData()
        {
            var data = new McData();

            data.Guid   = Guid;
            data.Values = new float[N * N * N];
            data.Colors = new Vector4[N * N * N];

            _renderer.dataBuffer.GetData(data.Values);
            _renderer.dataColorBuffer.GetData(data.Colors);

            return(data);
        }
Exemplo n.º 7
0
    public EditableModel LoadModel(McData data)
    {
        var modelObj = new GameObject();

        modelObj.name = McConsts.EditableModelPrefix + data.Guid.ToString();
        var model = modelObj.AddComponent <EditableModel>();

        model.Shaders  = ModelShaders;
        model.material = material;
        model.brush    = ModelBrush;
        model.SetData(data);

        return(model);
    }
Exemplo n.º 8
0
    public EditableTerrain LoadTerrain(McData data)
    {
        var terainObj = new GameObject();

        terainObj.name = McConsts.EditableTerrainPrefix + data.Guid.ToString();
        var terrain = terainObj.AddComponent <EditableTerrain>();

        terrain.Shaders  = TerrainShaders;
        terrain.material = material;
        terrain.brush    = TerrainBrush;
        terrain.SetData(data);

        TerrainBrush.terrain = terrain;

        return(terrain);
    }
Exemplo n.º 9
0
        public void SetData(McData data)
        {
            Guid = data.Guid;

            if (Shaders == null)
            {
                throw new ArgumentException("renderer");
            }

            if (_renderer == null)
            {
                _renderer = new GPURenderer(Shaders, N, N * N * N);
            }

            _renderer.dataBuffer.SetData(data.Values);
            _renderer.dataColorBuffer.SetData(data.Colors);
        }
    public override McData GetDefaultData()
    {
        var data = new McData();

        data.Guid   = Guid.NewGuid();
        data.Colors = Enumerable.Repeat(new Vector4(0.8f, 0.6f, 0.35f, 1), DesiredBufferSize).ToArray();

        data.Values = new float[DesiredBufferSize];
        for (int z = 0; z < N; z++)
        {
            for (int x = 0; x < N; x++)
            {
                data.Values[x + z * N] = 0;

                if (x != 0 && z != 0 && x != N - 1 && z != N - 1)
                {
                    data.Values[x + z * N] = 11;
                }
            }
        }

        return(data);
    }
Exemplo n.º 11
0
 public void SaveObj(string path, McData data)
 {
     Save(path, data);
 }
Exemplo n.º 12
0
 private void UpdateAndTurnOnSceneModeFromObjectMode(McData terrainData)
 {
     sceneModeController.TurnOnCurrentModeWithObjectUpdate(terrainData);
 }
Exemplo n.º 13
0
 public McGameObjData(McData data, GameObject gameObject)
 {
     Data       = data;
     GameObject = gameObject;
 }
Exemplo n.º 14
0
 public void TurnOnCurrentModeWithTerrainUpdate(McData data)
 {
     scene.SetOrUpdateTerrain(new McGameObjData(data, mcManager.LoadTerrainMeshes(data)));
     TurnOnCurrentMode();
     controllerRaycast.SetActive(true);
 }
Exemplo n.º 15
0
 public LoadData(Guid sceneGuid, McData data)
 {
     this.sceneGuid = sceneGuid;
     this.data      = data;
 }