Skip to content
sigma.js sigma.js
v4.0.6 Docs Examples GitHub 12.2K

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

new EdgeDataTexture(gl, initialCapacity?): EdgeDataTexture

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

WebGL2RenderingContext

number

EdgeDataTexture

DataTexture.constructor

allocate(key): number

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

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

string | number

number

DataTexture.allocate


bind(textureUnit): void

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

Binds the texture to a texture unit.

number

void

DataTexture.bind


clear(): void

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

Clears all item allocations (but keeps the texture).

void

DataTexture.clear


free(key): void

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

Frees an item’s texture index for reuse.

string | number

void

DataTexture.free


getCapacity(): number

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

Gets the current capacity (max items).

number

DataTexture.getCapacity


getCount(): number

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

Gets the number of allocated items.

number

DataTexture.getCount


getHighWaterMark(): number

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

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).

number

DataTexture.getHighWaterMark


getIndex(key): number

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

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

string | number

number

DataTexture.getIndex


getTexelsPerItem(): number

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

Gets the number of texels per item.

number

DataTexture.getTexelsPerItem


getTexture(): WebGLTexture | null

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

Gets the WebGL texture object.

WebGLTexture | null

DataTexture.getTexture


getTextureHeight(): number

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

Gets the texture height (needed to cover the full texture when rendering into it).

number

DataTexture.getTextureHeight


getTextureWidth(): number

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

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

number

DataTexture.getTextureWidth


has(key): boolean

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

Checks if an item has been allocated.

string | number

boolean

DataTexture.has


isDirty(): boolean

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

Checks if there are pending changes to upload.

boolean

DataTexture.isDirty


kill(): void

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

Destroys the texture and clears all data.

void

DataTexture.kill


restore(): void

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

Recreates the GPU texture after a context loss, re-uploading the CPU-side data.

void

DataTexture.restore


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.

string

The edge identifier

number

Index of source node in node data texture

number

Index of target node in node data texture

number

Edge thickness

number

Head extremity length as ratio of thickness

number

Tail extremity length as ratio of thickness

number = 0

Path index for multi-path programs (default 0)

number = 0

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

number = 0

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

void


upload(): void

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

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

void

DataTexture.upload