public VoxelModelGenerateTask(IVoxelVolume volume, IVoxelMaterialResolver resolver, VoxelModelGenerationSettings settings) { m_Volume = volume; m_MaterialResolver = resolver; m_Settings = settings; m_Intermediate = new IntermediateData(); }
public static bool IsValidCoord(this IVoxelVolume volume, Vector3Int coord) { BoundsInt bounds = volume.GetVolumeBounds(); Vector3Int clammpedCoord = Vector3Int.Min(Vector3Int.Max(coord, bounds.min), bounds.max); return(clammpedCoord == coord); }
public VoxelVolumeSubview(IVoxelVolume source, Vector3Int offset, Vector3Int size) { m_Source = source; BoundsInt sourceBounds = source.GetVolumeBounds(); m_Bounds = new BoundsInt(); m_Bounds.SetMinMax(m_Bounds.min + offset, m_Bounds.min + offset + size); }
public bool BlendVoxelMaterial(IVoxelVolume volume, int x, int y, int z, VoxelMaterial material, float strength) { // TODO - May need to optimize this to prevent blends being created excessively VoxelMaterial baseMaterial = GetVoxelMaterial(volume, x, y, z); VoxelMaterial blendedMaterial = VoxelMaterial.Lerp(baseMaterial, material, strength); return(volume.SetVoxelCell(x, y, z, VoxelMaterialToCell(blendedMaterial))); }
public CommonVoxelImporter(IVoxelVolume source, CommonVoxelImportSettings settings, Vector3Int cellSize, Vector3Int frameStep, Vector3Int channelStep) { m_SourceVolume = source; m_Settings = settings; m_CellSize = cellSize; m_ChannelStep = channelStep; m_FrameStep = frameStep; }
public static bool TryGetVoxelCell(this IVoxelVolume volume, int x, int y, int z, out VoxelCell value) { Assert.Message(volume.IsVolumeReadable(), "TryGetVoxelCell being called on non-readable volume"); if (volume.IsValidCoord(x, y, z)) { value = volume.GetVoxelCell(x, y, z); return(true); } value = VoxelCell.Invalid; return(false); }
public static bool TryGetVoxelCell(this IVoxelVolume volume, Vector3Int coord, out VoxelCell value) { Assert.Message(volume.IsVolumeReadable(), "TryGetVoxelCell being called on non-readable volume"); if (volume.IsValidCoord(coord)) { value = volume.GetVoxelCell(coord.x, coord.y, coord.z); return(true); } value = VoxelCell.Invalid; return(false); }
public void KickoffGenerate() { if (!m_IsGenerating) { m_IsGenerating = true; IVoxelVolume volume = GenerateVolume(); var req = VoxelModelGenerationRequest.NewModelRequestSync(volume, m_MaterialResolver, m_ModelSettings); MeshFilter filter = GetComponent <MeshFilter>(); filter.mesh = req.GetMeshOutput(); m_MaterialResolver = null; } }
public static bool IsValidCoord(this IVoxelVolume volume, int x, int y, int z) { return(volume.IsValidCoord(new Vector3Int(x, y, z))); }
public static VoxelModelGenerationRequest NewModelRequestSync(IVoxelVolume volume, IVoxelMaterialResolver resolver, VoxelModelGenerationSettings settings) { VoxelModelGenerationRequest request = new VoxelModelGenerationRequest(new VoxelModelGenerateTask(volume, resolver, settings), false); return(request); }
public static VoxelCell GetVoxelCell(this IVoxelVolume volume, Vector3Int coord) { return(volume.GetVoxelCell(coord.x, coord.y, coord.z)); }
public static bool SetVoxelCell(this IVoxelVolume volume, Vector3Int coord, VoxelCell cell) { return(volume.SetVoxelCell(coord.x, coord.y, coord.z, cell)); }
public bool BlendVoxelMaterial(IVoxelVolume volume, Vector3Int coord, VoxelMaterial material, float strength) { return(BlendVoxelMaterial(volume, coord.x, coord.y, coord.z, material, strength)); }
public VoxelMaterial GetVoxelMaterial(IVoxelVolume volume, int x, int y, int z) { return(VoxelCellToMaterial(volume.GetVoxelCell(x, y, z))); }
public bool SetVoxelMaterial(IVoxelVolume volume, Vector3Int coord, VoxelMaterial material) { return(volume.SetVoxelCell(coord, VoxelMaterialToCell(material))); }
public bool SetVoxelMaterial(IVoxelVolume volume, int x, int y, int z, VoxelMaterial material) { return(volume.SetVoxelCell(x, y, z, VoxelMaterialToCell(material))); }
public VoxelMaterial GetVoxelMaterial(IVoxelVolume volume, Vector3Int coord) { return(VoxelCellToMaterial(volume.GetVoxelCell(coord))); }