docs: private void initializeProjective3(FastQueue<AssociatedTriple> associated ,
  									   FastQueue<AssociatedTripleIndex> associatedIdx ,
  									   int totalViews,
  									   View viewA , View viewB , View viewC ,
  									   int idxViewB , int idxViewC ) {
  		ransac.process(associated.toList());
  
  		List<AssociatedTriple> inliers = ransac.getMatchSet();
  		TrifocalTensor model = ransac.getModelParameters();
  		if( verbose != null )
  			verbose.println("Remaining after RANSAC "+inliers.size()+" / "+associated.size());
  
  		// projective camera matrices for each view
  		DMatrixRMaj P1 = CommonOps_DDRM.identity(3,4);
  		DMatrixRMaj P2 = new DMatrixRMaj(3,4);
  		DMatrixRMaj P3 = new DMatrixRMaj(3,4);
  
  		MultiViewOps.extractCameraMatrices(model,P2,P3);
  
  		// Initialize the 3D scene structure, stored in a format understood by bundle adjustment
  		structure.initialize(totalViews,inliers.size());
  
  		// specify the found projective camera matrices
  		db.lookupShape(viewA.id,shape);
  		// The first view is assumed to be the coordinate system's origin and is identity by definition
  		structure.setView(0,true, P1,shape.width,shape.height);
  		db.lookupShape(viewB.id,shape);
  		structure.setView(idxViewB,false,P2,shape.width,shape.height);
  		db.lookupShape(viewC.id,shape);
  		structure.setView(idxViewC,false,P3,shape.width,shape.height);
  
  		// triangulate homogenous coordinates for each point in the inlier set
  		triangulateFeatures(inliers, P1, P2, P3);
  
  		// Update the list of common features by pruning features not in the inlier set
  		seedToStructure.resize(viewA.totalFeatures);
  		seedToStructure.fill(-1); // -1 indicates no match
  		inlierToSeed.resize(inliers.size());
  		for (int i = 0; i < inliers.size(); i++) {
  			int inputIdx = ransac.getInputIndex(i);
  
  			// table to go from inlier list into seed feature index
  			inlierToSeed.data[i] = matchesTripleIdx.get(inputIdx).a;
  			// seed feature index into the ouptut structure index
  			seedToStructure.data[inlierToSeed.data[i]] = i;
  		}
  	}