Exemplo n.º 1
0
void CFieldCache::invalidate(VOL::CVolumeBox &box)
{
        vec3f lo = box.lower();
        vec3f hi = box.upper();
		
	VOL::CVolumeBox TransformBox(lo - m_origin, hi - m_origin);
	m_pCache->Invalidate(TransformBox);
}
Exemplo n.º 2
0
/*!
	@function	TransformGeometry
	
	@abstract	Apply a matrix transform to a geometry.
	
	@discussion	Not all types of geometries are handled yet.
	
	@param		inMatrix	A matrix.
	@param		ioGeom		A geometry object.
	
	@result		Success or failure of the operation.
*/
TQ3Status	TransformGeometry( const TQ3Matrix4x4* inMatrix,
								TQ3GeometryObject ioGeom )
{
	TQ3Status	success = kQ3Success;
	
	switch (Q3Object_GetLeafType( ioGeom ))
	{
		case kQ3GeometryTypeBox:
			TransformBox( inMatrix, ioGeom );
			break;
		
		case kQ3GeometryTypeCone:
			TransformCone( inMatrix, ioGeom );
			break;
			
		case kQ3GeometryTypeCylinder:
			TransformCylinder( inMatrix, ioGeom );
			break;
			
		case kQ3GeometryTypeDisk:
			TransformDisk( inMatrix, ioGeom );
			break;
			
		case kQ3GeometryTypeEllipsoid:
			TransformEllipsoid( inMatrix, ioGeom );
			break;
			
		case kQ3GeometryTypePoint:
			TransformPoint( inMatrix, ioGeom );
			break;
			
		case kQ3GeometryTypePolyLine:
			TransformPolyLine( inMatrix, ioGeom );
			break;
			
		case kQ3GeometryTypeLine:
			TransformLine( inMatrix, ioGeom );
			break;
			
		case kQ3GeometryTypePolygon:
			TransformPolygon( inMatrix, ioGeom );
			break;
			
		case kQ3GeometryTypeGeneralPolygon:
			TransformGeneralPolygon( inMatrix, ioGeom );
			break;
			
		case kQ3GeometryTypeTriMesh:
			TransformTriMesh( inMatrix, ioGeom );
			break;
		
		case kQ3GeometryTypeTriangle:
			TransformTriangle( inMatrix, ioGeom );
			break;
			
		default:
			success = kQ3Failure;
			break;
	}
	
	return success;
}