Rename Sparse/Spotty Full data sources to High/LowDetailIncomplete
I liked the terms "sparse" and "spotty", however the difference between the two based on their names was not obvious, which made differentiating between the two difficult.
This commit is contained in:
+3
@@ -3,11 +3,14 @@ package com.seibel.lod.core.dataObjects.fullData.accessor;
|
||||
import com.seibel.lod.core.dataObjects.fullData.FullDataPointIdMap;
|
||||
import com.seibel.lod.core.pos.DhChunkPos;
|
||||
import com.seibel.lod.core.pos.DhLodPos;
|
||||
import com.seibel.lod.core.util.FullDataPointUtil;
|
||||
import com.seibel.lod.core.util.LodUtil;
|
||||
|
||||
/**
|
||||
* A more specific version of {@link FullDataArrayAccessor}
|
||||
* that only contains full data for a single chunk.
|
||||
*
|
||||
* @see FullDataPointUtil
|
||||
*/
|
||||
public class ChunkSizedFullDataAccessor extends FullDataArrayAccessor
|
||||
{
|
||||
|
||||
+2
-2
@@ -4,14 +4,14 @@ import com.seibel.lod.core.dataObjects.fullData.FullDataPointIdMap;
|
||||
import com.seibel.lod.core.util.FullDataPointUtil;
|
||||
import com.seibel.lod.core.util.LodUtil;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.CompleteFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.SpottyFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.LowDetailIncompleteFullDataSource;
|
||||
|
||||
/**
|
||||
* Contains Full Data points and basic methods for getting and setting them. <br>
|
||||
* Can be used standalone or as the base for Full data sources.
|
||||
*
|
||||
* @see CompleteFullDataSource
|
||||
* @see SpottyFullDataSource
|
||||
* @see LowDetailIncompleteFullDataSource
|
||||
*/
|
||||
public class FullDataArrayAccessor implements IFullDataAccessor
|
||||
{
|
||||
|
||||
+1
@@ -13,6 +13,7 @@ import java.util.Iterator;
|
||||
*
|
||||
* @see IFullDataSource
|
||||
* @see FullDataArrayAccessor
|
||||
* @see FullDataPointUtil
|
||||
*/
|
||||
public interface IFullDataAccessor
|
||||
{
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package com.seibel.lod.core.dataObjects.fullData.loader;
|
||||
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.IFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.SpottyFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.LowDetailIncompleteFullDataSource;
|
||||
import com.seibel.lod.core.file.fullDatafile.FullDataMetaFile;
|
||||
import com.seibel.lod.core.level.IDhLevel;
|
||||
|
||||
@@ -11,12 +11,12 @@ import java.io.IOException;
|
||||
public class SingleChunkFullDataLoader extends AbstractFullDataSourceLoader
|
||||
{
|
||||
public SingleChunkFullDataLoader() {
|
||||
super(SpottyFullDataSource.class, SpottyFullDataSource.TYPE_ID, new byte[]{ SpottyFullDataSource.LATEST_VERSION});
|
||||
super(LowDetailIncompleteFullDataSource.class, LowDetailIncompleteFullDataSource.TYPE_ID, new byte[]{ LowDetailIncompleteFullDataSource.LATEST_VERSION});
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFullDataSource loadData(FullDataMetaFile dataFile, BufferedInputStream bufferedInputStream, IDhLevel level) throws IOException, InterruptedException
|
||||
{
|
||||
return SpottyFullDataSource.loadData(dataFile, bufferedInputStream, level);
|
||||
return LowDetailIncompleteFullDataSource.loadData(dataFile, bufferedInputStream, level);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package com.seibel.lod.core.dataObjects.fullData.loader;
|
||||
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.IFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.SparseFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.HighDetailIncompleteFullDataSource;
|
||||
import com.seibel.lod.core.file.fullDatafile.FullDataMetaFile;
|
||||
import com.seibel.lod.core.level.IDhLevel;
|
||||
|
||||
@@ -12,12 +12,12 @@ public class SparseFullDataLoader extends AbstractFullDataSourceLoader
|
||||
{
|
||||
public SparseFullDataLoader()
|
||||
{
|
||||
super(SparseFullDataSource.class, SparseFullDataSource.TYPE_ID, new byte[] { SparseFullDataSource.LATEST_VERSION });
|
||||
super(HighDetailIncompleteFullDataSource.class, HighDetailIncompleteFullDataSource.TYPE_ID, new byte[] { HighDetailIncompleteFullDataSource.LATEST_VERSION });
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFullDataSource loadData(FullDataMetaFile dataFile, BufferedInputStream bufferedInputStream, IDhLevel level) throws IOException, InterruptedException
|
||||
{
|
||||
return SparseFullDataSource.loadData(dataFile, bufferedInputStream, level);
|
||||
return HighDetailIncompleteFullDataSource.loadData(dataFile, bufferedInputStream, level);
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -12,6 +12,7 @@ import com.seibel.lod.core.file.fullDatafile.FullDataMetaFile;
|
||||
import com.seibel.lod.core.pos.DhSectionPos;
|
||||
import com.seibel.lod.core.util.BitShiftUtil;
|
||||
import com.seibel.lod.core.logging.DhLoggerBuilder;
|
||||
import com.seibel.lod.core.util.FullDataPointUtil;
|
||||
import com.seibel.lod.core.util.LodUtil;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
@@ -19,6 +20,10 @@ import java.io.*;
|
||||
|
||||
/**
|
||||
* This data source contains every datapoint over its given {@link DhSectionPos}.
|
||||
*
|
||||
* @see FullDataPointUtil
|
||||
* @see LowDetailIncompleteFullDataSource
|
||||
* @see HighDetailIncompleteFullDataSource
|
||||
*/
|
||||
public class CompleteFullDataSource extends FullDataArrayAccessor implements IFullDataSource
|
||||
{
|
||||
|
||||
+20
-14
@@ -11,6 +11,7 @@ import com.seibel.lod.core.pos.DhLodPos;
|
||||
import com.seibel.lod.core.pos.DhSectionPos;
|
||||
import com.seibel.lod.core.logging.DhLoggerBuilder;
|
||||
import com.seibel.lod.core.util.BitShiftUtil;
|
||||
import com.seibel.lod.core.util.FullDataPointUtil;
|
||||
import com.seibel.lod.core.util.LodUtil;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
@@ -18,22 +19,27 @@ import java.io.*;
|
||||
import java.util.BitSet;
|
||||
|
||||
/**
|
||||
* Handles full data with the detail level {@link SparseFullDataSource#SPARSE_UNIT_DETAIL}.
|
||||
* In other words, this is the middle ground between {@link SpottyFullDataSource} and {@link CompleteFullDataSource}
|
||||
* TODO there has to be a better way to name these
|
||||
* Used for small incomplete LOD blocks.<br>
|
||||
* Handles incomplete full data with a detail level equal to or lower than
|
||||
* {@link HighDetailIncompleteFullDataSource#MAX_SECTION_DETAIL}.
|
||||
*
|
||||
* @see LowDetailIncompleteFullDataSource
|
||||
* @see CompleteFullDataSource
|
||||
* @see FullDataPointUtil
|
||||
*/
|
||||
public class SparseFullDataSource implements IIncompleteFullDataSource
|
||||
public class HighDetailIncompleteFullDataSource implements IIncompleteFullDataSource
|
||||
{
|
||||
private static final Logger LOGGER = DhLoggerBuilder.getLogger();
|
||||
|
||||
public static final byte SPARSE_UNIT_DETAIL = LodUtil.CHUNK_DETAIL_LEVEL;
|
||||
public static final byte SPARSE_UNIT_SIZE = (byte) BitShiftUtil.powerOfTwo(SPARSE_UNIT_DETAIL);
|
||||
|
||||
|
||||
public static final byte SECTION_SIZE_OFFSET = 6;
|
||||
public static final int SECTION_SIZE = (byte) BitShiftUtil.powerOfTwo(SECTION_SIZE_OFFSET);
|
||||
/** aka max detail level */
|
||||
public static final byte MAX_SECTION_DETAIL = SECTION_SIZE_OFFSET + SPARSE_UNIT_DETAIL;
|
||||
public static final byte LATEST_VERSION = 0;
|
||||
public static final long TYPE_ID = "SparseFullDataSource".hashCode();
|
||||
public static final long TYPE_ID = "HighDetailIncompleteFullDataSource".hashCode();
|
||||
|
||||
/**
|
||||
* This is the byte put between different sections in the binary save file.
|
||||
@@ -58,8 +64,8 @@ public class SparseFullDataSource implements IIncompleteFullDataSource
|
||||
// constructors //
|
||||
//==============//
|
||||
|
||||
public static SparseFullDataSource createEmpty(DhSectionPos pos) { return new SparseFullDataSource(pos); }
|
||||
protected SparseFullDataSource(DhSectionPos sectionPos)
|
||||
public static HighDetailIncompleteFullDataSource createEmpty(DhSectionPos pos) { return new HighDetailIncompleteFullDataSource(pos); }
|
||||
private HighDetailIncompleteFullDataSource(DhSectionPos sectionPos)
|
||||
{
|
||||
LodUtil.assertTrue(sectionPos.sectionDetailLevel > SPARSE_UNIT_DETAIL);
|
||||
LodUtil.assertTrue(sectionPos.sectionDetailLevel <= MAX_SECTION_DETAIL);
|
||||
@@ -73,7 +79,7 @@ public class SparseFullDataSource implements IIncompleteFullDataSource
|
||||
this.mapping = new FullDataPointIdMap();
|
||||
}
|
||||
|
||||
protected SparseFullDataSource(DhSectionPos sectionPos, FullDataPointIdMap mapping, FullDataArrayAccessor[] data)
|
||||
protected HighDetailIncompleteFullDataSource(DhSectionPos sectionPos, FullDataPointIdMap mapping, FullDataArrayAccessor[] data)
|
||||
{
|
||||
LodUtil.assertTrue(sectionPos.sectionDetailLevel > SPARSE_UNIT_DETAIL);
|
||||
LodUtil.assertTrue(sectionPos.sectionDetailLevel <= MAX_SECTION_DETAIL);
|
||||
@@ -163,9 +169,9 @@ public class SparseFullDataSource implements IIncompleteFullDataSource
|
||||
}
|
||||
|
||||
|
||||
if (fullDataSource instanceof SparseFullDataSource)
|
||||
if (fullDataSource instanceof HighDetailIncompleteFullDataSource)
|
||||
{
|
||||
this.sampleFrom((SparseFullDataSource) fullDataSource);
|
||||
this.sampleFrom((HighDetailIncompleteFullDataSource) fullDataSource);
|
||||
}
|
||||
else if (fullDataSource instanceof CompleteFullDataSource)
|
||||
{
|
||||
@@ -177,7 +183,7 @@ public class SparseFullDataSource implements IIncompleteFullDataSource
|
||||
}
|
||||
}
|
||||
|
||||
private void sampleFrom(SparseFullDataSource sparseDataSource)
|
||||
private void sampleFrom(HighDetailIncompleteFullDataSource sparseDataSource)
|
||||
{
|
||||
DhSectionPos pos = sparseDataSource.getSectionPos();
|
||||
this.isEmpty = false;
|
||||
@@ -307,7 +313,7 @@ public class SparseFullDataSource implements IIncompleteFullDataSource
|
||||
dataOutputStream.writeInt(DATA_GUARD_BYTE);
|
||||
}
|
||||
|
||||
public static SparseFullDataSource loadData(FullDataMetaFile dataFile, BufferedInputStream bufferedInputStream, IDhLevel level) throws IOException, InterruptedException
|
||||
public static HighDetailIncompleteFullDataSource loadData(FullDataMetaFile dataFile, BufferedInputStream bufferedInputStream, IDhLevel level) throws IOException, InterruptedException
|
||||
{
|
||||
LodUtil.assertTrue(dataFile.pos.sectionDetailLevel > SPARSE_UNIT_DETAIL);
|
||||
LodUtil.assertTrue(dataFile.pos.sectionDetailLevel <= MAX_SECTION_DETAIL);
|
||||
@@ -465,7 +471,7 @@ public class SparseFullDataSource implements IIncompleteFullDataSource
|
||||
}
|
||||
}
|
||||
|
||||
return new SparseFullDataSource(dataFile.pos, mapping, fullDataArrays);
|
||||
return new HighDetailIncompleteFullDataSource(dataFile.pos, mapping, fullDataArrays);
|
||||
}
|
||||
}
|
||||
|
||||
+21
-15
@@ -10,6 +10,7 @@ import com.seibel.lod.core.level.IDhLevel;
|
||||
import com.seibel.lod.core.logging.DhLoggerBuilder;
|
||||
import com.seibel.lod.core.pos.DhLodPos;
|
||||
import com.seibel.lod.core.pos.DhSectionPos;
|
||||
import com.seibel.lod.core.util.FullDataPointUtil;
|
||||
import com.seibel.lod.core.util.LodUtil;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
@@ -17,16 +18,21 @@ import java.io.*;
|
||||
import java.util.BitSet;
|
||||
|
||||
/**
|
||||
* more data than sparse, less than complete.
|
||||
* TODO there has to be a better way to name these
|
||||
* Used for large incomplete LOD blocks. <Br>
|
||||
* Handles incomplete full data with a detail level higher than
|
||||
* {@link HighDetailIncompleteFullDataSource#MAX_SECTION_DETAIL}.
|
||||
*
|
||||
* @see HighDetailIncompleteFullDataSource
|
||||
* @see CompleteFullDataSource
|
||||
* @see FullDataPointUtil
|
||||
*/
|
||||
public class SpottyFullDataSource extends FullDataArrayAccessor implements IIncompleteFullDataSource
|
||||
public class LowDetailIncompleteFullDataSource extends FullDataArrayAccessor implements IIncompleteFullDataSource
|
||||
{
|
||||
private static final Logger LOGGER = DhLoggerBuilder.getLogger();
|
||||
public static final byte SECTION_SIZE_OFFSET = 6;
|
||||
public static final int SECTION_SIZE = 1 << SECTION_SIZE_OFFSET;
|
||||
public static final byte LATEST_VERSION = 0;
|
||||
public static final long TYPE_ID = "SpottyFullDataSource".hashCode();
|
||||
public static final long TYPE_ID = "LowDetailIncompleteFullDataSource".hashCode();
|
||||
|
||||
private final DhSectionPos sectionPos;
|
||||
private final BitSet isColumnNotEmpty;
|
||||
@@ -40,18 +46,18 @@ public class SpottyFullDataSource extends FullDataArrayAccessor implements IInco
|
||||
// constructors //
|
||||
//==============//
|
||||
|
||||
public static SpottyFullDataSource createEmpty(DhSectionPos pos) { return new SpottyFullDataSource(pos); }
|
||||
private SpottyFullDataSource(DhSectionPos sectionPos)
|
||||
public static LowDetailIncompleteFullDataSource createEmpty(DhSectionPos pos) { return new LowDetailIncompleteFullDataSource(pos); }
|
||||
private LowDetailIncompleteFullDataSource(DhSectionPos sectionPos)
|
||||
{
|
||||
super(new FullDataPointIdMap(), new long[SECTION_SIZE*SECTION_SIZE][0], SECTION_SIZE);
|
||||
LodUtil.assertTrue(sectionPos.sectionDetailLevel > SparseFullDataSource.MAX_SECTION_DETAIL);
|
||||
LodUtil.assertTrue(sectionPos.sectionDetailLevel > HighDetailIncompleteFullDataSource.MAX_SECTION_DETAIL);
|
||||
|
||||
this.sectionPos = sectionPos;
|
||||
this.isColumnNotEmpty = new BitSet(SECTION_SIZE*SECTION_SIZE);
|
||||
this.worldGenStep = EDhApiWorldGenerationStep.EMPTY;
|
||||
}
|
||||
|
||||
private SpottyFullDataSource(DhSectionPos pos, FullDataPointIdMap mapping, EDhApiWorldGenerationStep worldGenStep, BitSet isColumnNotEmpty, long[][] data)
|
||||
private LowDetailIncompleteFullDataSource(DhSectionPos pos, FullDataPointIdMap mapping, EDhApiWorldGenerationStep worldGenStep, BitSet isColumnNotEmpty, long[][] data)
|
||||
{
|
||||
super(mapping, data, SECTION_SIZE);
|
||||
LodUtil.assertTrue(data.length == SECTION_SIZE*SECTION_SIZE);
|
||||
@@ -68,7 +74,7 @@ public class SpottyFullDataSource extends FullDataArrayAccessor implements IInco
|
||||
// file handling //
|
||||
//===============//
|
||||
|
||||
public static SpottyFullDataSource loadData(FullDataMetaFile dataFile, BufferedInputStream bufferedInputStream, IDhLevel level) throws IOException, InterruptedException
|
||||
public static LowDetailIncompleteFullDataSource loadData(FullDataMetaFile dataFile, BufferedInputStream bufferedInputStream, IDhLevel level) throws IOException, InterruptedException
|
||||
{
|
||||
DataInputStream dataInputStream = new DataInputStream(bufferedInputStream); // DO NOT CLOSE
|
||||
|
||||
@@ -92,7 +98,7 @@ public class SpottyFullDataSource extends FullDataArrayAccessor implements IInco
|
||||
if (end == IFullDataSource.NO_DATA_FLAG_BYTE)
|
||||
{
|
||||
// Section is empty
|
||||
return new SpottyFullDataSource(dataFile.pos);
|
||||
return new LowDetailIncompleteFullDataSource(dataFile.pos);
|
||||
}
|
||||
|
||||
|
||||
@@ -161,7 +167,7 @@ public class SpottyFullDataSource extends FullDataArrayAccessor implements IInco
|
||||
|
||||
|
||||
|
||||
return new SpottyFullDataSource(dataFile.pos, mapping, worldGenStep, isColumnNotEmpty, data);
|
||||
return new LowDetailIncompleteFullDataSource(dataFile.pos, mapping, worldGenStep, isColumnNotEmpty, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -259,9 +265,9 @@ public class SpottyFullDataSource extends FullDataArrayAccessor implements IInco
|
||||
}
|
||||
|
||||
|
||||
if (fullDataSource instanceof SparseFullDataSource)
|
||||
if (fullDataSource instanceof HighDetailIncompleteFullDataSource)
|
||||
{
|
||||
this.sampleFrom((SparseFullDataSource) fullDataSource);
|
||||
this.sampleFrom((HighDetailIncompleteFullDataSource) fullDataSource);
|
||||
}
|
||||
else if (fullDataSource instanceof CompleteFullDataSource)
|
||||
{
|
||||
@@ -273,7 +279,7 @@ public class SpottyFullDataSource extends FullDataArrayAccessor implements IInco
|
||||
}
|
||||
}
|
||||
|
||||
private void sampleFrom(SparseFullDataSource sparseSource)
|
||||
private void sampleFrom(HighDetailIncompleteFullDataSource sparseSource)
|
||||
{
|
||||
DhLodPos thisLodPos = this.sectionPos.getCorner(this.getDataDetailLevel());
|
||||
DhSectionPos pos = sparseSource.getSectionPos();
|
||||
@@ -288,7 +294,7 @@ public class SpottyFullDataSource extends FullDataArrayAccessor implements IInco
|
||||
int offsetZ = dataLodPos.z - thisLodPos.z;
|
||||
LodUtil.assertTrue(offsetX >= 0 && offsetX < SECTION_SIZE && offsetZ >= 0 && offsetZ < SECTION_SIZE);
|
||||
|
||||
int chunksPerData = 1 << (this.getDataDetailLevel() - SparseFullDataSource.SPARSE_UNIT_DETAIL);
|
||||
int chunksPerData = 1 << (this.getDataDetailLevel() - HighDetailIncompleteFullDataSource.SPARSE_UNIT_DETAIL);
|
||||
int dataSpan = this.sectionPos.getWidth(this.getDataDetailLevel()).numberOfLodSectionsWide;
|
||||
|
||||
for (int xOffset = 0; xOffset < dataSpan; xOffset++)
|
||||
@@ -342,8 +342,8 @@ public class FullDataFileHandler implements IFullDataSourceProvider
|
||||
if (missing.size() == 1 && existFiles.isEmpty() && missing.get(0).equals(pos))
|
||||
{
|
||||
// None exist.
|
||||
IIncompleteFullDataSource incompleteDataSource = pos.sectionDetailLevel <= SparseFullDataSource.MAX_SECTION_DETAIL ?
|
||||
SparseFullDataSource.createEmpty(pos) : SpottyFullDataSource.createEmpty(pos);
|
||||
IIncompleteFullDataSource incompleteDataSource = pos.sectionDetailLevel <= HighDetailIncompleteFullDataSource.MAX_SECTION_DETAIL ?
|
||||
HighDetailIncompleteFullDataSource.createEmpty(pos) : LowDetailIncompleteFullDataSource.createEmpty(pos);
|
||||
return CompletableFuture.completedFuture(incompleteDataSource);
|
||||
}
|
||||
else
|
||||
@@ -357,9 +357,9 @@ public class FullDataFileHandler implements IFullDataSourceProvider
|
||||
}
|
||||
}
|
||||
final ArrayList<CompletableFuture<Void>> futures = new ArrayList<>(existFiles.size());
|
||||
final IIncompleteFullDataSource incompleteFullDataSource = pos.sectionDetailLevel <= SparseFullDataSource.MAX_SECTION_DETAIL ?
|
||||
SparseFullDataSource.createEmpty(pos) :
|
||||
SpottyFullDataSource.createEmpty(pos);
|
||||
final IIncompleteFullDataSource incompleteFullDataSource = pos.sectionDetailLevel <= HighDetailIncompleteFullDataSource.MAX_SECTION_DETAIL ?
|
||||
HighDetailIncompleteFullDataSource.createEmpty(pos) :
|
||||
LowDetailIncompleteFullDataSource.createEmpty(pos);
|
||||
|
||||
for (FullDataMetaFile metaFile : existFiles)
|
||||
{
|
||||
|
||||
+5
-5
@@ -1,10 +1,10 @@
|
||||
package com.seibel.lod.core.file.fullDatafile;
|
||||
|
||||
import com.seibel.lod.core.dataObjects.fullData.accessor.ChunkSizedFullDataAccessor;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.HighDetailIncompleteFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.IFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.IIncompleteFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.SparseFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.SpottyFullDataSource;
|
||||
import com.seibel.lod.core.dataObjects.fullData.sources.LowDetailIncompleteFullDataSource;
|
||||
import com.seibel.lod.core.generation.tasks.IWorldGenTaskTracker;
|
||||
import com.seibel.lod.core.generation.WorldGenerationQueue;
|
||||
import com.seibel.lod.core.generation.tasks.WorldGenResult;
|
||||
@@ -86,13 +86,13 @@ public class GeneratedFullDataFileHandler extends FullDataFileHandler
|
||||
|
||||
// determine the type of dataSource that should be used for this position
|
||||
IIncompleteFullDataSource incompleteFullDataSource;
|
||||
if (pos.sectionDetailLevel <= SparseFullDataSource.MAX_SECTION_DETAIL)
|
||||
if (pos.sectionDetailLevel <= HighDetailIncompleteFullDataSource.MAX_SECTION_DETAIL)
|
||||
{
|
||||
incompleteFullDataSource = SparseFullDataSource.createEmpty(pos);
|
||||
incompleteFullDataSource = HighDetailIncompleteFullDataSource.createEmpty(pos);
|
||||
}
|
||||
else
|
||||
{
|
||||
incompleteFullDataSource = SpottyFullDataSource.createEmpty(pos);
|
||||
incompleteFullDataSource = LowDetailIncompleteFullDataSource.createEmpty(pos);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user