ImageBaseInterface Class Reference

#include <gfx_image.h>

Inheritance diagram for ImageBaseInterface:

Detailed Description

Base class of all image classes. E.g. ImageLayerInterface, ImageTextureInterface inherits all this functions. This base class is able to handle layers in hierarchical order.

Public Member Functions

MAXON_METHOD Result< void > InitBase (Int width, Int height, const PixelFormat &pixelFormat, IMAGEPROPERTIES::ITYPE type)
 
MAXON_METHOD Result< void > AddChildren (IMAGEHIERARCHY hierarchy, const ImageBaseRef &newChildren, const ImageBaseRef &insertBefore)
 
MAXON_METHOD Int GetWidth () const
 
MAXON_METHOD Int GetHeight () const
 
MAXON_METHOD Int GetChannelCount () const
 
MAXON_METHOD PixelFormat GetPixelFormat () const
 
MAXON_METHOD Result< GetPixelHandlerStructGetPixelHandler (const PixelFormat &dstFormat, const ChannelOffsets &channelOffsets, const ColorProfile &dstColorProfile, GETPIXELHANDLERFLAGS flags, const LayerSetInterface *layerSet) const
 
MAXON_METHOD Result< SetPixelHandlerStructSetPixelHandler (const PixelFormat &srcFormat, const ChannelOffsets &channelOffsets, const ColorProfile &srcColorProfile, SETPIXELHANDLERFLAGS flags)
 
MAXON_METHOD Result< void > GetComponent (Int component, const ImagePos &pos, Pix *data, Int inc, GETPIXELFLAGS flags) const
 
MAXON_METHOD Result< void > SetComponent (Int component, const ImagePos &pos, const Pix *data, Int inc, SETPIXELFLAGS flags)
 
MAXON_METHOD Result< ImageBaseRef > CreateSubImagePart (const DrawRectInt &rect) const
 
MAXON_METHOD Result< ImageBaseRef > TransformColors (const ColorProfile &srcProfile, const ColorProfile &dstProfile, TRANSFORM_COLORS_FLAGS flags)
 
 MAXON_OBSERVABLE (void, ObservableRegionChanged,(const ObserverObjectRef &owner, const UpdateRegion &region), ObservableCombinerRunAllComponent)
 

Private Member Functions

 MAXON_INTERFACE (ImageBaseInterface, MAXON_REFERENCE_NORMAL, "net.maxon.image.interface.imagebase")
 
- Private Member Functions inherited from HierarchyObjectInterface< ImageHierarchy >
MAXON_METHOD Result< void > InsertBefore (const typename HIERARCHY::template Sibling< Interface >::type &nextSibling)
 
MAXON_METHOD Result< void > InsertAfter (const typename HIERARCHY::template Sibling< Interface >::type &prevSibling)
 
MAXON_METHOD Result< void > InsertAsFirstChildOf (const typename HIERARCHY::template Parent< Interface >::type &parent, const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD Result< void > InsertAsLastChildOf (const typename HIERARCHY::template Parent< Interface >::type &parent, const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD Result< void > InsertAsChildAt (const typename HIERARCHY::template Parent< Interface >::type &parent, Int position, const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD Result< void > InsertChildAsFirst (const typename HIERARCHY::template Child< Interface >::type &child, const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD Result< void > InsertChildAsLast (const typename HIERARCHY::template Child< Interface >::type &child, const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD Result< void > InsertChildAt (const typename HIERARCHY::template Child< Interface >::type &child, Int position, const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD Result< void > InsertChildrenAsFirst (const Block< const typename HIERARCHY::template Child< Interface >::type > &children, const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD Result< void > InsertChildrenAsLast (const Block< const typename HIERARCHY::template Child< Interface >::type > &children, const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD Result< void > InsertChildrenAt (const Block< const typename HIERARCHY::template Child< Interface >::type > &children, Int position, const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD Result< void > Replace (const typename HIERARCHY::template Sibling< Interface >::type &newObject)
 
MAXON_METHOD HierarchyObjectRef Remove ()
 
MAXON_METHOD HIERARCHY::template Child< Interface >::type RemoveChildren (const ConstDataPtr &branchId=ConstDataPtr())
 
MAXON_METHOD void RemoveAllChildren ()
 
MAXON_METHOD HIERARCHY::template Child< Interface >::type GetFirstChild (const ConstDataPtr &branchId=ConstDataPtr()) const
 
MAXON_METHOD HIERARCHY::template Child< Interface >::type GetLastChild (const ConstDataPtr &branchId=ConstDataPtr()) const
 
MAXON_METHOD HIERARCHY::template Child< Interface >::type GetChildAt (Int position, const ConstDataPtr &branchId=ConstDataPtr()) const
 
MAXON_METHOD Result< BaseArray< typename HIERARCHY::template Child< Interface >::type > > GetChildren (const ConstDataPtr &branchId=ConstDataPtr()) const
 
MAXON_METHOD Result< BaseArray< ConstDataPtr > > GetBranches () const
 
MAXON_METHOD ConstDataPtr GetBranchId () const
 
MAXON_METHOD void SetLocking (const Bool locking)
 
MAXON_METHOD Bool IsLocked () const
 
MAXON_METHOD HIERARCHY::template Parent< Interface >::type GetParent () const
 
MAXON_METHOD std::add_pointer< HierarchyObjectInterface >::type GetParentPtr () const
 
MAXON_METHOD HIERARCHY::template Sibling< Interface >::type GetNext () const
 
MAXON_METHOD HIERARCHY::template Sibling< Interface >::type GetPrev () const
 
MAXON_METHOD HIERARCHY::template Sibling< Interface >::type GetFirst () const
 
MAXON_METHOD HIERARCHY::template Sibling< Interface >::type GetLast () const
 
MAXON_METHOD void ParentChanged (Bool removed)
 
MAXON_METHOD std::add_pointer< HierarchyObjectInterface >::type FindNextLeaf (const HierarchyObjectInterface *stopAtParent) const
 
 MAXON_OBSERVABLE (Result< void >, ObservableHierarchyInsert,(const HierarchyObjectRef<> &sender, const HierarchyObjectRef<> &object, const ConstDataPtr &branchId), ObservableCombinerRunAllComponent)
 
 MAXON_OBSERVABLE (Result< void >, ObservableHierarchyRemove,(const HierarchyObjectRef<> &sender, const HierarchyObjectRef<> &object, const ConstDataPtr &branchId), ObservableCombinerRunAllComponent)
 
MAXON_METHOD void FlushBranches ()
 

Member Function Documentation

◆ MAXON_INTERFACE()

MAXON_INTERFACE ( ImageBaseInterface  ,
MAXON_REFERENCE_NORMAL  ,
"net.maxon.image.interface.imagebase"   
)
private

◆ InitBase()

MAXON_METHOD Result<void> InitBase ( Int  width,
Int  height,
const PixelFormat &  pixelFormat,
IMAGEPROPERTIES::ITYPE  type 
)

Initializes the bitmap with a given size/height. The bitmap content is cleared with 0 bytes.

Parameters
[in]widthImage width.
[in]heightImage height.
[in]pixelFormatImage PixelFormat.
[in]typeImage type set into IMAGEPROPERTIES::TYPE. You can query this with image.Get(IMAGEPROPERTIES::TYPE).
Returns
OK on success.

◆ AddChildren()

MAXON_METHOD Result<void> AddChildren ( IMAGEHIERARCHY  hierarchy,
const ImageBaseRef &  newChildren,
const ImageBaseRef &  insertBefore 
)
Parameters
[in]hierarchyDefines the hierarchy to which the children belongs to.
[in]newChildrenNew children to add under this object.
[in]insertBeforeInsert the children before this object. nullptr will append the object at the end.
Returns
OK on success.

◆ GetWidth()

MAXON_METHOD Int GetWidth ( ) const

Returns the width of the bitmap.

◆ GetHeight()

MAXON_METHOD Int GetHeight ( ) const

Returns the height of the bitmap.

◆ GetChannelCount()

MAXON_METHOD Int GetChannelCount ( ) const

Returns the channel count of the bitmap.

◆ GetPixelFormat()

MAXON_METHOD PixelFormat GetPixelFormat ( ) const

Returns the pixel format connected to this bitmap.

◆ GetPixelHandler()

MAXON_METHOD Result<GetPixelHandlerStruct> GetPixelHandler ( const PixelFormat &  dstFormat,
const ChannelOffsets channelOffsets,
const ColorProfile dstColorProfile,
GETPIXELHANDLERFLAGS  flags,
const LayerSetInterface layerSet 
) const

To access pixel data a GetPixelHandlerStruct is needed. This optimizes the access to the pixel data see GetPixelHandlerStruct.

Parameters
[in]dstFormatDestination pixel format that should be read with this pixel handler.
[in]channelOffsetsDestination channel offsets in bits.
[in]dstColorProfileOptional parameter which is only necessary if the color spaces of the given pixel formats doesn't match. In that case the conversion will be performed using the correct color conversion.
[in]flagsFlags for the GetPixel operation.
[in]layerSetOptional LayerSet or nullptr.
Returns
A valid GetPixelHandlerStruct struct if successful.

◆ SetPixelHandler()

MAXON_METHOD Result<SetPixelHandlerStruct> SetPixelHandler ( const PixelFormat &  srcFormat,
const ChannelOffsets channelOffsets,
const ColorProfile srcColorProfile,
SETPIXELHANDLERFLAGS  flags 
)

To access pixel data a SetPixelHandlerStruct is needed. This optimizes the access to the pixel data see SetPixelHandlerStruct.

Parameters
[in]srcFormatSource pixel format that should be written with this pixel handler.
[in]channelOffsetsSource channel offsets in bits.
[in]srcColorProfileOptional parameter which is only necessary if the color spaces of the given pixel formats doesn't match. In that case the conversion will be performed using the correct color conversion.
[in]flagsFlags for the SetPixel operation.
Returns
A valid SetPixelHandlerStruct struct if successful.

◆ GetComponent()

MAXON_METHOD Result<void> GetComponent ( Int  component,
const ImagePos pos,
Pix data,
Int  inc,
GETPIXELFLAGS  flags 
) const

Access single components of the image.

Parameters
[in]componentIndex of the component.
[in]posImagePos of the data to read.
[in]dataDestination buffer.
[in]incDistance between 2 pixels in the destination buffer.
[in]flagsFlags to control the read operation.
Returns
OK on success.

◆ SetComponent()

MAXON_METHOD Result<void> SetComponent ( Int  component,
const ImagePos pos,
const Pix data,
Int  inc,
SETPIXELFLAGS  flags 
)

Access single components of the image.

Parameters
[in]componentIndex of the component.
[in]posImagePos of the data to write.
[in]dataSource buffer.
[in]incDistance between 2 pixels in the source buffer.
[in]flagsFlags to control the write operation.
Returns
OK on success.

◆ CreateSubImagePart()

MAXON_METHOD Result<ImageBaseRef> CreateSubImagePart ( const DrawRectInt rect) const

Create a new ImageBaseRef as a sub image of the given image with the given rectangle. The image will not be copied! It generates only a reference to the original image with the rectangle set to the portion of the image.

Parameters
[in]rectPart of the image.
Returns
New Image as part of the given image.

◆ TransformColors()

MAXON_METHOD Result<ImageBaseRef> TransformColors ( const ColorProfile srcProfile,
const ColorProfile dstProfile,
TRANSFORM_COLORS_FLAGS  flags 
)

Transforms the colors of an image. It either creates a new image or

Parameters
[in]srcProfileSource profile. If this is empty, the image profile will be used.
[in]dstProfileDestination profile. Must not be empty.
[in]flagsFlags.
Returns
Original image or new image with transfomed colors.

◆ MAXON_OBSERVABLE()

MAXON_OBSERVABLE ( void  ,
ObservableRegionChanged  ,
(const ObserverObjectRef &owner, const UpdateRegion &region)  ,
ObservableCombinerRunAllComponent   
)

Observable: This observable is fired as soon as anybody modifies the pixel data of this object.