| Well, this is really about polling opinions [not just yays and nays] to get a basis on which to make design decisions in future APIs and modules. But it's also always interesting to listen to the the individual experiences on these sort of design philosophy issues.. 
 Thats basically what its all about:
 Would you prefer this..
 
 
' that would be somewhere on API side
Type TColladaLoaderInterface Abstract
	Method CreateTriangle( object, x1, x2, x3, y1, y2, y3, z1, z2, z3 ) Abstract
	Method CreateObject( name, parent ) Abstract
'	Method ... Abstract
End Type
' that would be in your engine or application
Type TMyEngineColladaLoaderInterface Extends TColladaLoaderInterface
	
	Method CreateTriangle( object, x1, x2, x3, y1, y2, y3, z1, z2, z3 )
		MyEngine.CreateTri ...
	End Method
	Method CreateObject( name, parent )
		MyEngine.CreateObject ...
	End Method
End Type
 ... or this ...
 
 
' that would be somewhere on API side
Function initColladaLoader( tri_callback_:Int(object, x1, x2, x3, y1, y2, y3, z1, z2, z3), object_callback_:Int(name, parent) )
'	...
End Function
' that would be in your engine/application
Function CreateTriangle( object, x1, x2, x3, y1, y2, y3, z1, z2, z3 )
	MyEngine.CreateTri ...
End Function
Function CreateObject( name, parent )
	MyEngine.CreateObject ...
End Function
initColladaLoader CreateTriangle, CreateObject
 ...?
 
 
 |