All files / common/rage_modules mesh.mjs

63.85% Statements 53/83
100% Branches 4/4
33.33% Functions 3/9
63.85% Lines 53/83

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 841x 1x 1x 1x 1x 1x 8x 8x 8x 8x 8x 8x 1x 1x           1x 1x           1x 1x           1x 1x           1x 1x           1x 1x           1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x 1x  
import { Vertex3D } from './vertex.mjs'
import { Material } from './material.mjs'
import { Vector3 } from './vector.mjs'
 
class Mesh {
    constructor(){
        // CODE: INCOMPLETE
        // UNIT: FALSE
        // DOCS: FALSE
        this.triplets = new Array()
        this.material = new Material()
    }
 
    addTriplet(v1, v2, v3){
        // CODE: INCOMPLETE
        // UNIT: FALSE
        // DOCS: FALSE
        this.triplets.push(new Triplet(v1, v2, v3))
    }
 
    setMaterial(material){
        // CODE: INCOMPLETE
        // UNIT: FALSE
        // DOCS: FALSE
        this.material = material
    }
 
    getVertex(index){
        // CODE: INCOMPLETE
        // UNIT: FALSE
        // DOCS: FALSE
        return this.vertices[index]
    }
 
    getVertices(){
        // CODE: INCOMPLETE
        // UNIT: FALSE
        // DOCS: FALSE
        return this.vertices
    }
 
    getMaterial(){
        // CODE: INCOMPLETE
        // UNIT: FALSE
        // DOCS: FALSE
        return this.material
    }
 
    getVertexCount(){
        // CODE: INCOMPLETE
        // UNIT: FALSE
        // DOCS: FALSE
        return this.vertices.length
    }
 
 
}
 
 
class Triplet {
    constructor(v1, v2, v3){
        // CODE: INCOMPLETE
        // UNIT: FALSE
        // DOCS: FALSE
        this.v1 = v1
        this.v2 = v2
        this.v3 = v3
        this.normal = new Vector3(0, 0, 1)
        this.surfaceNormal()
    }
 
    surfaceNormal(){
        // CODE: INCOMPLETE
        // UNIT: FALSE
        // DOCS: FALSE
        const b = this.v2.position.sub(this.v1.position)
        const c = this.v3.position.sub(this.v1.position)
        this.normal = b.cross(c).normalize()
    }
}
 
 
export { Mesh, Triplet }