# class ChunkedImageData

ChunkedImageData holds chunks for ImageData objects. ImageData objects can be referenced, and swapped in/out of memory, to secondary storage. This is useful for very large images that cannot be stored in-memory. ImageData objects can be indexed in 1-,2- or 3D, and each ImageData chunk is cloned from a source ImageData object, at setup. Fields added to ImageData chunks after setup will only be added into that chunk, and is not recommended.

# Methods

Method Description
DeepCopy Deep copies (with template) the data from another image. The source image must be fully unlocked before copying.
GetClass Get the name of the ChunkedImageData class.
GetTemplateXSize The X dimension size of the template image used to create the chunks.
GetTemplateYSize The Y dimension size of the template image used to create the chunks.
GetTemplateZSize The Z dimension size of the template image used to create the chunks.
GetTotalXSize The total X dimension size of the full image.
GetTotalYSize The total Y dimension size of the full image.
GetTotalZSize The total Z dimension size of the full image.
GetXSize The number of image chunks in the X dimension.
GetYSize The number of image chunks in the Y dimension.
GetZSize The number of image chunks in the Z dimension.
IsA Returns true if ChunkedImageData is a or is a descendant of the class named as the type parameter.
IsChunkLocked1D Returns true if a chunk is locked. The method is thread-safe.
IsChunkLocked2D Returns true if a chunk is locked. The method is thread-safe.
IsChunkLocked3D Returns true if a chunk is locked. The method is thread-safe.
IsNull Returns true if the ChunkedImageData object is invalid.
LockChunk1D Locks a chunk for editing, and returns an image object to the caller. Only one lock is allowed per chunk. Use IsChunkLocked to check if a chunk is locked before trying to lock it. If the Lock failed, because the chunk is already locked, null is returned. The method is thread-safe.
LockChunk2D Locks a chunk for editing, and returns an image object to the caller. Only one lock is allowed per chunk. Use IsChunkLocked to check if a chunk is locked before trying to lock it. If the Lock failed, because the chunk is already locked, null is returned. The method is thread-safe.
LockChunk3D Locks a chunk for editing, and returns an image object to the caller. Only one lock is allowed per chunk. Use IsChunkLocked to check if a chunk is locked before trying to lock it. If the Lock failed, because the chunk is already locked, null is returned. The method is thread-safe.
NewCopy Makes a new copy of the chunked image data This image must be fully unlocked before copying.
Reset Clears all data from the image, and removes all data fields. The template image is kept, but can be replaced using SetTemplateImage before calling one of the SetXDSize methods. Any lock that was hold in the image is automatically released.
Set1DSize The number of image chunks in the X dimension.
Set2DSize The number of image chunks in the X and Y dimensions.
Set3DSize The number of image chunks in the X, Y and Z dimensions.
SetTemplateImage The template image to use as template for creating new chunks. The template image is cloned, it can be released after the setup. Note that SetTemplateImage must be called before allocating image chunks.
UnlockChunk1D Unlocks a previously referenced chunk. All references to the object should be released. The method is thread-safe.
UnlockChunk2D Unlocks a previously referenced chunk. All references to the object should be released. The method is thread-safe.
UnlockChunk3D Unlocks a previously referenced chunk. All references to the object should be released. The method is thread-safe.

# Static methods

Method Description
IsClassA Returns true if the class is a or is a descendant of the class named as the type parameter.
SafeCast SafeCast makes sure the input object is of a class that can be cast into spChunkedImageData, and if this is the case, returns the object cast into spChunkedImageData.

# Methods details

# DeepCopy

Deep copies (with template) the data from another image. The source image must be fully unlocked before copying.

    # GetClass

    Get the name of the ChunkedImageData class.

      # GetTemplateXSize

      The X dimension size of the template image used to create the chunks.

        # GetTemplateYSize

        The Y dimension size of the template image used to create the chunks.

          # GetTemplateZSize

          The Z dimension size of the template image used to create the chunks.

            # GetTotalXSize

            The total X dimension size of the full image.

              # GetTotalYSize

              The total Y dimension size of the full image.

                # GetTotalZSize

                The total Z dimension size of the full image.

                  # GetXSize

                  The number of image chunks in the X dimension.

                    # GetYSize

                    The number of image chunks in the Y dimension.

                      # GetZSize

                      The number of image chunks in the Z dimension.

                        # IsA

                        Returns true if ChunkedImageData is a or is a descendant of the class named as the type parameter.

                          # IsChunkLocked1D

                          Returns true if a chunk is locked. The method is thread-safe.

                            # IsChunkLocked2D

                            Returns true if a chunk is locked. The method is thread-safe.

                              # IsChunkLocked3D

                              Returns true if a chunk is locked. The method is thread-safe.

                                # IsNull

                                Returns true if the ChunkedImageData object is invalid.

                                  # LockChunk1D

                                  Locks a chunk for editing, and returns an image object to the caller. Only one lock is allowed per chunk. Use IsChunkLocked to check if a chunk is locked before trying to lock it. If the Lock failed, because the chunk is already locked, null is returned. The method is thread-safe.

                                    # LockChunk2D

                                    Locks a chunk for editing, and returns an image object to the caller. Only one lock is allowed per chunk. Use IsChunkLocked to check if a chunk is locked before trying to lock it. If the Lock failed, because the chunk is already locked, null is returned. The method is thread-safe.

                                      # LockChunk3D

                                      Locks a chunk for editing, and returns an image object to the caller. Only one lock is allowed per chunk. Use IsChunkLocked to check if a chunk is locked before trying to lock it. If the Lock failed, because the chunk is already locked, null is returned. The method is thread-safe.

                                        # NewCopy

                                        Makes a new copy of the chunked image data This image must be fully unlocked before copying.

                                          # Reset

                                          Clears all data from the image, and removes all data fields. The template image is kept, but can be replaced using SetTemplateImage before calling one of the SetXDSize methods. Any lock that was hold in the image is automatically released.

                                            # Set1DSize

                                            The number of image chunks in the X dimension.

                                              # Set2DSize

                                              The number of image chunks in the X and Y dimensions.

                                                # Set3DSize

                                                The number of image chunks in the X, Y and Z dimensions.

                                                  # SetTemplateImage

                                                  The template image to use as template for creating new chunks. The template image is cloned, it can be released after the setup. Note that SetTemplateImage must be called before allocating image chunks.

                                                    # UnlockChunk1D

                                                    Unlocks a previously referenced chunk. All references to the object should be released. The method is thread-safe.

                                                      # UnlockChunk2D

                                                      Unlocks a previously referenced chunk. All references to the object should be released. The method is thread-safe.

                                                        # UnlockChunk3D

                                                        Unlocks a previously referenced chunk. All references to the object should be released. The method is thread-safe.

                                                          # Static methods details

                                                          # IsClassA

                                                          Returns true if the class is a or is a descendant of the class named as the type parameter.

                                                            # SafeCast

                                                            SafeCast makes sure the input object is of a class that can be cast into spChunkedImageData, and if this is the case, returns the object cast into spChunkedImageData.