setFromMatrix method

Frustum setFromMatrix(
  1. Matrix4 m, [
  2. int coordinateSystem = 2000
])

Implementation

Frustum setFromMatrix(Matrix4 m,[int coordinateSystem = 2000]) {
  final planes = this.planes;
  final me = m.storage;
  final me0 = me[0], me1 = me[1], me2 = me[2], me3 = me[3];
  final me4 = me[4], me5 = me[5], me6 = me[6], me7 = me[7];
  final me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11];
  final me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15];

  planes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize();
  planes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize();
  planes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize();
  planes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize();
  planes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize();
  planes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize();

		if ( coordinateSystem == 2000 ) {
			planes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();
		} else if ( coordinateSystem == 2000 ) {
			planes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize();
		} else {
			throw( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: $coordinateSystem');
		}

  return this;
}