Pixel-Composer/scripts/d3d_plane_mesh/d3d_plane_mesh.gml

63 lines
2.0 KiB
Plaintext
Raw Normal View History

function __3dPlane() : __3dObject() constructor {
VF = global.VF_POS_NORM_TEX_COL;
render_type = pr_trianglelist;
self.side = 0.5;
self.normal = 0;
2023-11-09 07:59:03 +01:00
two_side = false;
static initModel = function() {
var _nor = [ 0, 0, 1 ];
2023-11-09 07:59:03 +01:00
vertex = [];
object_counts = 1 + two_side;
switch(normal) {
case 0 :
2023-11-09 07:59:03 +01:00
vertex[0] = [
new __vertex(0, -side, -side).setNormal(1, 0, 0).setUV(0, 1),
new __vertex(0, side, side).setNormal(1, 0, 0).setUV(1, 0),
new __vertex(0, side, -side).setNormal(1, 0, 0).setUV(1, 1),
new __vertex(0, -side, -side).setNormal(1, 0, 0).setUV(0, 1),
new __vertex(0, -side, side).setNormal(1, 0, 0).setUV(0, 0),
new __vertex(0, side, side).setNormal(1, 0, 0).setUV(1, 0),
2023-11-09 07:59:03 +01:00
];
break;
case 1 :
2023-11-09 07:59:03 +01:00
vertex[0] = [
new __vertex(-side, 0, -side).setNormal(0, 1, 0).setUV(1, 1),
new __vertex( side, 0, -side).setNormal(0, 1, 0).setUV(0, 1),
new __vertex( side, 0, side).setNormal(0, 1, 0).setUV(0, 0),
new __vertex(-side, 0, -side).setNormal(0, 1, 0).setUV(1, 1),
new __vertex( side, 0, side).setNormal(0, 1, 0).setUV(0, 0),
new __vertex(-side, 0, side).setNormal(0, 1, 0).setUV(1, 0),
2023-11-09 07:59:03 +01:00
];
break;
case 2 :
2023-11-09 07:59:03 +01:00
vertex[0] = [
new __vertex(-side, -side, 0).setNormal(0, 0, 1).setUV(0, 0),
new __vertex( side, side, 0).setNormal(0, 0, 1).setUV(1, 1),
new __vertex( side, -side, 0).setNormal(0, 0, 1).setUV(0, 1),
new __vertex(-side, -side, 0).setNormal(0, 0, 1).setUV(0, 0),
new __vertex(-side, side, 0).setNormal(0, 0, 1).setUV(1, 0),
new __vertex( side, side, 0).setNormal(0, 0, 1).setUV(1, 1),
2023-11-09 07:59:03 +01:00
];
break;
}
2023-11-09 07:59:03 +01:00
if(two_side) {
vertex[1] = array_create(6);
for( var i = 0; i < 6; i++ ) {
var _v0 = vertex[0][5 - i];
vertex[1][i] = new __vertex(_v0.x, _v0.y, _v0.z).setNormal(-_v0.nx, -_v0.ny, -_v0.nz).setUV(_v0.u, _v0.v);
}
}
VB = build();
} initModel();
onParameterUpdate = initModel;
}