Home Reference Source
import {BufferManager} from 'bimsurfer3/viewer/buffermanager.js'
public class | source

BufferManager

BufferManager keeps track of (CPU side) buffers, these buffers are eventually flushed to the GPU.

This class should be considered abstract. It contains all code that is shared by the implementations:

- BufferManagerPerColor (keeps a buffer alive per unique color)
  • BufferManagerTransparencyOnly (keeps two buffers alive, one for opaque objects and one for transparent)

    Because of allocation costs, buffers are reused. Flushed buffers will reset their indices (resetBuffer), subsequently overwriting old data.

Constructor Summary

Public Constructor
public

Member Summary

Public Members
public
public
public
public
public

defaultSizes: {"vertices": *, "normals": *, "indices": *, "lineIndices": *, "colors": *, "pickColors": *}

public
public
public
public

viewer: *

Method Summary

Public Methods
public

clear()

public

createBufferSet(hasTransparency: *, color: *, sizes: *): *

public

createBufferSetPooled(hasTransparency: *, color: *, sizes: *): *

public
public

getBufferSet(transparency: *, color: *, sizes: *): *

public
public

resetBuffer(bufferSet: *)

public

shouldFlush(sizes: *, buffer: *): *

Public Constructors

public constructor() source

Public Members

public MAX_BUFFER_SIZE: number source

public bufferSetPool: * source

public bufferSets: * source

public colorBufferFactor: number source

public defaultSizes: {"vertices": *, "normals": *, "indices": *, "lineIndices": *, "colors": *, "pickColors": *} source

public indicesVerticesFactor: number source

public renderer: * source

public settings: * source

public viewer: * source

Public Methods

public clear() source

public createBufferSet(hasTransparency: *, color: *, sizes: *): * source

Params:

NameTypeAttributeDescription
hasTransparency *
color *
sizes *

Return:

*

public createBufferSetPooled(hasTransparency: *, color: *, sizes: *): * source

Params:

NameTypeAttributeDescription
hasTransparency *
color *
sizes *

Return:

*

public getAllBuffers(): * source

Return:

*

public getBufferSet(transparency: *, color: *, sizes: *): * source

Params:

NameTypeAttributeDescription
transparency *
color *
sizes *

Return:

*

public getDefaultByteSize(): * source

Return:

*

public resetBuffer(bufferSet: *) source

Params:

NameTypeAttributeDescription
bufferSet *

public shouldFlush(sizes: *, buffer: *): * source

Params:

NameTypeAttributeDescription
sizes *
buffer *

Return:

*