miniB3D extended 0.41

BlitzMax Modules Forums/MiniB3D/miniB3D extended 0.41

Hello, after a long time I'm now offering the new extended Version based on SimonH 0.41 Version.

Here is a complete list of the additional Functions:
InitShader(Bru:TBrush)
AddShaderObject(bru:TBrush , vert:String = Null , frag:String = Null)
ListShaders(bru:TBrush)
ShaderActivate(bru:TBrush)
ShaderDeActivate(bru:TBrush)
ProgramAttriBegin(bru:TBrush)
ProgramAttriEnd(bru:TBrush)
SetUI1(bru:TBrush , Name:String , para:Int)
SetUI2(bru:TBrush , Name:String , para:Int , para1:Int)
SetUI3(bru:TBrush , Name:String , para:Int , para1:Int , para2:Int)
SetUI4(bru:TBrush , Name:String , para:Int , para1:Int , para2:Int , para3:Int)
SetUF1(bru:TBrush , Name:String , para:Float)
SetUF2(bru:TBrush , Name:String , para:Float, para1:Float)
SetUF3(bru:TBrush , Name:String , para:Float, para1:Float, para2:Float)
SetUF4(bru:TBrush , Name:String , para:Float, para1:Float, para2:Float, para3:Float)
SetAF1(bru:TBrush , Name:String , para:Float)
SetAF2(bru:TBrush , Name:String , para:Float, para1:Float)
SetAF3(bru:TBrush , Name:String , para:Float, para1:Float, para2:Float)
SetAF4(bru:TBrush , Name:String , para:Float, para1:Float, para2:Float, para3:Float)
SetAS1(bru:TBrush , Name:String , para:Short)
SetAS2(bru:TBrush , Name:String , para:Short , para1:Short)
SetAS3(bru:TBrush , Name:String , para:Short , para1:Short , para2:Short)
SetAS4(bru:TBrush , Name:String , para:Short , para1:Short , para2:Short , para3:Short)
SetAD1(bru:TBrush , Name:String , para:Double)
SetAD2(bru:TBrush , Name:String , para:Double, para1:Double)
SetAD3(bru:TBrush , Name:String , para:Double, para1:Double, para2:Double)
SetAD4(bru:TBrush , Name:String , para:Double, para1:Double, para2:Double, para3:Double)
SetM2(bru:TBrush , Name:String , Matrix:Float[,] , Trans:Int)
SetM3(bru:TBrush , Name:String , Matrix:Float[,] , Trans:Int)
SetM4(bru:TBrush , Name:String , Matrix:Float[,] , Trans:Int)
BrushShaderTexture(bru:TBrush , texture:TTexture , index = 0)
ActivateShader(Ent:Tentity,mode:Byte = False)
EntityShaderTexture(ent:Tentity , texture:TTexture , Frame = 0 , index = 0)
TrisRendered:Int()
UpdateVBOBuffer(Mesh:TMesh)
LoadMD2:TMesh(Url:Object)
AnimateMD2(MD2:TMesh , mode:Int = 1 , Speed:Float = 1.0 , Start_frame:Int = 0 , Last_Frame:Int = - 1 , Transition:Float = 0.0)
MD2AnimTime:Float(md2:TMesh)
MD2AnimLength:Int(md2:TMesh)
MD2Animating:Byte(md2:TMesh)
MD2AnimSpeed(md2:TMesh , Speed:Float)
ShowShadow(Active:Byte)
SetShadowMode(ZMode:Int = 1 , SRender:Int = 0)
EntityShadow(MEsh:TMesh , Light:TLight)
SetClippingPlane(X:Float , Y:Float , Z:Float , NX:Float , NY:Float , NZ:Float , Clip:Int = 0 , Camera:TCamera = Null)
DeactivateClippingPlane(Clip:Int = 0)
BackBufferToTexExt(tex:TTexture , Buffer:Int = GL_DEPTH_COMPONENT)
VectorDistance:Float(Entity:TEntity,Vector:TVector)
LoadTerrain:TTerrain(URL:String,Chunksize:Int = 64)
PositionTerrain(Terrain:TTerrain , X:Float , Y:Float , Z:Float)
ScaleTerrain(Terrain:TTerrain , X:Float , Y:Float , Z:Float)
TextureTerrain(Terrain:TTerrain , File:String , Layer:Int = 0)
TerrainY(Terrain:TTerrain,X:Float,Y:Float,Z:Float,Mode:Int = 1)
init:TPhysic()
SetWorldSize(World:TPhysic,V1:TVector,V2:TVector)
SetPhysicModel(World:TPhysic,SolverModel:Int,FrictionModel:Int)
PhysicUpdate(World:TPhysic,UpTime:Float = - 1.0)
AddPhysicMaterial(World:TPhysic,Material:TPhysicMaterial)
BuildPhysicMaterialLibraries(World:TPhysic,BuildOption:Int = PHYS_MATERIAL_AVERAGE)
SetPhysicMaterialCollision(World:TPhysic,M1:Object,M2:Object,state:Int = 1)
AddNewtonObject(World:TPhysic,NO:TNewtonObject)
GetNode:Byte Ptr(World:TPhysic,mesh:TEntity)
GetPhysicTime:Float(World:TPhysic)
GetActiveBodyCount:Int(World:TPhysic)
GetUnActiveBodyCount:Int(World:TPhysic)
ApplyImpulse(World:TPhysic,mesh:TEntity,impactX:Float,ImpactY:Float,ImpactZ:Float,ForceX:Float,ForceY:Float,ForceZ:Float)
SetDefaultElasticity(World:TPhysic,Value:Float)
SetDefaultFriction(World:TPhysic,staticFriction:Float,kineticfriction:Float)
SetDefaultSoftiness(World:TPhysic,Value:Float)
SetBodyMaterial(World:TPhysic,NObject:TNewtonObject,MAterial:Object)
SetCollisionMode(World:TPhysic,Material1:Object,Material2:Object,Mode:Int = PHYS_NORMAL_COLLISION)
DestroyBody(World:TPhysic,mesh:TMesh)
SetConstraitCollisionState(Constrait:TConStrait,state:Int = 0)
SetConstraitStiffness(Constrait:TConStrait,stiffiness:Float)
GetConstraitStiffiness:Float(Constrait:TConStrait)
Destroy(Constrait:TConStrait)
CreateBallConstrait:TBallConstrait(WorldPosition:TVector,body0:TNewtonObject,body1:TNewtonObject)
BallConstraitSetConeLimits(BallConstrait:TBallConStrait,Vector:TVector,maxConeAngle:Float,MaxTwistAngle:Float)
BallConstraitGetForce:TVector(BallConstrait:TBallConStrait)
ContactInfo(Info:TContactInfo)
OverrideElasticity(Contactinfo:TContactInfo,value:Float)
OverrideFrictionState(Contactinfo:TContactInfo,state:Int , id:Int = 0)
OverrideSoftness(Contactinfo:TContactInfo,Value:Float)
OverrideStaticFriction(Contactinfo:TContactInfo,Value:Float,id:Int=0)
OverrideKineticFriction(Contactinfo:TContactInfo,Value:Float,id:Int = 0)
OverrideNormalAcceleration(Contactinfo:TContactInfo,value:Float)
OverrideNormalDirection(Contactinfo:TContactInfo,Value:TVector)
OverrideTangentAcceleration(Contactinfo:TContactInfo,Value:Float,id:Int = 0)
PhysicObjectCreate:TNewtonObject(Mesh:TMesh,T:Int = 0)
PhxObjOmegaToString:String(NewtonObject:TNewtonObject)
PhxObjVelocityToString:String(NewtonObject:TNewtonObject)
PhxObjGetVelocity:TVector(NewtonObject:TNewtonObject)
PhxObjGetPosition:TVector(NewtonObject:TNewtonObject)
PhxObjSetRotation(NewtonObject:TNewtonObject,Pitch# , Roll# , Yaw#)
PhxObjSetMass(NewtonObject:TNewtonObject,Mass:Float)
PhxObjSetCollisionMode(NewtonObject:TNewtonObject,Mode:Int = PHYS_NORMAL_COLLISION)
PhxObjSetAutoSleep(NewtonObject:TNewtonObject,State:Int = 1)
PhxObjSetSleepTreshold(NewtonObject:TNewtonObject,speedmag:Float,omegamag:Float,frames:Int)
PhxObjSetUserForceCallback(NewtonObject:TNewtonObject,Callback(NewtonObject:TNewtonObject))
PhxObjGetRotation:String(NewtonObject:TNewtonObject)
CreatePhysicMaterial:TPhysicMaterial(Name:String)
PhxMaterialSetFriction(PhysicMaterial:TPhysicMaterial,staticFriction:Float,KineticFriction:Float)
PhxMaterialSetSoftness(PhysicMaterial:TPhysicMaterial,Softness:Float)
PhxMaterialSetElasticity(PhysicMaterial:TPhysicMaterial,Elasticity:Float)
ListenerHook:Object( id , data:Object , context:Object )
EmitSound(Sound:T3DSound , Entity:TEntity)
PlayMusic(Sound:T3DSound , Loop:Byte = False)
CreateListener(Entity:TEntity)
Audio3DDrives:String[]()
SetAudio3DDriver(Driver:String)
Load3DSound:T3DSound(url:Object)
UpdateParticleSystem(Camera:TCamera , DeltaTime:Float = 1.0)
GetParticleCount:Int()
GetEmitterCount:Int()
AddEmitter:TEmitter(Emitter:TEmitter)
AddExistingEmitter(Emitter:Temitter)
CreateEmitter:TEmitter()
CopyEmitter:Temitter(Emitter:TEmitter)
EmitterIgnoreGravity(Emitter:TEmitter , State:Byte = False)
SetEmitterType(Emitter:Temitter , _Type:Int = 0)
SetParticleType(Emitter:TEmitter , _Type:Int = EMITTER_SPRITE)
SetEmitterDelay(Emitter:TEmitter , _Delay:Int = 0)
SetEmitterStartDelay(Emitter:TEmitter , _Delay:Int = 0)
SetEmitterParticleRate(Emitter:TEmitter , Rate:Int = 0)
SetEmitterLife(Emitter:TEmitter , Life:Int = 0)
SetEmitterPosition(Emitter:TEmitter , X:Float , Y:Float , Z:Float)
SetEmitterParent(Emitter:Temitter , Parent:TEntity = Null)
SetParticleVelocity(Emitter:TEmitter , VX1:Float , VY1:Float , VZ1:Float , VX2:Float , VY2:Float,VZ2:Float)
SetParticleRotation(Emitter:TEmitter , VX1:Float , VY1:Float , VZ1:Float , VX2:Float , VY2:Float,VZ2:Float)
SetParticleAlpha(Emitter:TEmitter , Alpha1:Float , Alpha2:Float)
SetParticleLife(Emitter:Temitter , Life1:Int , Life2:Int)
SetParticleStartColor(Emitter:Temitter , R:Int , G:Int , B:Int)
SetParticleEndColor(Emitter:Temitter , R:Int , G:Int , B:Int)
AddExtraEmitter(Emitter:Temitter , ExEmitter:TEmitter)
SetDeathEmitter(Emitter:TEmitter , DeathEmitter:TEmitter)
SetParticleScale(Emitter:Temitter , XS1:Float = 1 , YS1:Float = 1 , ZS1:Float = 1 , XS2:Float = 1 , YS2:Float = 1 , ZS2:Float = 1 , XE1:Float = 1 , YE1:Float = 1 , ZE1:Float = 1 , XE2:Float = 1 , YE2:Float = 1 , ZE2:Float = 1)
SetParticleBlendmode(Emitter:TEmitter , Mode:Int)
SetParticleTexture(Emitter:Temitter , Texture:TTexture)
SetParticleEntity(Emitter:TEmitter , Entity:TEntity)
SetColorGradient(Emitter:Temitter , R1:Int , G1:Int , B1:Int , R2:Int , G2:Int , B2:Int)
SetParticleWhirl(Emitter:Temitter , XS:Float = 0 , YS:Float = 0 , ZS:Float = 0 , XE:Float = 0 , YE:Float = 0 , ZE:Float = 0)
CanvasGraphics3D(Canvas:TGadget)
UpdateCanvas3D(Canvas:TGadget)
MeshUseVBO(Mesh:TMesh , State:Byte)
EntityRenderMode(Entity:TEntity , Mode:Int = RENDER_FULL)


Overall New Functions: 145


The Download links are : http://rapidshare.com/files/29849861/miniB3Dext041beta.zip
www.ironstorm-studios.net/minib3d/miniB3Dext041beta.zip
http://www.sherrox.com/miniB3Dext041beta.zip

Also it is available via syncmods under the german modserver located at btbn.de/ModServer/
just add this url to the BMax modserver.cfg and run
syncmods -u username -p pass klepto

(sorry for the rapidshare host but I have currently no alternative)

there are 4 small samples for Terrain,Shader,Shadow and Physics included. it is precompiled for Win but should compile fine on Mac and Linux.
The Package contains 3 Modules:
1. klepto.minib3d --> Main Module
2. klepto.minib3dparticles --> Particle Extension
3. klepto.minisound3D --> OpenAL 3D Sound Extension

Well the samples are a bit poor but I'm working on some more
to present some particle functions and some extended Physics thingies with callbacks etc.

so enjoy !