Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ProceduralMesh Class Reference
Inheritance diagram for ProceduralMesh:

Public Member Functions

Mesh GetMesh ()
 
void Create ()
 
void AddTriangles ()
 

Public Attributes

Vector2 tiling = Vector2.one
 
float UVPadding = 0.02f
 
Vector3 pos = new Vector3(0f, 0f, -1f)
 
Vector3 offset
 
Vector3 size = Vector3.one
 
bool top
 
bool calculateNormal = true
 

Private Member Functions

Vector2[] GetUVs (int id)
 

Private Attributes

Mesh mesh
 
List< int > triangles = new List<int>()
 
List< Vector3 > vertices = new List<Vector3>()
 
List< Vector2 > uv = new List<Vector2>()
 
int triOffset
 

Detailed Description

Definition at line 4 of file ProceduralMesh.cs.

Member Function Documentation

◆ AddTriangles()

void ProceduralMesh.AddTriangles ( )
inline

Definition at line 79 of file ProceduralMesh.cs.

80 {
81 triangles.AddRange(new int[6]
82 {
84 1 + triOffset,
85 2 + triOffset,
86 2 + triOffset,
87 3 + triOffset,
89 });
90 triOffset += 4;
91 }
List< int > triangles

References triangles, and triOffset.

Referenced by Create().

◆ Create()

void ProceduralMesh.Create ( )
inline

Definition at line 39 of file ProceduralMesh.cs.

40 {
41 mesh = new Mesh();
42 triOffset = 0;
43 triangles.Clear();
44 vertices.Clear();
45 uv.Clear();
46 if (top)
47 {
48 vertices.AddRange(new Vector3[4]
49 {
50 new Vector3(0f, size.y, size.z) + pos,
51 new Vector3(size.x, size.y, size.z) + pos,
52 new Vector3(size.x, size.y, 0f) + pos,
53 new Vector3(0f, size.y, 0f) + pos
54 });
55 uv.AddRange(GetUVs(0));
57 }
58 else
59 {
60 vertices.AddRange(new Vector3[4]
61 {
62 new Vector3(0f, size.y, 0f) + pos,
63 new Vector3(size.x, size.y, 0f) + pos,
64 new Vector3(size.x, offset.y, 0f) + pos,
65 new Vector3(0f, offset.y, 0f) + pos
66 });
67 uv.AddRange(GetUVs(0));
69 }
70 mesh.SetVertices(vertices);
71 mesh.SetUVs(0, uv);
72 mesh.SetTriangles(triangles, 0);
74 {
75 mesh.RecalculateNormals();
76 }
77 }
List< Vector2 > uv
List< Vector3 > vertices
Vector2[] GetUVs(int id)

References AddTriangles(), calculateNormal, GetUVs(), mesh, offset, pos, size, top, triangles, triOffset, uv, and vertices.

Referenced by GetMesh().

◆ GetMesh()

Mesh ProceduralMesh.GetMesh ( )
inline

Definition at line 30 of file ProceduralMesh.cs.

31 {
32 if (!mesh)
33 {
34 Create();
35 }
36 return mesh;
37 }

References Create(), and mesh.

Referenced by MeshPass._Refresh().

◆ GetUVs()

Vector2[] ProceduralMesh.GetUVs ( int  id)
inlineprivate

Definition at line 93 of file ProceduralMesh.cs.

94 {
95 Vector2[] array = new Vector2[4];
96 Vector2 vector = new Vector2(1f / tiling.x, 1f / tiling.y);
97 int num = id % (int)tiling.x;
98 int num2 = id / (int)tiling.x;
99 float num3 = UVPadding / tiling.x;
100 array[0] = new Vector2((float)num / tiling.x + num3, 1f - (float)num2 / tiling.y - num3);
101 array[1] = new Vector2((float)num / tiling.x + vector.x - num3, 1f - (float)num2 / tiling.y - num3);
102 array[2] = new Vector2((float)num / tiling.x + vector.x - num3, 1f - ((float)num2 / tiling.y + vector.y) + num3);
103 array[3] = new Vector2((float)num / tiling.x + num3, 1f - ((float)num2 / tiling.y + vector.y) + num3);
104 return array;
105 }

References tiling, and UVPadding.

Referenced by Create().

Member Data Documentation

◆ calculateNormal

bool ProceduralMesh.calculateNormal = true

Definition at line 18 of file ProceduralMesh.cs.

Referenced by Create().

◆ mesh

Mesh ProceduralMesh.mesh
private

Definition at line 20 of file ProceduralMesh.cs.

Referenced by Create(), and GetMesh().

◆ offset

Vector3 ProceduralMesh.offset

Definition at line 12 of file ProceduralMesh.cs.

Referenced by Create().

◆ pos

Vector3 ProceduralMesh.pos = new Vector3(0f, 0f, -1f)

Definition at line 10 of file ProceduralMesh.cs.

Referenced by Create(), and RenderRow.SetRenderData().

◆ size

Vector3 ProceduralMesh.size = Vector3.one

Definition at line 14 of file ProceduralMesh.cs.

Referenced by Create(), RenderDataObjV.Draw(), and RenderDataTile.Draw().

◆ tiling

◆ top

bool ProceduralMesh.top

Definition at line 16 of file ProceduralMesh.cs.

Referenced by Create().

◆ triangles

List<int> ProceduralMesh.triangles = new List<int>()
private

Definition at line 22 of file ProceduralMesh.cs.

Referenced by AddTriangles(), and Create().

◆ triOffset

int ProceduralMesh.triOffset
private

Definition at line 28 of file ProceduralMesh.cs.

Referenced by AddTriangles(), and Create().

◆ uv

List<Vector2> ProceduralMesh.uv = new List<Vector2>()
private

Definition at line 26 of file ProceduralMesh.cs.

Referenced by Create().

◆ UVPadding

float ProceduralMesh.UVPadding = 0.02f

Definition at line 8 of file ProceduralMesh.cs.

Referenced by GetUVs().

◆ vertices

List<Vector3> ProceduralMesh.vertices = new List<Vector3>()
private

Definition at line 24 of file ProceduralMesh.cs.

Referenced by Create().


The documentation for this class was generated from the following file: