public void TurnOnCurrentModeWithObjectUpdate(McData data) { scene.SetOrUpdateModel(new McGameObjData(data, mcManager.LoadModelMeshes(data))); ModelsListChanged(); TurnOnCurrentMode(); controllerRaycast.SetActive(true); }
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); }
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); }
public GameObject LoadTerrainMeshes(McData data) { var gameObject = TerrainGenerator.GenerateMeshes(data); gameObject.name = McConsts.TerrainPrefix + data.Guid.ToString(); return(gameObject); }
public GameObject LoadModelMeshes(McData data) { var gameObject = ModelGenerator.GenerateMeshes(data); gameObject.name = McConsts.ModelPrefix + data.Guid.ToString(); gameObject.SetActive(false); return(gameObject); }
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); }
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); }
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); }
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); }
public void SaveObj(string path, McData data) { Save(path, data); }
private void UpdateAndTurnOnSceneModeFromObjectMode(McData terrainData) { sceneModeController.TurnOnCurrentModeWithObjectUpdate(terrainData); }
public McGameObjData(McData data, GameObject gameObject) { Data = data; GameObject = gameObject; }
public void TurnOnCurrentModeWithTerrainUpdate(McData data) { scene.SetOrUpdateTerrain(new McGameObjData(data, mcManager.LoadTerrainMeshes(data))); TurnOnCurrentMode(); controllerRaycast.SetActive(true); }
public LoadData(Guid sceneGuid, McData data) { this.sceneGuid = sceneGuid; this.data = data; }