interface ISemanticBuffer (Niantic.ARDK.AR.Awareness.Semantics.ISemanticBuffer)

Overview

interface ISemanticBuffer:
    Niantic.ARDK.AR.Awareness.IDataBuffer,
    IDisposable {
    // properties

    uint ChannelCount;
    string[] ChannelNames;

    // methods

    bool CreateOrUpdateTextureARGB32(
        ref Texture2D texture,
        int channelIndex,
        FilterMode filterMode = FilterMode.Point
    );

    bool CreateOrUpdateTextureARGB32(
        ref Texture2D texture,
        int[] channels,
        FilterMode filterMode = FilterMode.Point
    );

    bool CreateOrUpdateTextureRFloat(
        ref Texture2D texture,
        FilterMode filterMode = FilterMode.Point
    );

    bool DoesChannelExist(int channelIndex);
    bool DoesChannelExist(string channelName);
    bool DoesChannelExistAt(int x, int y, int channelIndex);
    bool DoesChannelExistAt(int x, int y, string channelName);
    bool DoesChannelExistAt(Vector2 uv, int channelIndex);
    bool DoesChannelExistAt(Vector2 uv, string channelName);
    int GetChannelIndex(string channelName);
    UInt32 GetChannelTextureMask(int channelIndex);
    UInt32 GetChannelTextureMask(int[] channelIndices);
    UInt32 GetChannelTextureMask(string channelName);
    UInt32 GetChannelTextureMask(string[] channelNames);
};

Inherited Members

public:
    // properties

    UInt32 Height;
    CameraIntrinsics Intrinsics;
    bool IsKeyframe;
    Matrix4x4 ViewMatrix;
    UInt32 Width;
    NativeArray<T> Data;

    // methods

    IAwarenessBuffer GetCopy();
    T Sample(Vector2 uv);
    T Sample(Vector2 uv, Matrix4x4 transform);

Detailed Documentation

Properties

uint ChannelCount

The number of channels contained in this buffer.

string[] ChannelNames

An array of semantic class names, in the order their channels appear in the data.

Methods

bool CreateOrUpdateTextureARGB32(
    ref Texture2D texture,
    int channelIndex,
    FilterMode filterMode = FilterMode.Point
)

Update (or create, if needed) a texture with data of one of this buffer's channels.

Parameters:

texture

Reference to the texture to copy to. This method will create a texture if the reference is null.

channelIndex

Channel index of the semantic class to copy.

filterMode

Texture filtering mode.

Returns:

True if the buffer was successfully copied to the given texture.

bool CreateOrUpdateTextureARGB32(
    ref Texture2D texture,
    int[] channels,
    FilterMode filterMode = FilterMode.Point
)

Update (or create, if needed) a texture with data composited of multiple channels from this buffer.

Parameters:

texture

Reference to the texture to copy to. This method will create a texture if the reference is null.

channels

Semantic channel indices to copy to this texture.

filterMode

Texture filtering mode.

Returns:

True if the buffer was successfully copied to the given texture.

bool CreateOrUpdateTextureRFloat(
    ref Texture2D texture,
    FilterMode filterMode = FilterMode.Point
)

Update (or create, if needed) a texture with this data of the entire buffer.

Parameters:

croppedRect

Rectangle defining how to crop the buffer's data before copying to the texture.

texture

Reference to the texture to copy to. This method will create a texture if the reference is null.

Returns:

True if the buffer was successfully copied to the given texture.

bool DoesChannelExist(int channelIndex)

Check if a certain channel exists anywhere in this buffer.

Parameters:

channelIndex

Channel index of the semantic class to look for.

Returns:

True if the channel exists.

bool DoesChannelExist(string channelName)

Check if a certain channel exists anywhere in this buffer.

Parameters:

channelName

Name of the semantic class to look for.

Returns:

True if the channel exists.

bool DoesChannelExistAt(int x, int y, int channelIndex)

Check if a pixel in this semantic buffer contains a certain channel.

Parameters:

x

Pixel position on the x-axis.

y

Pixel position on the y-axis.

channelIndex

Channel index of the semantic class to look for.

Returns:

True if the channel exists at the given coordinates.

bool DoesChannelExistAt(int x, int y, string channelName)

Check if a pixel in this semantic buffer contains a certain channel.

Parameters:

x

Pixel position on the x-axis.

y

Pixel position on the y-axis.

channelName

Name of the semantic class to look for.

Returns:

True if the channel exists at the given coordinates.

bool DoesChannelExistAt(Vector2 uv, int channelIndex)

Check if a pixel in this semantic buffer contains a certain channel. This method samples the semantics buffer using normalised texture coordinates.

Parameters:

uv

Normalised texture coordinates. The bottom-left is (0,1); the top-right is (1,0).

channelIndex

Channel index of the semantic class to look for.

Returns:

True if the channel exists at the given coordinates.

bool DoesChannelExistAt(Vector2 uv, string channelName)

Check if a pixel in this semantic buffer contains a certain channel. This method samples the semantics buffer using normalised texture coordinates.

Parameters:

uv

Normalised texture coordinates. The bottom-left is (0,1); the top-right is (1,0).

channelName

Name of the semantic class to look for.

Returns:

True if the channel exists at the given coordinates.

int GetChannelIndex(string channelName)

Get the channel index of a specified semantic class.

Parameters:

channelName

Name of semantic class.

Returns:

The index of the specified semantic class, or -1 if the channel does not exist.

UInt32 GetChannelTextureMask(int channelIndex)

Get a mask with only the specified channel's bit enabled. Can be used to quickly check if a channel exists at a particular pixel in this semantic buffer.

Parameters:

channelIndex

Channel index of the semantic class to mask for.

Returns:

A mask with only the specified channel's bit enabled.

UInt32 GetChannelTextureMask(int[] channelIndices)

Get a mask with only the specified channels' bits enabled. Can be used to quickly check if a set of channels exists at a particular pixel in this semantic buffer.

Parameters:

channelIndices

Channel indices of the semantic classes to mask for.

Returns:

A mask with only the specified channels' bits enabled.

UInt32 GetChannelTextureMask(string channelName)

Get a mask with only the specified channel's bit enabled. Can be used to quickly check if a channel exists at a particular pixel in this semantic buffer.

Parameters:

channelName

Name of the semantic class to mask for.

Returns:

A mask with only the specified channel's bit enabled.

UInt32 GetChannelTextureMask(string[] channelNames)

Get a mask with only the specified channels' bits enabled. Can be used to quickly check if a set of channels exists at a particular pixel in this semantic buffer.

Parameters:

channelNames

Names of the semantic classes to mask for.

Returns:

A mask with only the specified channels' bits enabled.