Ejemplo n.º 1
0
 public VoxelModelGenerateTask(IVoxelVolume volume, IVoxelMaterialResolver resolver, VoxelModelGenerationSettings settings)
 {
     m_Volume           = volume;
     m_MaterialResolver = resolver;
     m_Settings         = settings;
     m_Intermediate     = new IntermediateData();
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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)));
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
    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;
        }
    }
Ejemplo n.º 9
0
 public static bool IsValidCoord(this IVoxelVolume volume, int x, int y, int z)
 {
     return(volume.IsValidCoord(new Vector3Int(x, y, z)));
 }
Ejemplo n.º 10
0
        public static VoxelModelGenerationRequest NewModelRequestSync(IVoxelVolume volume, IVoxelMaterialResolver resolver, VoxelModelGenerationSettings settings)
        {
            VoxelModelGenerationRequest request = new VoxelModelGenerationRequest(new VoxelModelGenerateTask(volume, resolver, settings), false);

            return(request);
        }
Ejemplo n.º 11
0
 public static VoxelCell GetVoxelCell(this IVoxelVolume volume, Vector3Int coord)
 {
     return(volume.GetVoxelCell(coord.x, coord.y, coord.z));
 }
Ejemplo n.º 12
0
 public static bool SetVoxelCell(this IVoxelVolume volume, Vector3Int coord, VoxelCell cell)
 {
     return(volume.SetVoxelCell(coord.x, coord.y, coord.z, cell));
 }
Ejemplo n.º 13
0
 public bool BlendVoxelMaterial(IVoxelVolume volume, Vector3Int coord, VoxelMaterial material, float strength)
 {
     return(BlendVoxelMaterial(volume, coord.x, coord.y, coord.z, material, strength));
 }
Ejemplo n.º 14
0
 public VoxelMaterial GetVoxelMaterial(IVoxelVolume volume, int x, int y, int z)
 {
     return(VoxelCellToMaterial(volume.GetVoxelCell(x, y, z)));
 }
Ejemplo n.º 15
0
 public bool SetVoxelMaterial(IVoxelVolume volume, Vector3Int coord, VoxelMaterial material)
 {
     return(volume.SetVoxelCell(coord, VoxelMaterialToCell(material)));
 }
Ejemplo n.º 16
0
 public bool SetVoxelMaterial(IVoxelVolume volume, int x, int y, int z, VoxelMaterial material)
 {
     return(volume.SetVoxelCell(x, y, z, VoxelMaterialToCell(material)));
 }
Ejemplo n.º 17
0
 public VoxelMaterial GetVoxelMaterial(IVoxelVolume volume, Vector3Int coord)
 {
     return(VoxelCellToMaterial(volume.GetVoxelCell(coord)));
 }