Code archives/3D Graphics - Mesh/Mesh-Editor
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
1)'Name? ' Nothing for a new Mesh. If you already have a Mesh(3)) give the Name 2)Edit 3)'Name? ' Name for the saved Mesh and screenshots (in the same folder as the sourcecode, of course) Can anyone help me Texturecoords/Texture Animation non flickering The 'Line3d' function I have from Toony. Thanks | |||||
; ID: 1630 ; Author: Mr. Bean ; Date: 2006-03-03 12:47:12 ; Title: Mesh-Editor ; Description: A primitively Mesh-Editor Global GX=1024 Global GY=768 Global HX=GX/2 Global HY=GY/2 Global HHX=GX/4 Global HHY=GY/4 Graphics GX,GY Dim Vertex (10000,4) Dim Triangle(4000,4) Dim RV(10000) Dim RT(4000) Global NumberV=-1,NumberT=-1 Global jn=0,AVT=1 Global VFL=1 Global VM=0 Global TFL=0 Global X1,Modus$,Meld$ Global X2,X3 Global Y1,TVC,NT=1 Global Y2,Y3,rectjn Global c1,c2,c3,p HidePointer pointer=CreateImage(10,10) SetBuffer ImageBuffer(pointer) Line 0,0,5,3 Line 0,0,5,4 Line 0,0,5,5 Line 0,0,5,6 Line 5,4,10,4 SetBuffer FrontBuffer() Modus$="Create Vertices" Global a10$ Oef() C#=0.0 Cls Repeat If C>1.0 Cls C=C+0.1 If C>1.1 C=0 DrawImage pointer,MouseX(),MouseY() If KeyHit(47) And KeyDown(211) NumberV=NumberV-1 If KeyHit(20) And KeyDown(211) NumberT=NumberT-1 Line 0,HY,GX,HY Line HX,0,HX,GY Text 5,5, "Front" Text HX+5,5,"Left" Text 5,HY+5,"Top" Color 255,255,255 Text HX+10,HY+5,"Vertex/ices: "+(NumberV+1) Text HX+10,HY+20,"Triangles: "+(NumberT+1) Text HX+10,HY+35,"Modus: "+Modus If KeyHit(2) ChangeVFL() If KeyHit(3) ChangeVM() If VM=1 Then VM() VV() EndIf If VFL=1 Then VFL() EndIf TFL() TZ() VZ() Delay 1 Until KeyHit(1) Cls If a10=""a10=Input("Name? ") a=WriteFile(a10+".ogs") WriteLine a,NumberV WriteLine a,NumberT For I=0 To NumberV WriteLine a,Vertex(I,1) WriteLine a,Vertex(I,2) WriteLine a,Vertex(I,3) Next For I=0To NumberT WriteLine a,Triangle(I,1) WriteLine a,Triangle(I,2) WriteLine a,Triangle(I,3) Next CloseFile a Cls HidePointer Graphics3D GX,GY SetBuffer BackBuffer() cam=CreateCamera() light=CreateLight() CameraClsColor cam,50,50,50 Global mesh=CreateMesh() surf=CreateSurface(mesh) PositionEntity cam,0,0,0 For I=0 To NumberV RV(I)=AddVertex(surf,-Vertex(I,1),-Vertex(I,2),-Vertex(I,3)) Next For I=0 To NumberT a1=Triangle(I,1) a2=Triangle(I,2) a3=Triangle(I,3) RT(I)=AddTriangle(surf,RV(a1),RV(a2),RV(a3)) Next Lines() Repeat If KeyHit(28) SaveBuffer(BackBuffer(),a10+" "+Count+".bmp"):Count=Count+1 If KeyHit(57) e=1-e If KeyDown(200) MoveEntity cam,0,+1,0 If KeyDown(208) MoveEntity cam,0,-1,0 If KeyDown(205) MoveEntity cam,+1,0,0 If KeyDown(203) MoveEntity cam,-1,0,0 If KeyDown(30 ) MoveEntity cam,0,0,+1 If KeyDown(44 ) MoveEntity cam,0,0,-1 WireFrame e MoveEntity cam,0,0,+MouseZSpeed() mxspd#=MouseXSpeed()*0.25 myspd#=MouseYSpeed()*0.25 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 campitch=campitch+(myspd/2) If campitch<-85 Then campitch=-85 If campitch>85 Then campitch=85 RotateEntity cam,campitch,EntityYaw(cam)-mxspd,0 RenderWorld Flip Until KeyHit(1) End Function ChangeVFL() If VFL=0 Then VFL=1 Else VFL=0 EndIf VM=0:TFL=0 Modus="Create Vertices " NT=1 End Function Function ChangeVM() If VM=0 Then VM=1 Else VM=0 EndIf VFL=0:TFL=0 Color 255,255,255 Modus="Mark Vertices/Triangles " NT=1 End Function Function ChangeM() For I=0 To NumberV If Vertex(I,4)=1 Then Vertex(I,5)=0 Else Vertex(I,5)=1 EndIf Next End Function Function Line3D(x,y,z,x2,y2,z2) c1=CreateSphere() PositionEntity c1,x,y,z ScaleEntity c1,0.5,0.5,0.5 EntityColor c1,0,0,255 c2=CreateSphere() PositionEntity c2,x2,y2,z2 ScaleEntity c2,0.5,0.5,0.5 EntityColor c2,0,0,255 p=CreatePivot() PositionEntity p,x,y,z le#=EntityDistance# (c1,c2) le#=le#-(le#/2) c3=CreateCylinder() PositionEntity c3,x,le#+y,z ScaleEntity c3,0.5,le#,0.5 EntityColor c3,0,255,0 EntityParent c3,p PointEntity p,c2 TurnEntity p,90,0,0 End Function Function Lines() For I=0 To NumberT a1=Triangle(I,1) a2=Triangle(I,2) a3=Triangle(I,3) Line3D(-Vertex(a1,1),-Vertex(a1,2),-Vertex(a1,3),-Vertex(a2,1),-Vertex(a2,2),-vertex(a2,3)) Line3D(-Vertex(a2,1),-Vertex(a2,2),-Vertex(a2,3),-Vertex(a1,1),-Vertex(a1,2),-vertex(a1,3)) Line3D(-Vertex(a2,1),-Vertex(a2,2),-Vertex(a2,3),-Vertex(a3,1),-Vertex(a3,2),-vertex(a3,3)) Next End Function Function NeuVertex(a1,a2,a3,a4) Vertex(a1,1)=a2 Vertex(a1,2)=a3 Vertex(a1,3)=a4 End Function Function NeuTriangle(a1,a2,a3,a4) Triangle(a1,1)=a2 Triangle(a1,2)=a3 Triangle(a1,3)=a4 End Function Function Oef() a10=CommandLine() If a10="" a10$=Input("Name? ") If a10="" Then Goto endoef a=ReadFile(a10+".ogs") If a=0 Goto endoef a1=ReadLine(a) a2=ReadLine(a) For I=0 To a1 a3= ReadLine(a) a4= ReadLine(a) a5= ReadLine(a) NumberV=NumberV+1 NeuVertex(NumberV,a3,a4,a5) Next For I=0 To a2 a3=ReadLine(a) a4=ReadLine(a) a5=ReadLine(a) NumberT=NumberT+1 NeuTriangle(NumberT,a3,a4,a5) Next .endoef End Function Function VFL() If MouseHit(1)=True Then X=MouseX() Y=MouseY() jn=1 EndIf If jn=1 Then If X>HX Then X1=1 Else X1=0 EndIf If Y>HY Then Y1=1 Else Y1=0 EndIf If X1=0 And Y1=0 Then NumberV=NumberV+1 NeuVertex(NumberV,MouseX(),MouseY(),HHY) EndIf If X1=1 And Y1=0 Then NumberV=NumberV+1 NeuVertex(NumberV,HHY,MouseY(),MouseX()-HX) EndIf If X1=0 And Y1=1 Then NumberV=NumberV+1 NeuVertex(NumberV,MouseX(),HHY,MouseY()-HY) EndIf jn=0 EndIf End Function Function TFL() TVC=0 For I=0 To NumberV If Vertex(I,4)=1 Then TVC=TVC+1 EndIf Next If TVC<3 Then TVC=0 ElseIf TVC>3 Then TVC=0 EndIf NT=0 If TVC=3 Then EndIf If KeyHit(48) Then NumberT=NumberT+1 For I=0 To NumberV If Vertex(I,4)=1 Then Triangle(NumberT,AVT)=I Triangle(NumberT,4)=1 AVT=AVT+1 If AVT=4 Then AVT=1 EndIf EndIf Next NumberT=NumberT+1 For I=0 To NumberV If Vertex(I,4)=1 Then Triangle(NumberT,AVT)=I Triangle(NumberT,4)=1 AVT=AVT+1 If AVT=4 Then AVT=1 EndIf EndIf Next Z=Triangle(NumberT,2) Triangle(NumberT,2)=Triangle(NumberT,3) Triangle(NumberT,3)=Z EndIf End Function Function VM() If MouseHit(1) X3=MouseX():Y3=MouseY():rectjn=1 If Y3<21 Then Y3=20 If MouseDown(1)=True Then If MouseX()<HX Then X2=0 Else X2=1 EndIf If MouseY()>HY Then Y2=1 Else Y2=0 EndIf Color 0,0,200 Rect X3,Y3,MouseX()-X3,MouseY()-Y3,0 Color 255,255,255 Else rectjn=0 EndIf If X2=0 And Y2=0 Then For I=0 To NumberV If Vertex(I,1)<MouseX() And Vertex(I,1)>X3 And Vertex(I,2)<MouseY() And Vertex(I,2)>Y3 And KeyDown(29) And rectjn=1 Then Vertex(I,4)=0 ElseIf Vertex(I,1)<MouseX() And Vertex(I,1)>X3 And Vertex(I,2)<MouseY() And Vertex(I,2)>Y3 And rectjn=1 Then Vertex(I,4)=1 EndIf Next EndIf If X2=0 And Y2=1 Then For I=0 To NumberV If Vertex(I,1)<MouseX() And Vertex(I,1)>X3 And Vertex(I,3)<MouseY()-HY And Vertex(I,3)>(Y3-HY) And KeyDown(29) And rectjn=1 Then Vertex(I,4)=0 ElseIf Vertex(I,1)<MouseX() And Vertex(I,1)>X3 And Vertex(I,3)<MouseY()-HY And Vertex(I,3)>(Y3-HY) And rectjn=1 Then Vertex(I,4)=1 EndIf Next EndIf If X2=1 And Y2=0 Then For I=0 To NumberV If Vertex(I,3)<MouseX()-HX And Vertex(I,3)>(X3-HX) And Vertex(I,2)<MouseY() And Vertex(I,2)>Y3 And KeyDown(29) And rectjn=1 Then Vertex(I,4)=0 ElseIf Vertex(I,3)<MouseX()-HX And Vertex(I,3)>(X3-HX) And Vertex(I,2)<MouseY() And Vertex(I,2)>Y3 And rectjn=1 Then Vertex(I,4)=1 EndIf Next EndIf If KeyHit(157) Then ChangeM() EndIf For I=0 To NumberT TVC=0 a=Triangle(I,1) If Vertex(a,4)=1 TVC=TVC+1 a=Triangle(I,2) If Vertex(a,4)=1 TVC=TVC+1 a=Triangle(I,3) If Vertex(a,4)=1 TVC=TVC+1 If TVC=3 Then Triangle(I,4)=1 Else Triangle(I,4)=0 EndIf Next End Function Function VV() For I=0 To NumberV If Vertex(I,4)=1 Then If KeyHit(71) jn1=1 If KeyHit(79) jn2=1 If KeyHit(72) jn3=1 If KeyHit(80) jn4=1 If KeyHit(73) jn5=1 If KeyHit(81) jn6=1 If jn1=1 Then Vertex(I,1)=Vertex(I,1)+1 EndIf If jn2=1 Then Vertex(I,1)=Vertex(I,1)-1 EndIf If jn3=1 Then Vertex(I,2)=Vertex(I,2)+1 EndIf If jn4=1 Then Vertex(I,2)=Vertex(I,2)-1 EndIf If jn5=1 Then Vertex(I,3)=Vertex(I,3)+1 EndIf If jn6=1 Then Vertex(I,3)=Vertex(I,3)-1 EndIf Color 255,255,255 End If Next End Function Function TZ() For I=0 To NumberT+1 a=Triangle (I,1) a1=Triangle(I,2) a2=Triangle(I,3) VX =Vertex(a,1) VY =Vertex(a,2) VX1=Vertex(a1,1) VY1=Vertex(a1,2) VX2=Vertex(a2,1) VY2=Vertex(a2,2) OX =Vertex(a,1) OY =Vertex(a,3) OX1=Vertex(a1,1) OY1=Vertex(a1,3) OX2=Vertex(a2,1) OY2=Vertex(a2,3) SX =Vertex(a,3) SY =Vertex(a,2) SX1=Vertex(a1,3) SY1=Vertex(a1,2) SX2=Vertex(a2,3) SY2=Vertex(a2,2) Mk =Triangle(I,4) If Mk=1 Color 200,0,0 Else Color 0,200,200 Line VX,VY,VX1,VY1 Line VX,VY,VX2,VY2 Line VX1,VY1,VX2,VY2 Origin 0,HY Line OX,OY,OX1,OY1 Line OX,OY,OX2,OY2 Line OX1,OY1,OX2,OY2 Origin HX,0 Line SX,SY,SX1,SY1 Line SX,SY,SX2,SY2 Line SX1,SY1,SX2,SY2 Origin 0,0 Color 255,255,255 Next End Function Function VZ() For I=0 To NumberV VX =Vertex(I,1) VY =Vertex(I,2) OX =Vertex(I,1) OY =Vertex(I,3) SX =Vertex(I,3) SY =Vertex(I,2) Mk2=Vertex(I,4) If Mk2=1 Color 200,0,0 Rect VX,VY,2,2 Origin 0,512 Rect OX,OY,2,2 Origin 640,0 Rect SX,SY,2,2 Origin 0,0 Color 255,255,255 Next End Function |
Comments
| ||
animation ????????????????? Can anyone help me ??????? |
Code Archives Forum