Skip to content
This is the alpha v4 version website. Looking for the v3 documentation?

EdgeDataTexture

Defined in: packages/sigma/src/rendering/edge-data-texture.ts:40

Manages a GPU texture storing edge data.

The texture is a 2D RGBA32F texture where each edge uses 2 texels:

Texel 0 (edgeIndex * 2 + 0):

  • R: sourceNodeIndex (index into node data texture)
  • G: targetNodeIndex (index into node data texture)
  • B: thickness
  • A: reserved

Texel 1 (edgeIndex * 2 + 1):

  • R: headLengthRatio
  • G: tailLengthRatio
  • B: pathId (for multi-path programs)
  • A: (headId << 4) | tailId (for multi-extremity programs)

Edge index N maps to texel coordinates: texel0: (N * 2) % textureWidth, (N * 2) / textureWidth texel1: (N * 2 + 1) % textureWidth, (N * 2 + 1) / textureWidth

Extends

Constructors

Constructor

new EdgeDataTexture(gl, initialCapacity?): EdgeDataTexture

Defined in: packages/sigma/src/rendering/edge-data-texture.ts:41

Parameters

gl

WebGL2RenderingContext

initialCapacity?

number

Returns

EdgeDataTexture

Overrides

DataTexture.constructor

Methods

allocate()

allocate(key): number

Defined in: packages/sigma/src/rendering/data-texture.ts:138

Allocates a texture index for an item. Returns existing index if item already allocated.

Parameters

key

string | number

Returns

number

Inherited from

DataTexture.allocate


bind()

bind(textureUnit): void

Defined in: packages/sigma/src/rendering/data-texture.ts:255

Binds the texture to a texture unit.

Parameters

textureUnit

number

Returns

void

Inherited from

DataTexture.bind


clear()

clear(): void

Defined in: packages/sigma/src/rendering/data-texture.ts:306

Clears all item allocations (but keeps the texture).

Returns

void

Inherited from

DataTexture.clear


free()

free(key): void

Defined in: packages/sigma/src/rendering/data-texture.ts:165

Frees an item’s texture index for reuse.

Parameters

key

string | number

Returns

void

Inherited from

DataTexture.free


getCapacity()

getCapacity(): number

Defined in: packages/sigma/src/rendering/data-texture.ts:271

Gets the current capacity (max items).

Returns

number

Inherited from

DataTexture.getCapacity


getCount()

getCount(): number

Defined in: packages/sigma/src/rendering/data-texture.ts:292

Gets the number of allocated items.

Returns

number

Inherited from

DataTexture.getCount


getIndex()

getIndex(key): number

Defined in: packages/sigma/src/rendering/data-texture.ts:185

Gets the texture index for an item. Returns -1 if item not found.

Parameters

key

string | number

Returns

number

Inherited from

DataTexture.getIndex


getTexelsPerItem()

getTexelsPerItem(): number

Defined in: packages/sigma/src/rendering/data-texture.ts:285

Gets the number of texels per item.

Returns

number

Inherited from

DataTexture.getTexelsPerItem


getTexture()

getTexture(): WebGLTexture | null

Defined in: packages/sigma/src/rendering/data-texture.ts:264

Gets the WebGL texture object.

Returns

WebGLTexture | null

Inherited from

DataTexture.getTexture


getTextureWidth()

getTextureWidth(): number

Defined in: packages/sigma/src/rendering/data-texture.ts:278

Gets the texture width (needed for 2D coordinate calculation in shaders).

Returns

number

Inherited from

DataTexture.getTextureWidth


has()

has(key): boolean

Defined in: packages/sigma/src/rendering/data-texture.ts:192

Checks if an item has been allocated.

Parameters

key

string | number

Returns

boolean

Inherited from

DataTexture.has


isDirty()

isDirty(): boolean

Defined in: packages/sigma/src/rendering/data-texture.ts:299

Checks if there are pending changes to upload.

Returns

boolean

Inherited from

DataTexture.isDirty


kill()

kill(): void

Defined in: packages/sigma/src/rendering/data-texture.ts:319

Destroys the texture and clears all data.

Returns

void

Inherited from

DataTexture.kill


updateEdge()

updateEdge(edgeKey, sourceNodeIndex, targetNodeIndex, thickness, headLengthRatio, tailLengthRatio, pathId?, headId?, tailId?): void

Defined in: packages/sigma/src/rendering/edge-data-texture.ts:58

Updates all data for an edge.

Parameters

edgeKey

string

The edge identifier

sourceNodeIndex

number

Index of source node in node data texture

targetNodeIndex

number

Index of target node in node data texture

thickness

number

Edge thickness

headLengthRatio

number

Head extremity length as ratio of thickness

tailLengthRatio

number

Tail extremity length as ratio of thickness

pathId?

number = 0

Path index for multi-path programs (default 0)

headId?

number = 0

Head extremity index for multi-extremity programs (default 0)

tailId?

number = 0

Tail extremity index for multi-extremity programs (default 0)

Returns

void


upload()

upload(): void

Defined in: packages/sigma/src/rendering/data-texture.ts:209

Uploads dirty data to the GPU texture. With 2D layout and multiple texels per item, uploads affected rows.

Returns

void

Inherited from

DataTexture.upload