Example #1
0
	// 
	public void Perform( ECsgOperation inOper, CSGObject inMaster, CSGObject inSlave )
	{
		// we are processing our slave faces
		processState = EProcessState.Process_Slave;
		
		// process faces against master tree
		PerformFaces( inMaster.rootNode, inSlave.faces );
		
		// process face from master tree
		processState = EProcessState.Process_Master;
		
		// perform master faces on slave bsp tree
		PerformTree( inMaster.rootNode, inSlave.rootNode );
		
		// check if how do we need to process generated faces
		if( inOper == ECsgOperation.CsgOper_Additive || inOper == ECsgOperation.CsgOper_Subtractive )
		{
			// add deferred faces to master tree...
			for( int i = 0; i < deferredFaces.Count; i++ )
			{
				Face defFace = ((DeferredFace)deferredFaces[i]).face;
				BspNode startNode = ((DeferredFace)deferredFaces[i]).node;
				
				// testing
				startNode = inMaster.rootNode;
				// add node to master tree
				BspGen.AddNodeRecursive( startNode, defFace, BspNode.BspFlags_IsNew );
			}
		}
		else
		{
			// clear old faces list
			inMaster.faces.Clear();
			
			// copy created faces
			for( int i = 0; i < deferredFaces.Count; i++ )
			{
				inMaster.faces.Add( deferredFaces[i].face );
			}
			
		}
		
		// clear deferred faces
		deferredFaces.Clear();
		
	}
Example #2
0
        //
        public void Perform(ECsgOperation inOper, CSGObject inMaster, CSGObject inSlave)
        {
            // we are processing our slave faces
            processState = EProcessState.Process_Slave;

            // process faces against master tree
            PerformFaces(inMaster.rootNode, inSlave.faces);

            // process face from master tree
            processState = EProcessState.Process_Master;

            // perform master faces on slave bsp tree
            PerformTree(inMaster.rootNode, inSlave.rootNode);

            // check if how do we need to process generated faces
            if (inOper == ECsgOperation.CsgOper_Additive || inOper == ECsgOperation.CsgOper_Subtractive)
            {
                // add deferred faces to master tree...
                for (int i = 0; i < deferredFaces.Count; i++)
                {
                    Face    defFace   = ((DeferredFace)deferredFaces[i]).face;
                    BspNode startNode = ((DeferredFace)deferredFaces[i]).node;

                    // testing
                    startNode = inMaster.rootNode;
                    // add node to master tree
                    BspGen.AddNodeRecursive(startNode, defFace, BspNode.BspFlags_IsNew);
                }
            }
            else
            {
                // clear old faces list
                inMaster.faces.Clear();

                // copy created faces
                for (int i = 0; i < deferredFaces.Count; i++)
                {
                    inMaster.faces.Add(deferredFaces[i].face);
                }
            }

            // clear deferred faces
            deferredFaces.Clear();
        }