diff --git a/pom.xml b/pom.xml index a31adf2d571a73db7b31fc477c0af8e34e02cf18..8d1935148ba274f44b6b915e5d99725dff65d83d 100644 --- a/pom.xml +++ b/pom.xml @@ -74,6 +74,11 @@ <artifactId>jdom2</artifactId> <version>2.0.5</version> </dependency> + <dependency> + <groupId>java3d</groupId> + <artifactId>vecmath</artifactId> + <version>1.3.1</version> + </dependency> </dependencies> <developers> diff --git a/src/main/java/net/imglib2/img/basictypeaccess/volatiles/VolatileIntAccess.java b/src/main/java/net/imglib2/img/basictypeaccess/volatiles/VolatileIntAccess.java new file mode 100644 index 0000000000000000000000000000000000000000..1ba03c3f7bc29755db9fad6ab8aabf92abb58db0 --- /dev/null +++ b/src/main/java/net/imglib2/img/basictypeaccess/volatiles/VolatileIntAccess.java @@ -0,0 +1,10 @@ +package net.imglib2.img.basictypeaccess.volatiles; + +import net.imglib2.img.basictypeaccess.IntAccess; + +/** + * @author Stephan Saalfeld <saalfelds@janelia.hhmi.org> + * @author Tobias Pietzsch <tobias.pietzsch@gmail.com> + */ +public interface VolatileIntAccess extends IntAccess, VolatileAccess +{} diff --git a/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/AbstractVolatileArray.java b/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/AbstractVolatileArray.java new file mode 100644 index 0000000000000000000000000000000000000000..6e9a59805ba4ada51538f717cc735f0abea82f37 --- /dev/null +++ b/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/AbstractVolatileArray.java @@ -0,0 +1,29 @@ +package net.imglib2.img.basictypeaccess.volatiles.array; + +import net.imglib2.img.basictypeaccess.array.ArrayDataAccess; +import net.imglib2.img.basictypeaccess.array.ShortArray; +import net.imglib2.img.basictypeaccess.volatiles.VolatileAccess; + +/** + * A {@link ShortArray} with an {@link #isValid()} flag. + * + * @author Stephan Saalfeld <saalfelds@janelia.hhmi.org> + * @author Tobias Pietzsch <tobias.pietzsch@gmail.com> + */ +public abstract class AbstractVolatileArray< T extends AbstractVolatileArray< T > > implements ArrayDataAccess< T >, VolatileAccess +{ + private static final long serialVersionUID = -3233057138272085300L; + + protected final boolean isValid; + + public AbstractVolatileArray( final boolean isValid ) + { + this.isValid = isValid; + } + + @Override + public boolean isValid() + { + return isValid; + } +} diff --git a/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/VolatileIntArray.java b/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/VolatileIntArray.java new file mode 100644 index 0000000000000000000000000000000000000000..93d8473fe32814c3004059714d7215b876f886a4 --- /dev/null +++ b/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/VolatileIntArray.java @@ -0,0 +1,53 @@ +package net.imglib2.img.basictypeaccess.volatiles.array; + +import net.imglib2.img.basictypeaccess.array.ShortArray; +import net.imglib2.img.basictypeaccess.volatiles.VolatileIntAccess; + +/** + * A {@link ShortArray} with an {@link #isValid()} flag. + * + * @author Stephan Saalfeld <saalfelds@janelia.hhmi.org> + * @author Tobias Pietzsch <tobias.pietzsch@gmail.com> + */ +public class VolatileIntArray extends AbstractVolatileArray< VolatileIntArray > implements VolatileIntAccess +{ + private static final long serialVersionUID = -5626240246651573531L; + + protected int[] data; + + public VolatileIntArray( final int numEntities, final boolean isValid ) + { + super( isValid ); + this.data = new int[ numEntities ]; + } + + public VolatileIntArray( final int[] data, final boolean isValid ) + { + super( isValid ); + this.data = data; + } + + @Override + public int getValue( final int index ) + { + return data[ index ]; + } + + @Override + public void setValue( final int index, final int value ) + { + data[ index ] = value; + } + + @Override + public VolatileIntArray createArray( final int numEntities ) + { + return new VolatileIntArray( numEntities, true ); + } + + @Override + public int[] getCurrentStorageArray() + { + return data; + } +} diff --git a/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/VolatileShortArray.java b/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/VolatileShortArray.java index a51776ada70ad7ff1a45cd56d1841c009c8f9433..869d891bde599252ddf00a5acf99fbcc19cf62ec 100644 --- a/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/VolatileShortArray.java +++ b/src/main/java/net/imglib2/img/basictypeaccess/volatiles/array/VolatileShortArray.java @@ -1,6 +1,5 @@ package net.imglib2.img.basictypeaccess.volatiles.array; -import net.imglib2.img.basictypeaccess.array.ArrayDataAccess; import net.imglib2.img.basictypeaccess.array.ShortArray; import net.imglib2.img.basictypeaccess.volatiles.VolatileShortAccess; @@ -9,22 +8,20 @@ import net.imglib2.img.basictypeaccess.volatiles.VolatileShortAccess; * * @author Tobias Pietzsch <tobias.pietzsch@gmail.com> */ -public class VolatileShortArray implements VolatileShortAccess, ArrayDataAccess< VolatileShortArray > +public class VolatileShortArray extends AbstractVolatileArray< VolatileShortArray > implements VolatileShortAccess { - private final boolean isValid; - protected short data[]; public VolatileShortArray( final int numEntities, final boolean isValid ) { + super( isValid ); this.data = new short[ numEntities ]; - this.isValid = isValid; } public VolatileShortArray( final short[] data, final boolean isValid ) { + super( isValid ); this.data = data; - this.isValid = isValid; } @Override @@ -50,10 +47,4 @@ public class VolatileShortArray implements VolatileShortAccess, ArrayDataAccess< { return data; } - - @Override - public boolean isValid() - { - return isValid; - } }