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
Implements
Namespace: AS2.Visuals
Assembly: .dll
Syntax
public class RendererCircuits_RenderBatch : IGenerateDynamicMesh
Constructors
| Edit this page View SourceRendererCircuits_RenderBatch(PropertyBlockData)
Declaration
public RendererCircuits_RenderBatch(RendererCircuits_RenderBatch.PropertyBlockData properties)
Parameters
Type | Name | Description |
---|---|---|
RendererCircuits_RenderBatch.PropertyBlockData | properties |
Fields
| Edit this page View SourcecircuitMatrices_Lines
Declaration
private List<Matrix4x4[]> circuitMatrices_Lines
Field Value
Type | Description |
---|---|
List<Matrix4x4[]> |
circuitQuad
Declaration
private Mesh circuitQuad
Field Value
Type | Description |
---|---|
Mesh |
currentIndex
Declaration
private int currentIndex
Field Value
Type | Description |
---|---|
int |
endPositions1
Declaration
private List<Vector2[]> endPositions1
Field Value
Type | Description |
---|---|
List<Vector2[]> |
endPositions2
Declaration
private List<Vector2[]> endPositions2
Field Value
Type | Description |
---|---|
List<Vector2[]> |
lastBeepStartTime
Declaration
private float lastBeepStartTime
Field Value
Type | Description |
---|---|
float |
lineMaterial
Declaration
private Material lineMaterial
Field Value
Type | Description |
---|---|
Material |
lineWidth
Declaration
private float lineWidth
Field Value
Type | Description |
---|---|
float |
maxArraySize
Declaration
private const int maxArraySize = 1023
Field Value
Type | Description |
---|---|
int |
properties
Declaration
public RendererCircuits_RenderBatch.PropertyBlockData properties
Field Value
Type | Description |
---|---|
RendererCircuits_RenderBatch.PropertyBlockData |
propertyBlock_circuitMatrices_Lines
Declaration
private MaterialPropertyBlockData_Circuits propertyBlock_circuitMatrices_Lines
Field Value
Type | Description |
---|---|
MaterialPropertyBlockData_Circuits |
startPositions1
Declaration
private List<Vector2[]> startPositions1
Field Value
Type | Description |
---|---|
List<Vector2[]> |
startPositions2
Declaration
private List<Vector2[]> startPositions2
Field Value
Type | Description |
---|---|
List<Vector2[]> |
zOffset
Declaration
private float zOffset
Field Value
Type | Description |
---|---|
float |
Methods
| Edit this page View SourceAddLine(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. |
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. |
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. |
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. |
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()
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. |
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()
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()
RegenerateMeshes()
Regenerates the meshes of this class.
Declaration
public void RegenerateMeshes()
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 |
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. |