Search Results for

    Show / Hide Table of Contents

    Class RendererCircuits_RenderBatch

    Renderer for the circuits. Each instance of this class renders circuit lines with the same properties (like color, type, etc.) with Unity's instanced drawing. The class handles circuit lines inside of particles, circuit connections between the particles and bonds. Each instance only renders one type of line.

    Inheritance
    object
    RendererCircuits_RenderBatch
    Implements
    IGenerateDynamicMesh
    Namespace: AS2.Visuals
    Assembly: .dll
    Syntax
    public class RendererCircuits_RenderBatch : IGenerateDynamicMesh

    Constructors

    | Edit this page View Source

    RendererCircuits_RenderBatch(PropertyBlockData)

    Declaration
    public RendererCircuits_RenderBatch(RendererCircuits_RenderBatch.PropertyBlockData properties)
    Parameters
    Type Name Description
    RendererCircuits_RenderBatch.PropertyBlockData properties

    Fields

    | Edit this page View Source

    circuitMatrices_Lines

    Declaration
    private List<Matrix4x4[]> circuitMatrices_Lines
    Field Value
    Type Description
    List<Matrix4x4[]>
    | Edit this page View Source

    circuitQuad

    Declaration
    private Mesh circuitQuad
    Field Value
    Type Description
    Mesh
    | Edit this page View Source

    currentIndex

    Declaration
    private int currentIndex
    Field Value
    Type Description
    int
    | Edit this page View Source

    endPositions1

    Declaration
    private List<Vector2[]> endPositions1
    Field Value
    Type Description
    List<Vector2[]>
    | Edit this page View Source

    endPositions2

    Declaration
    private List<Vector2[]> endPositions2
    Field Value
    Type Description
    List<Vector2[]>
    | Edit this page View Source

    lastBeepStartTime

    Declaration
    private float lastBeepStartTime
    Field Value
    Type Description
    float
    | Edit this page View Source

    lineMaterial

    Declaration
    private Material lineMaterial
    Field Value
    Type Description
    Material
    | Edit this page View Source

    lineWidth

    Declaration
    private float lineWidth
    Field Value
    Type Description
    float
    | Edit this page View Source

    maxArraySize

    Declaration
    private const int maxArraySize = 1023
    Field Value
    Type Description
    int
    | Edit this page View Source

    properties

    Declaration
    public RendererCircuits_RenderBatch.PropertyBlockData properties
    Field Value
    Type Description
    RendererCircuits_RenderBatch.PropertyBlockData
    | Edit this page View Source

    propertyBlock_circuitMatrices_Lines

    Declaration
    private MaterialPropertyBlockData_Circuits propertyBlock_circuitMatrices_Lines
    Field Value
    Type Description
    MaterialPropertyBlockData_Circuits
    | Edit this page View Source

    startPositions1

    Declaration
    private List<Vector2[]> startPositions1
    Field Value
    Type Description
    List<Vector2[]>
    | Edit this page View Source

    startPositions2

    Declaration
    private List<Vector2[]> startPositions2
    Field Value
    Type Description
    List<Vector2[]>
    | Edit this page View Source

    zOffset

    Declaration
    private float zOffset
    Field Value
    Type Description
    float

    Methods

    | Edit this page View Source

    AddLine(Vector2, Vector2)

    Adds a line from A to B.

    Declaration
    public RenderBatchIndex AddLine(Vector2 globalLineStartPos, Vector2 globalLineEndPos)
    Parameters
    Type Name Description
    Vector2 globalLineStartPos

    The global start position A of the line.

    Vector2 globalLineEndPos

    The global end position B of the line.

    Returns
    Type Description
    RenderBatchIndex

    The batch index of the new line in this batch.

    | Edit this page View Source

    AddManuallyUpdatedLine(Vector2, Vector2, Vector2, Vector2)

    Adds a animated line from A to B which can move to the line from A' to B'.

    Declaration
    public void AddManuallyUpdatedLine(Vector2 globalLineStartPos, Vector2 globalLineEndPos, Vector2 globalLineStartPos2, Vector2 globalLineEndPos2)
    Parameters
    Type Name Description
    Vector2 globalLineStartPos

    The start position A of the line at the beginning of the animation.

    Vector2 globalLineEndPos

    The end position B of the line at the beginning of the animation.

    Vector2 globalLineStartPos2

    The start position A' of the line at the end of the animation.

    Vector2 globalLineEndPos2

    The end position B' of the line at the end of the animation.

    | Edit this page View Source

    ApplyMovementTimestamps(float, float)

    Applies the timestamps for the movement offsets.

    Declaration
    public void ApplyMovementTimestamps(float movementStartTime, float movementDuration)
    Parameters
    Type Name Description
    float movementStartTime

    Start time of the animation.

    float movementDuration

    Duration of the animation.

    | Edit this page View Source

    ApplyUpdates(float, float)

    Applies the new data for the timing of animations and beeps.

    Declaration
    public void ApplyUpdates(float animationStartTime, float beepStartTime)
    Parameters
    Type Name Description
    float animationStartTime

    Start time of the animation.

    float beepStartTime

    Start time of the beeps.

    | Edit this page View Source

    CalculateAnimationFrame()

    Calculates the interpolated line matrices for a point in time of an animation. This should done every frame if the animations are running.

    DEPRECATED: Try to replace this with the new shader animations. This is more performant and straightforward.

    Declaration
    private void CalculateAnimationFrame()
    | Edit this page View Source

    CalculateLineMatrix(Vector2, Vector2)

    Calculates the line matrix from the positional information about the line. We basically take a standard quad and transform it so that it forms a line. The pivot of the quad must be at the center of the quad's left side.

    Declaration
    private Matrix4x4 CalculateLineMatrix(Vector2 posStart, Vector2 posEnd)
    Parameters
    Type Name Description
    Vector2 posStart

    The start position of the line.

    Vector2 posEnd

    The end position of the line.

    Returns
    Type Description
    Matrix4x4

    A transformation, rotation, scaling matrix for the new line.

    | Edit this page View Source

    ClearMatrices()

    Clears the matrices, so nothing gets rendered anymore. The lists can be filled with new data now. (Actually just sets the index to 0, so we don't draw anything anymore.)

    Declaration
    public void ClearMatrices()
    | Edit this page View Source

    Init()

    Initializes the materials based on the circuit render batch type. Also sets certain parameters for the property blocks and general settings of this class.

    Declaration
    public void Init()
    | Edit this page View Source

    RegenerateMeshes()

    Regenerates the meshes of this class.

    Declaration
    public void RegenerateMeshes()
    | Edit this page View Source

    Render(ViewType, bool)

    Draws the circuits to the screen based on current settings.

    Declaration
    public void Render(ViewType type, bool firstRenderFrame)
    Parameters
    Type Name Description
    ViewType type

    The view type of the system. Useful for deciding what should be shown.

    bool firstRenderFrame

    Set to true if a new round has just begun, so that the new timing settings can be applied.

    | Edit this page View Source

    UpdateLine(Vector2, Vector2, RenderBatchIndex)

    Updates a line from A to B.

    Declaration
    public void UpdateLine(Vector2 globalLineStartPos, Vector2 globalLineEndPos, RenderBatchIndex index)
    Parameters
    Type Name Description
    Vector2 globalLineStartPos

    The start position A of the line.

    Vector2 globalLineEndPos

    The end position B of the line.

    RenderBatchIndex index

    The index of the line to update.

    Implements

    IGenerateDynamicMesh
    • Edit this page
    • View Source
    In this article
    Back to top AmoebotSim 2.0 Documentation v1.11
    Copyright © 2025 AmoebotSim 2.0 Authors
    Generated by DocFX