OpenGL leveleditor, help me please(objectproblem)
Posted: Mon Jun 02, 2003 9:27 am
Hello,
I have made a small OpenGL LevelEditortest, but it doesn't make the cube on the right position:
Please, can you help me?
cu
Daniel
I have made a small OpenGL LevelEditortest, but it doesn't make the cube on the right position:
Code: Select all
#GL_COLOR_BUFFER_BIT = $00004000
#GL_TRIANGLES = $0004
#GL_QUADS = $0007
#Window_0 = 0
#Window_1 = 1
#Gadget_0 = 0
#Gadget_1 = 1
#Gadget_2 = 2
#Gadget_3 = 3
#Gadget_4 = 4
#Gadget_5 = 5
#Gadget_6 = 6
Procedure DrawTriangle(ID, X, Y, Z, Size)
OpenFile(0, "curlev")
FileSeek(Lof())
WriteStringN("Cube,"+Str(X)+","+Str(Y)+","+Str(Z)+","+Str(Size))
CloseFile(0)
EndProcedure
Procedure Update()
OpenFile(0, "curlev")
While Eof(0) = 0
String$ = ReadString()
If StringField(String$, 1, ",") = "Cube"
Wert1 = ValF(StringField(String$, 2, ","))
Wert2 = ValF(StringField(String$, 3, ","))
Wert3 = ValF(StringField(String$, 4, ","))
Size = ValF(StringField(String$, 4, ","))
SizeZ1 = Size-0.25
SizeZ2 = Size+0.25
glClear_(#GL_COLOR_BUFFER_BIT)
glBegin_(#GL_QUADS)
;Front Back
glColor4f_(0.0, 0.0, 1.0, 1.0)
glNormal3f_ (0, 0, 1.0)
glVertex3f_(Size+0.25, Size+0.25, SizeZ1)
glVertex3f_(Size-0.25, Size+0.25, SizeZ1)
glVertex3f_(Size-0.25, Size-0.25, SizeZ1)
glVertex3f_(Size+0.25, Size-0.25, SizeZ1)
glNormal3f_ (0, 0, -1.0)
glVertex3f_(Size+0.25, Size+0.25, SizeZ2)
glVertex3f_(Size-0.25, Size+0.25, SizeZ2)
glVertex3f_(Size-0.25, Size-0.25, SizeZ2)
glVertex3f_(Size+0.25, Size-0.25, SizeZ2)
;Top Bottom
glNormal3f_(0, -1.0, 0)
glVertex3f_(Size+0.25, Size+0.25, SizeZ2)
glVertex3f_(Size+0.25, Size+0.25, SizeZ1)
glVertex3f_(Size-0.25, Size+0.25, SizeZ1)
glVertex3f_(Size-0.25, Size+0.25, SizeZ2)
glNormal3f_ (0, 1.0, 0)
glVertex3f_ (Size-0.25, Size-0.25, SizeZ1)
glVertex3f_ (Size+0.25, Size-0.25, SizeZ1)
glVertex3f_ (Size+0.25, Size-0.25, SizeZ2)
glVertex3f_ (Size-0.25, Size-0.25, SizeZ2)
;Left Right
glNormal3f_ (1.0, 0, 0)
glVertex3f_ (Size+0.25, Size+0.25, SizeZ2)
glVertex3f_ (Size+0.25, Size-0.25, SizeZ2)
glVertex3f_ (Size+0.25, Size-0.25, SizeZ1)
glVertex3f_ (Size+0.25, Size+0.25, SizeZ1)
glNormal3f_ (-1.0, 0, 0)
glVertex3f_ (Size-0.25, Size-0.25, SizeZ1)
glVertex3f_ (Size-0.25, Size-0.25, SizeZ2)
glVertex3f_ (Size-0.25, Size+0.25, SizeZ2)
glVertex3f_ (Size-0.25, Size+0.25, SizeZ1)
glEnd_()
glTranslatef_(Wert1, Wert2, Wert3)
glRotatef_(0.5, 0, 0, 0)
EndIf
Wend
CloseFile(0)
EndProcedure
Procedure Open_Window_0()
If OpenWindow(#Window_0, 215, 100, 600, 500, #PB_Window_SizeGadget | #PB_Window_SystemMenu | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered , "View")
InitOpenGLContext(#Window_0)
EndIf
EndProcedure
Procedure Open_Window_1()
If OpenWindow(#Window_1, 820, 100, 180, 120, #PB_Window_TitleBar , "Add Cube")
If CreateGadgetList(WindowID())
StringGadget(#Gadget_0, 10, 10, 160, 20, "X")
StringGadget(#Gadget_1, 10, 30, 160, 20, "Y")
StringGadget(#Gadget_2, 10, 50, 160, 20, "Z")
StringGadget(#Gadget_3, 10, 70, 160, 20, "Size")
ButtonGadget(#Gadget_6, 10, 100, 160, 20, "Create")
EndIf
MakeToolWindow(WindowID(#Window_1), #TRUE)
EndIf
EndProcedure
Open_Window_0()
Open_Window_1()
Repeat
SwapOpenGLContext(#Window_0)
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Gadget_6
GadgetX = ValF("0."+GetGadgetText(#Gadget_0))
GadgetY = ValF("0."+GetGadgetText(#Gadget_1))
GadgetZ = ValF("0."+GetGadgetText(#Gadget_2))
GadgetSize = ValF("0."+GetGadgetText(#Gadget_3))
DrawTriangle(ID, GadgetX, GadgetY, GadgetZ, GadgetSize)
Update()
ID + 1
EndSelect
EndSelect
Until Event = #PB_EventCloseWindow
FreeOpenGLContext(#Window_0)
Endcu
Daniel