code: public static TrifocalTensor createTrifocal( Se3_F64 P2 , Se3_F64 P3 ,
  												 @Nullable TrifocalTensor ret ) {
  		if( ret == null )
  			ret = new TrifocalTensor();
  
  		DMatrixRMaj R2 = P2.getR();
  		DMatrixRMaj R3 = P3.getR();
  		Vector3D_F64 T2 = P2.getT();
  		Vector3D_F64 T3 = P3.getT();
  
  		for( int col = 0; col < 3; col++ ) {
  			DMatrixRMaj T = ret.getT(col);
  
  			int index = 0;
  			for( int i = 0; i < 3; i++ ) {
  				double a_left = R2.unsafe_get(i,col);
  				double a_right = T2.getIdx(i);
  
  				for( int j = 0; j < 3; j++ ) {
  					T.data[index++] = a_left*T3.getIdx(j) - a_right*R3.unsafe_get(j,col);
  				}
  			}
  		}
  
  		return ret;
  	}
docs: <p>
  Creates a trifocal tensor from two rigid body motions.  This is for the calibrated camera case.
  </p>
  
  <p>
  NOTE: View 1 is the world coordinate system, i.e. [I|0]
  </p>
  
  @param P2 Transform from view 1 to view 2.
  @param P3 Transform from view 1 to view 3.
  @param ret Storage for trifocal tensor.  If null a new instance will be created.
  @return The trifocal tensor