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:141

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:260

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:320

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:168

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:276

Gets the current capacity (max items).

Returns

number

Inherited from

DataTexture.getCapacity


getCount()

getCount(): number

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

Gets the number of allocated items.

Returns

number

Inherited from

DataTexture.getCount


getHighWaterMark()

getHighWaterMark(): number

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

Highest index ever allocated + 1. Unlike getCount, this spans freed holes, so it bounds every live item’s row (what a per-row gl_VertexID pass must cover).

Returns

number

Inherited from

DataTexture.getHighWaterMark


getIndex()

getIndex(key): number

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

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:290

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:269

Gets the WebGL texture object.

Returns

WebGLTexture | null

Inherited from

DataTexture.getTexture


getTextureWidth()

getTextureWidth(): number

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

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:195

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:313

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:333

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:212

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

Returns

void

Inherited from

DataTexture.upload