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
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
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
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
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
getCapacity()
getCapacity():
number
Defined in: packages/sigma/src/rendering/data-texture.ts:276
Gets the current capacity (max items).
Returns
number
Inherited from
getCount()
getCount():
number
Defined in: packages/sigma/src/rendering/data-texture.ts:297
Gets the number of allocated items.
Returns
number
Inherited from
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
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
getTexelsPerItem()
getTexelsPerItem():
number
Defined in: packages/sigma/src/rendering/data-texture.ts:290
Gets the number of texels per item.
Returns
number
Inherited from
getTexture()
getTexture():
WebGLTexture|null
Defined in: packages/sigma/src/rendering/data-texture.ts:269
Gets the WebGL texture object.
Returns
WebGLTexture | null
Inherited from
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
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
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
kill()
kill():
void
Defined in: packages/sigma/src/rendering/data-texture.ts:333
Destroys the texture and clears all data.
Returns
void
Inherited from
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