Ok, so thanks for the info on vertex normals.
So here's the code I have so far but it's not working properly. It should add 3 vertices to the object however it isn't working properly. It seems to delete all the indices and add 15 vertices.
Rem Project: Dark Basic Pro Project
Rem Created: Thursday, April 28, 2011
Rem ***** Main Source File *****
Backdrop off
Make object cube 1,1
Make object cube 2,1
Make mesh from object 1,1
AddFaceToMEsh(1, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0)
delete object 1
make object 1,1,0
Lock vertexdata for mesh 1
TExt 0,0,"Vertice count: "+Str$(GEt vertexdata vertex count())
TExt 0,10,"Indice count: "+Str$(GEt vertexdata index count())
Unlock vertexdata
wait key
end
Function AddFaceToMesh(Mesh, X1#,Y1#,Z1#, X2#,Y2#,Z2#,X3#,Y3#,Z3#, NX#,NY#,NZ#, U#,V#)
Mem=FreeMem()
Make memblock from mesh Mem,Mesh
Mem2=FreeMem()
Make memblock Mem2,(Get Memblock size(Mem)+108)
Write Memblock dword Mem2,0,memblock dword(Mem,0)
Write Memblock dword Mem2,4,memblock dword(Mem,4)
Write Memblock dword Mem2,8,memblock dword(Mem,8)+3
For Pos=12 to get memblock size(Mem)-72 step 36
For Off=0 to 5
Write memblock float Mem2,Pos+Off*4,Memblock float(Mem,Pos+Off*4)
Next Off
Write memblock dword Mem2,Pos+24,Memblock dword(Mem,Pos+24)
Write memblock float Mem2,Pos+28,Memblock float(Mem,Pos+28)
Write memblock float Mem2,Pos+32,Memblock float(Mem,Pos+32)
NEXT Pos
Pos=Pos+36
Write memblock float Mem2,Pos,X1# : Write memblock float Mem2,Pos+4,Y1# : Write memblock float Mem2,Pos+8,Z1#
Write Memblock float Mem2,Pos+12,NX# : Write Memblock float Mem2,Pos+16,NY# : Write Memblock float Mem2,Pos+20,NZ#
write memblock dword Mem2,Pos+24,rgb(255,255,255)
Write memblock float Mem2,Pos+28,U# : Write memblock float Mem2,Pos+32,V#
Pos=Pos+36
Write memblock float Mem2,Pos,X2# : Write memblock float Mem2,Pos+4,Y2# : Write memblock float Mem2,Pos+8,Z2#
Write Memblock float Mem2,Pos+12,NX# : Write Memblock float Mem2,Pos+16,NY# : Write Memblock float Mem2,Pos+20,NZ#
write memblock dword Mem2,Pos+24,rgb(255,255,255)
Write memblock float Mem2,Pos+28,U# : Write memblock float Mem2,Pos+32,V#
Pos=Pos+36
Write memblock float Mem2,Pos,X3# : Write memblock float Mem2,Pos+4,Y3# : Write memblock float Mem2,Pos+8,Z3#
Write Memblock float Mem2,Pos+12,NX# : Write Memblock float Mem2,Pos+16,NY# : Write Memblock float Mem2,Pos+20,NZ#
write memblock dword Mem2,Pos+24,rgb(255,255,255)
Write memblock float Mem2,Pos+28,U# : Write memblock float Mem2,Pos+32,V#
Delete Mesh Mesh
Make mesh from memblock Mesh,Mem2
Delete memblock Mem
Delete memblock Mem2
`NewVertBytes=12+VertTotal*36
`Write memblock byte Mem2,NewVertBytes,X1#
`Write memblock byte Mem2,NewVertBytes+4,Y1#
`Write memblock byte Mem2,NewVertBytes+8,Z1#
ENDFUNCTION
Function FreeMem()
i=1
while memblock exist(i)>0
inc i
endwhile
ENDFUNCTION i
Function FreeObj()
i=1
while object exist(i)>0
inc i
endwhile
ENDFUNCTION i
