hitFace(face, velocity) {
    const { _force } = this
    _force.op_mul(0)
    _force.op_add(face.m_normal)
    _force.op_div(_force.length() || 1) // safe normalize
    _force.op_mul(face.m_ra)
    _force.op_mul(_force.dot(velocity)) // orthogonality
    _force.op_div(3)
    face.get_m_n(0).m_f.op_add(_force)
    face.get_m_n(1).m_f.op_add(_force)
    face.get_m_n(2).m_f.op_add(_force)
  }
//  F = normal * area * orthogonal velocity
F = normal * area * orthogonal velocity
F = normal * area * orthogonal velocity
hitFace(face, velocity) {
    const { _force } = this
    _force.op_mul(0)
    _force.op_add(face.m_normal)
    _force.op_div(_force.length() || 1) 
    _force.op_mul(face.m_ra)
    _force.op_mul(_force.dot(velocity)) 
    _force.op_div(3)
    face.get_m_n(0).m_f.op_add(_force)
    face.get_m_n(1).m_f.op_add(_force)
    face.get_m_n(2).m_f.op_add(_force)
  }
hitFace ( face , velocity ) { const { _force } = this _force . op_mul ( 0 ) _force . op_add ( face . m_normal ) _force . op_div ( _force . length ( ) || 1 ) _force . op_mul ( face . m_ra ) _force . op_mul ( _force . dot ( velocity ) ) _force . op_div ( 3 ) face . get_m_n ( 0 ) . m_f . op_add ( _force ) face . get_m_n ( 1 ) . m_f . op_add ( _force ) face . get_m_n ( 2 ) . m_f . op_add ( _force ) }
F = normal * area * orthogonal velocity
F = normal * area * orthogonal velocity
// safe normalize // orthogonality