setupMesh method
Implementation
void setupMesh(BufferGeometry geometry, Material material) {
if (geometry is PlaneGeometry) {
if (material is MeshBasicMaterial) {
if (material.map != null) {
setupPlaneWithTextureProgramInfo();
} else {
setupGenericProgramInfo();
}
} else {
setupGenericProgramInfo();
}
} else {
// 1. Create a program based on geometry and material
setupGenericProgramInfo();
}
// 2. Compute the buffer info
geometry.computeBufferInfo(gl);
// 3. Setup VAO
vao = Flutter3D.createVAOFromBufferInfo(gl, programInfo!, geometry.bufferInfo);
// if the material has map texture.
if (material is MeshBasicMaterial) {
if (material.map != null) {
if (material.checkerboard) {
setupCheckerboardTexture(material);
} else {
setupTexture(material);
}
}
}
}