posnormtriv method
void
posnormtriv(
- dynamic pos,
- dynamic norm,
- dynamic colors,
- int o1,
- int o2,
- int o3,
)
Implementation
void posnormtriv( pos, norm, colors,int o1,int o2,int o3 ) {
final c = count! * 3;
// positions
positionArray[ c + 0 ] = pos[ o1 ];
positionArray[ c + 1 ] = pos[ o1 + 1 ];
positionArray[ c + 2 ] = pos[ o1 + 2 ];
positionArray[ c + 3 ] = pos[ o2 ];
positionArray[ c + 4 ] = pos[ o2 + 1 ];
positionArray[ c + 5 ] = pos[ o2 + 2 ];
positionArray[ c + 6 ] = pos[ o3 ];
positionArray[ c + 7 ] = pos[ o3 + 1 ];
positionArray[ c + 8 ] = pos[ o3 + 2 ];
// normals
if (material?.flatShading == true){
final nx = ( norm[ o1 + 0 ] + norm[ o2 + 0 ] + norm[ o3 + 0 ] ) / 3;
final ny = ( norm[ o1 + 1 ] + norm[ o2 + 1 ] + norm[ o3 + 1 ] ) / 3;
final nz = ( norm[ o1 + 2 ] + norm[ o2 + 2 ] + norm[ o3 + 2 ] ) / 3;
normalArray[ c + 0 ] = nx;
normalArray[ c + 1 ] = ny;
normalArray[ c + 2 ] = nz;
normalArray[ c + 3 ] = nx;
normalArray[ c + 4 ] = ny;
normalArray[ c + 5 ] = nz;
normalArray[ c + 6 ] = nx;
normalArray[ c + 7 ] = ny;
normalArray[ c + 8 ] = nz;
}
else {
normalArray[ c + 0 ] = norm[ o1 + 0 ];
normalArray[ c + 1 ] = norm[ o1 + 1 ];
normalArray[ c + 2 ] = norm[ o1 + 2 ];
normalArray[ c + 3 ] = norm[ o2 + 0 ];
normalArray[ c + 4 ] = norm[ o2 + 1 ];
normalArray[ c + 5 ] = norm[ o2 + 2 ];
normalArray[ c + 6 ] = norm[ o3 + 0 ];
normalArray[ c + 7 ] = norm[ o3 + 1 ];
normalArray[ c + 8 ] = norm[ o3 + 2 ];
}
// uvs
if ( enableUvs ) {
final d = count! * 2;
uvArray[ d + 0 ] = pos[ o1 + 0 ];
uvArray[ d + 1 ] = pos[ o1 + 2 ];
uvArray[ d + 2 ] = pos[ o2 + 0 ];
uvArray[ d + 3 ] = pos[ o2 + 2 ];
uvArray[ d + 4 ] = pos[ o3 + 0 ];
uvArray[ d + 5 ] = pos[ o3 + 2 ];
}
// colors
if (enableColors) {
colorArray[ c + 0 ] = colors[ o1 + 0 ];
colorArray[ c + 1 ] = colors[ o1 + 1 ];
colorArray[ c + 2 ] = colors[ o1 + 2 ];
colorArray[ c + 3 ] = colors[ o2 + 0 ];
colorArray[ c + 4 ] = colors[ o2 + 1 ];
colorArray[ c + 5 ] = colors[ o2 + 2 ];
colorArray[ c + 6 ] = colors[ o3 + 0 ];
colorArray[ c + 7 ] = colors[ o3 + 1 ];
colorArray[ c + 8 ] = colors[ o3 + 2 ];
}
count = count!+3;
}