AttachNodeObject() Error
Posted: Sat Feb 16, 2013 12:14 am
AttachNodeObject(#MyNode, EntityID(#MyEnt))
I'm getting a compiler error: [ERROR] The specified #Entity is not initialised
Is this because FinishMesh() should be #True? Edit: Nope, see notes below!
Example:
EDIT: With invaluable help from Thade, I can see I have been flumuxed by the Help description for MeshFace, which is shown as: MeshFace(Vertex1, Vertex2, Vertex3). In fact, they are not Vertex Values (xyz) but the Index numbers identifying pre-defined Vertices. So, modified code above does run without a crash. Can't actually see entity though......
I'm getting a compiler error: [ERROR] The specified #Entity is not initialised
Is this because FinishMesh() should be #True? Edit: Nope, see notes below!
Example:
Code: Select all
IncludeFile "C:\Program Files\PureBasic510\Examples\3D\Screen3DRequester.pb"
Enumeration
#MyMesh
#MyMatl
#MyEnt
#MyNode
#MyCamera
#MyLight
#MyTexture
EndEnumeration
#CameraSpeed = 2
NewList sgListPts.s()
sgDelim.s = Chr(44)
igFaceCnt.i = 0
Define iKeyX.i, iKeyY.i, iMouseX.i, iMouseY.i
Restore MeshPoints
For i = 1 To 36
AddElement(sgListPts())
Read.s sgListPts()
Next i
If InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
Add3DArchive("C:\PROJECTS_DrvC\Prof STL To Point Cloud\Scripts", #PB_3DArchive_FileSystem)
Add3DArchive("C:\Documents and Settings\ChrisW\Application Data\ProfessorCad\Prof STL To Point Cloud\Texture", #PB_3DArchive_FileSystem)
Parse3DScripts()
If Screen3DRequester()
;CreateTexture(#MyTexture, 16, 16)
LoadTexture(#MyTexture, "Blue.png")
CreateMaterial(#MyMatl, TextureID(#MyTexture))
;GetScriptMaterial(#MyMatl, "ColorBlue/Blue")
MaterialCullingMode(#MyMatl, #PB_Material_NoCulling)
CreateMesh(#MyMesh, #PB_Mesh_TriangleList, #PB_Mesh_Static)
FirstElement(sgListPts())
i = 0
Repeat
MeshVertexPosition(ValD(StringField(sgListPts(),1,sgDelim)),ValD(StringField(sgListPts(),2,sgDelim)),ValD(StringField(sgListPts(),3,sgDelim)))
NextElement(sgListPts())
MeshVertexPosition(ValD(StringField(sgListPts(),1,sgDelim)),ValD(StringField(sgListPts(),2,sgDelim)),ValD(StringField(sgListPts(),3,sgDelim)))
NextElement(sgListPts())
MeshVertexPosition(ValD(StringField(sgListPts(),1,sgDelim)),ValD(StringField(sgListPts(),2,sgDelim)),ValD(StringField(sgListPts(),3,sgDelim)))
NextElement(sgListPts())
MeshFace(i, i + 1, i + 2)
igFaceCnt = igFaceCnt + 1
i = i + 3
Until i > 34
FinishMesh(#True)
SetMeshMaterial(#MyMesh, MaterialID(#MyMatl))
CreateEntity(#MyEnt, MeshID(#MyMesh), MaterialID(#MyMatl), 0, 0, 0)
CreateNode(#MyNode)
AttachNodeObject(#MyNode, EntityID(#MyEnt))
;Camera
CreateCamera(#MyCamera, 0, 0, 100, 100)
MoveCamera(#MyCamera,0,0,500, #PB_Absolute)
CameraLookAt(#MyCamera, 0, 50, 0)
CameraFixedYawAxis(#MyCamera, #True, 0, 1, 0)
CameraBackColor(#MyCamera, RGB(35, 35, 35))
;Light
CreateLight(#MyLight, RGB(255, 255, 255), 20, 150, 120)
AmbientColor(RGB(90, 90, 90))
Repeat
Screen3DEvents()
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
iKeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right)
iKeyX = #CameraSpeed
Else
iKeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
iKeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
iKeyY = #CameraSpeed
Else
iKeyY = 0
EndIf
EndIf
If ExamineMouse()
iMouseX = -(MouseDeltaX()/10)
iMouseY = -(MouseDeltaY()/10)
EndIf
;MoveCamera(#MyCamera, iKeyX, 0, iKeyY)
RotateCamera(#MyCamera, 0, 0.1, 0, #PB_Relative)
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
EndIf
EndIf
End
DataSection
MeshPoints:
;01
Data$ "50.0000,50.0000,-50.0000"
Data$ "-50.0000,-50.0000,-50.0000"
Data$ "-50.0000,50.0000,-50.0000"
;02
Data$ "50.0000,50.0000,-50.0000"
Data$ "50.0000,-50.0000,-50.0000"
Data$ "-50.0000,-50.0000,-50.0000"
;03
Data$ "50.0000,50.0000,50.0000"
Data$ "-50.0000,50.0000,50.0000"
Data$ "-50.0000,-50.0000,50.0000"
;04
Data$ "50.0000,50.0000,50.0000"
Data$ "-50.0000,-50.0000,50.0000"
Data$ "50.0000,-50.0000,50.0000"
;05
Data$ "50.0000,-50.0000,50.0000"
Data$ "-50.0000,-50.0000,50.0000"
Data$ "-50.0000,-50.0000,-50.0000"
;06
Data$ "50.0000,-50.0000,50.0000"
Data$ "-50.0000,-50.0000,-50.0000"
Data$ "50.0000,-50.0000,-50.0000"
;07
Data$ "50.0000,50.0000,50.0000"
Data$ "50.0000,-50.0000,50.0000"
Data$ "50.0000,-50.0000,-50.0000"
;08
Data$ "50.0000,50.0000,50.0000"
Data$ "50.0000,-50.0000,-50.0000"
Data$ "50.0000,50.0000,-50.0000"
;09
Data$ "-50.0000,50.0000,50.0000"
Data$ "50.0000,50.0000,50.0000"
Data$ "50.0000,50.0000,-50.0000"
;10
Data$ "-50.0000,50.0000,50.0000"
Data$ "50.0000,50.0000,-50.0000"
Data$ "-50.0000,50.0000,-50.0000"
;11
Data$ "-50.0000,-50.0000,50.0000"
Data$ "-50.0000,50.0000,50.0000"
Data$ "-50.0000,50.0000,-50.0000"
;12
Data$ "-50.0000,-50.0000,50.0000"
Data$ "-50.0000,50.0000,-50.0000"
Data$ "-50.0000,-50.0000,-50.0000"
EndDataSection


