Blame |
Last modification |
View Log
| RSS feed
#region --- License ---
/* Copyright (c) 2006, 2007 Stefanos Apostolopoulos
* See license.txt for license info
*/
#endregion
using System;
using System.Collections.Generic;
using System.Text;
using OpenTK;
namespace Examples
.Shapes
{
public class Plane
: Shape
{
public Plane
(int x_res,
int y_res,
float x_scale,
float y_scale
)
{
Vertices
= new Vector3
[x_res
* y_res
];
Normals
= new Vector3
[x_res
* y_res
];
Indices
= new int[6 * x_res
* y_res
];
Texcoords
= new Vector2
[x_res
* y_res
];
int i
= 0;
for (int y
= -y_res
/ 2; y
< y_res
/ 2; y
++)
{
for (int x
= -x_res
/ 2; x
< x_res
/ 2; x
++)
{
Vertices
[i
].X = x_scale
* (float)x
/ (float)x_res
;
Vertices
[i
].Y = y_scale
* (float)y
/ (float)y_res
;
Vertices
[i
].Z = 0;
Normals
[i
].X = Normals
[i
].Y = 0;
Normals
[i
].Z = 1;
i
++;
}
}
i
= 0;
for (int y
= 0; y
< y_res
- 1; y
++)
{
for (int x
= 0; x
< x_res
- 1; x
++)
{
Indices
[i
++] = (y
+ 0) * x_res
+ x
;
Indices
[i
++] = (y
+ 1) * x_res
+ x
;
Indices
[i
++] = (y
+ 0) * x_res
+ x
+ 1;
Indices
[i
++] = (y
+ 0) * x_res
+ x
+ 1;
Indices
[i
++] = (y
+ 1) * x_res
+ x
;
Indices
[i
++] = (y
+ 1) * x_res
+ x
+ 1;
}
}
}
}
}