r3dtype

r3dtflt
r3hook
r3image
r3dtfile
r3bmp
r3cineon
r3dtanim
r3dtavi
r3dtflc
r3dtiff
r3ico
r3jpeg
r3png
r3ppm
r3rawfil
r3rawsoc
r3tga
r3dtwin
r3imrgba
r3rawim
r3sclimg

r3dtype

Class

real/dtype/r3dtype.h

Library

r3dtype

Description:

Datatype Class. Datatype is an object containing widthheight items of rectangulary organized data.

See Also

oops/r3root.h

See Also

Super Class

r3Root

R3CLID_ROOT

JavaScript

r3Datatype

Class Identifier

R3CLID_DATATYPE - 201

Methods

BEGIN, END, SETROWBYTE, SETROWWORD, SETROWINTEGER, SETROWFLOAT, SETROWRAW, GETROWBYTE, GETROWWORD, GETROWINTEGER, GETROWFLOAT, GETROWRAW, GETPIXELFLOAT, SETPIXELFLOAT, GETCHANNELHANDLE, FREECHANNELHANDLE, VECTORIZE, SETROW,

Attributes

Data, SubCount, ChannelType, NormValue, Width, Height, TotalWidth, TotalHeight, OffsetX, OffsetY, BaseX, BaseY, Signed, UserData,

Registration

int R3RegisterDatatypeClass(R3APP *app);

R3DTYPEM_BEGIN

Method

BEGIN

Identifier

R3DTYPEM_BEGIN

Return

R3BOOL, FALSE if fails.

JavaScript

rc = obj.BEGIN();

Description

Initializes datatype object for IO operations. This method allocates necessary resources (opens file, allocates memory etc.). This method must be called before any of the IO methoids defined below are used.

R3DTYPEM_END

Method

END

Identifier

R3DTYPEM_END

Return

R3BOOL, FALSE if fails.

JavaScript

rc = obj.END();

Description

Finishes IO operations. This method deallocates resources (closes file, deallocates memory etc.).

R3DTYPEM_SETROWBYTE

Method

SETROWBYTE

Identifier

R3DTYPEM_SETROWBYTE

Return

R3BOOL, false if fails

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

Param 3:

R3BYTE*, ptr to a data buffer

JavaScript

rc = obj.SETROWBYTE(p1, p2, p3);

Description

Set scanline using 8 bits per channel data type. If the class supports * sub box access, the x position and width of line is defined by R3DTYPEA_Width, Height, OffsetX * and OffsetY defined in the attribute list below.

R3DTYPEM_SETROWWORD

Method

SETROWWORD

Identifier

R3DTYPEM_SETROWWORD

Return

R3BOOL, FALSE if fails

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

JavaScript

rc = obj.SETROWWORD(p1, p2, 0);

Description

Write scanline consisting of short (16 bits per channel).

R3DTYPEM_SETROWINTEGER

Method

SETROWINTEGER

Identifier

R3DTYPEM_SETROWINTEGER

Return

R3BOOL, false if fails

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

Param 3:

R3INT*, ptr to a data buffer

JavaScript

rc = obj.SETROWINTEGER(p1, p2, p3);

Description

Set scanline consisting of 32 bit integers (32 bits per channel).

R3DTYPEM_SETROWFLOAT

Method

SETROWFLOAT

Identifier

R3DTYPEM_SETROWFLOAT

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

Param 3:

R3FLOAT, ptr to a data buffer

JavaScript

obj.SETROWFLOAT(p1, p2, p3);

Description

Set scanline consisting of double precision floating points (64 bits per channel).

R3DTYPEM_SETROWRAW

Method

SETROWRAW

Identifier

R3DTYPEM_SETROWRAW

Return

R3BOOL, false if fails

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

Param 3:

void*, ptr to a data buffer

JavaScript

rc = obj.SETROWRAW(p1, p2, p3);

Description

Set scanline in native format.

R3DTYPEM_GETROWBYTE

Method

GETROWBYTE

Identifier

R3DTYPEM_GETROWBYTE

Return

R3BOOL, false if fails

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

JavaScript

rc = obj.GETROWBYTE(p1, p2, 0);

Description

Get scanline in byte per channel format (8 bits per channel).

R3DTYPEM_GETROWWORD

Method

GETROWWORD

Identifier

R3DTYPEM_GETROWWORD

Return

R3BOOL, FALSE if fails

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

JavaScript

rc = obj.GETROWWORD(p1, p2, 0);

Description

Get scanline in 16 bits per channel integer format

R3DTYPEM_GETROWINTEGER

Method

GETROWINTEGER

Identifier

R3DTYPEM_GETROWINTEGER

Return

R3BOOL, FALSE if fails

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

Param 3:

R3INT*, ptr to a data buffer

JavaScript

rc = obj.GETROWINTEGER(p1, p2, p3);

Description

Get scanline in 32 bit integer format (32 bits per channel)

R3DTYPEM_GETROWFLOAT

Method

GETROWFLOAT

Identifier

R3DTYPEM_GETROWFLOAT

Return

R3BOOL, FALSE if fails

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

Param 3:

R3FLOAT, ptr to a data buffer

JavaScript

rc = obj.GETROWFLOAT(p1, p2, p3);

Description

Get scanline in double precision floating point format (64 bits per channel)

R3DTYPEM_GETROWRAW

Method

GETROWRAW

Identifier

R3DTYPEM_GETROWRAW

Return

R3BOOL, NULL if fails

Param 1:

R3INT, y coordinate of the line

Param 2:

R3INT, channel format R3DTCHANNELS_GRAYSCALE, R3DTCHANNELS_RGB or R3DTCHANNELS_RGBA

Param 3:

char*, ptr to a data buffer

JavaScript

rc = obj.GETROWRAW(p1, p2, p3);

Description

Read data without conversion, that is, in the form it is stored.

R3DTYPEM_GETPIXELFLOAT

Method

GETPIXELFLOAT

Identifier

R3DTYPEM_GETPIXELFLOAT

JavaScript

obj.GETPIXELFLOAT();

Description

R3DTYPEM_SETPIXELFLOAT

Method

SETPIXELFLOAT

Identifier

R3DTYPEM_SETPIXELFLOAT

JavaScript

obj.SETPIXELFLOAT();

Description

R3DTYPEM_GETCHANNELHANDLE

Method

GETCHANNELHANDLE

Identifier

R3DTYPEM_GETCHANNELHANDLE

Param 1:

R3BOOL, if TRUE pen is initialized for one sub channel reading. Otherwise whole channel is read.

Param 2:

R3INT, sub channel index. 0 defines first sub channel.

Param 3:

R3TAG*, tag list including R3DTYPEA_ChannelReader and/or R3DTYPEA_ChannelWriter tags.

JavaScript

obj.GETCHANNELHANDLE(p1, p2, p3);

Description

Allocates a handle for reading currently selected channel or its sub channel

R3DTYPECM_FREECHANNELHANDLE

Method

FREECHANNELHANDLE

Identifier

R3DTYPECM_FREECHANNELHANDLE

JavaScript

obj.FREECHANNELHANDLE();

Description

R3DTYPEM_VECTORIZE

Method

VECTORIZE

Identifier

R3DTYPEM_VECTORIZE

JavaScript

obj.VECTORIZE();

Description

R3DTYPEM_SETROW

Method

SETROW

Identifier

R3DTYPEM_SETROW

Param 1:

R3INT, y coordinate of the line

Param 2:

char*, ptr to a data buffer

Param 3:

R3TAG*, tag list which must include: * R3DTYPEA_ChannelType - the data type of data buffer * R3DTYPEA_NormValue - the conversion factor (see r3typids.h) * R3DTYPEA_SubCount - number of sub channels

JavaScript

obj.SETROW(p1, p2, p3);

Description

the most general get/set row methods which read and write one line of data in a defined data type. * If the class supports box access, the x position and width of line is defined by R3DTYPEA_Width, Height, * OffsetX and OffsetY defined in the attribute list below.

Data

Attribute

Data

Identifier

R3DTYPEA_Data

JavaScript type

String

C type

void*

Description

address of the actual image data (of selected channel)

Syntax


value = jsobj.GetData();


void* value;
R3GetAttrs(r3obj, R3DTYPEA_Data, &value, R3TAG_END);

SubCount

Attribute

SubCount

Identifier

R3DTYPEA_SubCount

JavaScript type

Integer

C type

R3INT

Description

number of (currently selected sub) channels per pixel, RGB is 3 etc

Syntax


jsobj.SetSubCount(value);
value = jsobj.GetSubCount();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_SubCount, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_SubCount, &value, R3TAG_END);

ChannelType

Attribute

ChannelType

Identifier

R3DTYPEA_ChannelType

JavaScript type

Integer

C type

R3INT

Description

sub channel datatype as defined in r3typids.h

Syntax


jsobj.SetChannelType(value);
value = jsobj.GetChannelType();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_ChannelType, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_ChannelType, &value, R3TAG_END);

NormValue

Attribute

NormValue

Identifier

R3DTYPEA_NormValue

JavaScript type

Integer

C type

R3INT

Description

native 'unit' value, for conversion between dtypes

Syntax


jsobj.SetNormValue(value);
value = jsobj.GetNormValue();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_NormValue, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_NormValue, &value, R3TAG_END);

Width

Attribute

Width

Identifier

R3DTYPEA_Width

JavaScript type

Integer

C type

R3INT

Description

actual size of the datatype ( may define a sub box in a larger image )

Syntax


jsobj.SetWidth(value);
value = jsobj.GetWidth();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_Width, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_Width, &value, R3TAG_END);

Height

Attribute

Height

Identifier

R3DTYPEA_Height

JavaScript type

Integer

C type

R3INT

Description

actual size of the datatype ( may define a sub box in a larger image )

Syntax


jsobj.SetHeight(value);
value = jsobj.GetHeight();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_Height, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_Height, &value, R3TAG_END);

TotalWidth

Attribute

TotalWidth

Identifier

R3DTYPEA_TotalWidth

JavaScript type

Integer

C type

R3INT

Description

total area width, used by dtypes that implement sub box IO

Syntax


jsobj.SetTotalWidth(value);
value = jsobj.GetTotalWidth();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_TotalWidth, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_TotalWidth, &value, R3TAG_END);

TotalHeight

Attribute

TotalHeight

Identifier

R3DTYPEA_TotalHeight

JavaScript type

Integer

C type

R3INT

Description

total area height, used by dtypes that implement sub box IO

Syntax


jsobj.SetTotalHeight(value);
value = jsobj.GetTotalHeight();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_TotalHeight, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_TotalHeight, &value, R3TAG_END);

OffsetX

Attribute

OffsetX

Identifier

R3DTYPEA_OffsetX

JavaScript type

Integer

C type

R3INT

Description

sub area horiz. position. Not all sub classes implement these

Syntax


jsobj.SetOffsetX(value);
value = jsobj.GetOffsetX();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_OffsetX, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_OffsetX, &value, R3TAG_END);

OffsetY

Attribute

OffsetY

Identifier

R3DTYPEA_OffsetY

JavaScript type

Integer

C type

R3INT

Description

sub area vertical position. Not all sub classes implement these

Syntax


jsobj.SetOffsetY(value);
value = jsobj.GetOffsetY();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_OffsetY, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_OffsetY, &value, R3TAG_END);

BaseX

Attribute

BaseX

Identifier

R3DTYPEA_BaseX

JavaScript type

Integer

C type

R3INT

Description

sub area base offset. Not all sub classes implement these

Syntax


jsobj.SetBaseX(value);
value = jsobj.GetBaseX();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_BaseX, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_BaseX, &value, R3TAG_END);

BaseY

Attribute

BaseY

Identifier

R3DTYPEA_BaseY

JavaScript type

Integer

C type

R3INT

Description

sub area base offset. Not all sub classes implement these

Syntax


jsobj.SetBaseY(value);
value = jsobj.GetBaseY();


R3INT value = ...;
R3SetAttrs(r3obj, R3DTYPEA_BaseY, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3DTYPEA_BaseY, &value, R3TAG_END);

Signed

Attribute

Signed

Identifier

R3DTYPEA_Signed

JavaScript type

Boolean

C type

R3BOOL

Description

if TRUE integer type values can be negative (e.g R3BYTE used instead of R3UBYTE)

Syntax


jsobj.SetSigned(value);
value = jsobj.GetSigned();


R3BOOL value = ...;
R3SetAttrs(r3obj, R3DTYPEA_Signed, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3DTYPEA_Signed, &value, R3TAG_END);

UserData

Attribute

UserData

Identifier

R3DTYPEA_UserData

JavaScript type

String

C type

void*

Description

for user specific data

Syntax


jsobj.SetUserData(value);
value = jsobj.GetUserData();


void* value = ...;
R3SetAttrs(r3obj, R3DTYPEA_UserData, value, R3TAG_END);
void* value;
R3GetAttrs(r3obj, R3DTYPEA_UserData, &value, R3TAG_END);

Default 'norm' values for float - fixed point integer conversion. New plugin data types may use norm values different from these. For example, a data type which stores percentage values probably uses norm value 100. Actual values are defined in inc/oops/r3typids.h.

Supported channel formats.

R3DTCHANNELS_GRAYSCALE
R3DTCHANNELS_RGB
R3DTCHANNELS_RGBA

Tags

Tags

R3DTYPEA_ChannelReader
R3DTYPEA_ChannelWriter
R3DTYPEA_CallTarget
R3DTYPEA_CurveHook
R3DTYPEA_PointHook
R3DTYPEA_FilterEdges
R3DTYPEA_Treshold
R3DTYPEA_EdgeValue