├── .gitattributes ├── .gitignore ├── LICENSE ├── Path planning visualizer.sln ├── Path planning visualizer ├── Path planning visualizer.vcxproj ├── Path planning visualizer.vcxproj.filters ├── fonts │ ├── Bebas-Regular.otf │ └── Bebas-Regular.ttf ├── sfml-audio-2.dll ├── sfml-audio-d-2.dll ├── sfml-graphics-2.dll ├── sfml-graphics-d-2.dll ├── sfml-network-2.dll ├── sfml-network-d-2.dll ├── sfml-system-2.dll ├── sfml-system-d-2.dll ├── sfml-window-2.dll ├── sfml-window-d-2.dll └── src │ ├── AStar.cpp │ ├── AStar.h │ ├── Algorithm.h │ ├── AlgorithmFactory.h │ ├── BFS.cpp │ ├── BFS.h │ ├── BestFS.cpp │ ├── BestFS.h │ ├── BiBFS.cpp │ ├── BiBFS.h │ ├── DFS.cpp │ ├── DFS.h │ ├── Dijkstra.cpp │ ├── Dijkstra.h │ ├── Game.cpp │ ├── Game.h │ ├── Graph.cpp │ ├── Graph.h │ ├── Grid.cpp │ ├── Grid.h │ ├── Location.h │ ├── biDFS.cpp │ ├── biDFS.h │ └── main.cpp ├── README.md ├── SFML external library └── SFML │ ├── doc │ └── html │ │ ├── AlResource_8hpp_source.html │ │ ├── Audio_2Export_8hpp_source.html │ │ ├── Audio_8hpp_source.html │ │ ├── BlendMode_8hpp_source.html │ │ ├── CircleShape_8hpp_source.html │ │ ├── Clipboard_8hpp_source.html │ │ ├── Clock_8hpp_source.html │ │ ├── Color_8hpp_source.html │ │ ├── Config_8hpp_source.html │ │ ├── ContextSettings_8hpp_source.html │ │ ├── Context_8hpp_source.html │ │ ├── ConvexShape_8hpp_source.html │ │ ├── Cursor_8hpp_source.html │ │ ├── Drawable_8hpp_source.html │ │ ├── Err_8hpp_source.html │ │ ├── Event_8hpp_source.html │ │ ├── FileInputStream_8hpp_source.html │ │ ├── Font_8hpp_source.html │ │ ├── Ftp_8hpp_source.html │ │ ├── GlResource_8hpp_source.html │ │ ├── Glsl_8hpp_source.html │ │ ├── Glyph_8hpp_source.html │ │ ├── GpuPreference_8hpp.html │ │ ├── GpuPreference_8hpp_source.html │ │ ├── Graphics_2Export_8hpp_source.html │ │ ├── Graphics_8hpp_source.html │ │ ├── Http_8hpp_source.html │ │ ├── Image_8hpp_source.html │ │ ├── InputSoundFile_8hpp_source.html │ │ ├── InputStream_8hpp_source.html │ │ ├── IpAddress_8hpp_source.html │ │ ├── Joystick_8hpp_source.html │ │ ├── Keyboard_8hpp_source.html │ │ ├── Listener_8hpp_source.html │ │ ├── Lock_8hpp_source.html │ │ ├── Main_8hpp_source.html │ │ ├── MemoryInputStream_8hpp_source.html │ │ ├── Mouse_8hpp_source.html │ │ ├── Music_8hpp_source.html │ │ ├── Mutex_8hpp_source.html │ │ ├── NativeActivity_8hpp_source.html │ │ ├── Network_2Export_8hpp_source.html │ │ ├── Network_8hpp_source.html │ │ ├── NonCopyable_8hpp_source.html │ │ ├── OpenGL_8hpp_source.html │ │ ├── OutputSoundFile_8hpp_source.html │ │ ├── Packet_8hpp_source.html │ │ ├── PrimitiveType_8hpp_source.html │ │ ├── Rect_8hpp_source.html │ │ ├── RectangleShape_8hpp_source.html │ │ ├── RenderStates_8hpp_source.html │ │ ├── RenderTarget_8hpp_source.html │ │ ├── RenderTexture_8hpp_source.html │ │ ├── RenderWindow_8hpp_source.html │ │ ├── Sensor_8hpp_source.html │ │ ├── Shader_8hpp_source.html │ │ ├── Shape_8hpp_source.html │ │ ├── Sleep_8hpp_source.html │ │ ├── SocketHandle_8hpp_source.html │ │ ├── SocketSelector_8hpp_source.html │ │ ├── Socket_8hpp_source.html │ │ ├── SoundBufferRecorder_8hpp_source.html │ │ ├── SoundBuffer_8hpp_source.html │ │ ├── SoundFileFactory_8hpp_source.html │ │ ├── SoundFileReader_8hpp_source.html │ │ ├── SoundFileWriter_8hpp_source.html │ │ ├── SoundRecorder_8hpp_source.html │ │ ├── SoundSource_8hpp_source.html │ │ ├── SoundStream_8hpp_source.html │ │ ├── Sound_8hpp_source.html │ │ ├── Sprite_8hpp_source.html │ │ ├── String_8hpp_source.html │ │ ├── System_2Export_8hpp_source.html │ │ ├── System_8hpp_source.html │ │ ├── TcpListener_8hpp_source.html │ │ ├── TcpSocket_8hpp_source.html │ │ ├── Text_8hpp_source.html │ │ ├── Texture_8hpp_source.html │ │ ├── ThreadLocalPtr_8hpp_source.html │ │ ├── ThreadLocal_8hpp_source.html │ │ ├── Thread_8hpp_source.html │ │ ├── Time_8hpp_source.html │ │ ├── Touch_8hpp_source.html │ │ ├── Transform_8hpp_source.html │ │ ├── Transformable_8hpp_source.html │ │ ├── UdpSocket_8hpp_source.html │ │ ├── Utf_8hpp_source.html │ │ ├── Vector2_8hpp_source.html │ │ ├── Vector3_8hpp_source.html │ │ ├── VertexArray_8hpp_source.html │ │ ├── VertexBuffer_8hpp_source.html │ │ ├── Vertex_8hpp_source.html │ │ ├── VideoMode_8hpp_source.html │ │ ├── View_8hpp_source.html │ │ ├── WindowHandle_8hpp_source.html │ │ ├── WindowStyle_8hpp_source.html │ │ ├── Window_2Export_8hpp_source.html │ │ ├── Window_2Window_8hpp_source.html │ │ ├── Window_8hpp_source.html │ │ ├── annotated.html │ │ ├── bc_s.png │ │ ├── bdwn.png │ │ ├── classes.html │ │ ├── classsf_1_1AlResource-members.html │ │ ├── classsf_1_1AlResource.html │ │ ├── classsf_1_1AlResource.png │ │ ├── classsf_1_1CircleShape-members.html │ │ ├── classsf_1_1CircleShape.html │ │ ├── classsf_1_1CircleShape.png │ │ ├── classsf_1_1Clipboard-members.html │ │ ├── classsf_1_1Clipboard.html │ │ ├── classsf_1_1Clock-members.html │ │ ├── classsf_1_1Clock.html │ │ ├── classsf_1_1Color-members.html │ │ ├── classsf_1_1Color.html │ │ ├── classsf_1_1Context-members.html │ │ ├── classsf_1_1Context.html │ │ ├── classsf_1_1Context.png │ │ ├── classsf_1_1ConvexShape-members.html │ │ ├── classsf_1_1ConvexShape.html │ │ ├── classsf_1_1ConvexShape.png │ │ ├── classsf_1_1Cursor-members.html │ │ ├── classsf_1_1Cursor.html │ │ ├── classsf_1_1Cursor.png │ │ ├── classsf_1_1Drawable-members.html │ │ ├── classsf_1_1Drawable.html │ │ ├── classsf_1_1Drawable.png │ │ ├── classsf_1_1Event-members.html │ │ ├── classsf_1_1Event.html │ │ ├── classsf_1_1FileInputStream-members.html │ │ ├── classsf_1_1FileInputStream.html │ │ ├── classsf_1_1FileInputStream.png │ │ ├── classsf_1_1Font-members.html │ │ ├── classsf_1_1Font.html │ │ ├── classsf_1_1Ftp-members.html │ │ ├── classsf_1_1Ftp.html │ │ ├── classsf_1_1Ftp.png │ │ ├── classsf_1_1Ftp_1_1DirectoryResponse-members.html │ │ ├── classsf_1_1Ftp_1_1DirectoryResponse.html │ │ ├── classsf_1_1Ftp_1_1DirectoryResponse.png │ │ ├── classsf_1_1Ftp_1_1ListingResponse-members.html │ │ ├── classsf_1_1Ftp_1_1ListingResponse.html │ │ ├── classsf_1_1Ftp_1_1ListingResponse.png │ │ ├── classsf_1_1Ftp_1_1Response-members.html │ │ ├── classsf_1_1Ftp_1_1Response.html │ │ ├── classsf_1_1Ftp_1_1Response.png │ │ ├── classsf_1_1GlResource-members.html │ │ ├── classsf_1_1GlResource.html │ │ ├── classsf_1_1GlResource.png │ │ ├── classsf_1_1GlResource_1_1TransientContextLock-members.html │ │ ├── classsf_1_1GlResource_1_1TransientContextLock.html │ │ ├── classsf_1_1GlResource_1_1TransientContextLock.png │ │ ├── classsf_1_1Glyph-members.html │ │ ├── classsf_1_1Glyph.html │ │ ├── classsf_1_1Http-members.html │ │ ├── classsf_1_1Http.html │ │ ├── classsf_1_1Http.png │ │ ├── classsf_1_1Http_1_1Request-members.html │ │ ├── classsf_1_1Http_1_1Request.html │ │ ├── classsf_1_1Http_1_1Response-members.html │ │ ├── classsf_1_1Http_1_1Response.html │ │ ├── classsf_1_1Image-members.html │ │ ├── classsf_1_1Image.html │ │ ├── classsf_1_1InputSoundFile-members.html │ │ ├── classsf_1_1InputSoundFile.html │ │ ├── classsf_1_1InputSoundFile.png │ │ ├── classsf_1_1InputStream-members.html │ │ ├── classsf_1_1InputStream.html │ │ ├── classsf_1_1InputStream.png │ │ ├── classsf_1_1IpAddress-members.html │ │ ├── classsf_1_1IpAddress.html │ │ ├── classsf_1_1Joystick-members.html │ │ ├── classsf_1_1Joystick.html │ │ ├── classsf_1_1Keyboard-members.html │ │ ├── classsf_1_1Keyboard.html │ │ ├── classsf_1_1Listener-members.html │ │ ├── classsf_1_1Listener.html │ │ ├── classsf_1_1Lock-members.html │ │ ├── classsf_1_1Lock.html │ │ ├── classsf_1_1Lock.png │ │ ├── classsf_1_1MemoryInputStream-members.html │ │ ├── classsf_1_1MemoryInputStream.html │ │ ├── classsf_1_1MemoryInputStream.png │ │ ├── classsf_1_1Mouse-members.html │ │ ├── classsf_1_1Mouse.html │ │ ├── classsf_1_1Music-members.html │ │ ├── classsf_1_1Music.html │ │ ├── classsf_1_1Music.png │ │ ├── classsf_1_1Mutex-members.html │ │ ├── classsf_1_1Mutex.html │ │ ├── classsf_1_1Mutex.png │ │ ├── classsf_1_1NonCopyable-members.html │ │ ├── classsf_1_1NonCopyable.html │ │ ├── classsf_1_1NonCopyable.png │ │ ├── classsf_1_1OutputSoundFile-members.html │ │ ├── classsf_1_1OutputSoundFile.html │ │ ├── classsf_1_1OutputSoundFile.png │ │ ├── classsf_1_1Packet-members.html │ │ ├── classsf_1_1Packet.html │ │ ├── classsf_1_1Rect-members.html │ │ ├── classsf_1_1Rect.html │ │ ├── classsf_1_1RectangleShape-members.html │ │ ├── classsf_1_1RectangleShape.html │ │ ├── classsf_1_1RectangleShape.png │ │ ├── classsf_1_1RenderStates-members.html │ │ ├── classsf_1_1RenderStates.html │ │ ├── classsf_1_1RenderTarget-members.html │ │ ├── classsf_1_1RenderTarget.html │ │ ├── classsf_1_1RenderTarget.png │ │ ├── classsf_1_1RenderTexture-members.html │ │ ├── classsf_1_1RenderTexture.html │ │ ├── classsf_1_1RenderTexture.png │ │ ├── classsf_1_1RenderWindow-members.html │ │ ├── classsf_1_1RenderWindow.html │ │ ├── classsf_1_1RenderWindow.png │ │ ├── classsf_1_1Sensor-members.html │ │ ├── classsf_1_1Sensor.html │ │ ├── classsf_1_1Shader-members.html │ │ ├── classsf_1_1Shader.html │ │ ├── classsf_1_1Shader.png │ │ ├── classsf_1_1Shape-members.html │ │ ├── classsf_1_1Shape.html │ │ ├── classsf_1_1Shape.png │ │ ├── classsf_1_1Socket-members.html │ │ ├── classsf_1_1Socket.html │ │ ├── classsf_1_1Socket.png │ │ ├── classsf_1_1SocketSelector-members.html │ │ ├── classsf_1_1SocketSelector.html │ │ ├── classsf_1_1Sound-members.html │ │ ├── classsf_1_1Sound.html │ │ ├── classsf_1_1Sound.png │ │ ├── classsf_1_1SoundBuffer-members.html │ │ ├── classsf_1_1SoundBuffer.html │ │ ├── classsf_1_1SoundBuffer.png │ │ ├── classsf_1_1SoundBufferRecorder-members.html │ │ ├── classsf_1_1SoundBufferRecorder.html │ │ ├── classsf_1_1SoundBufferRecorder.png │ │ ├── classsf_1_1SoundFileFactory-members.html │ │ ├── classsf_1_1SoundFileFactory.html │ │ ├── classsf_1_1SoundFileReader-members.html │ │ ├── classsf_1_1SoundFileReader.html │ │ ├── classsf_1_1SoundFileWriter-members.html │ │ ├── classsf_1_1SoundFileWriter.html │ │ ├── classsf_1_1SoundRecorder-members.html │ │ ├── classsf_1_1SoundRecorder.html │ │ ├── classsf_1_1SoundRecorder.png │ │ ├── classsf_1_1SoundSource-members.html │ │ ├── classsf_1_1SoundSource.html │ │ ├── classsf_1_1SoundSource.png │ │ ├── classsf_1_1SoundStream-members.html │ │ ├── classsf_1_1SoundStream.html │ │ ├── classsf_1_1SoundStream.png │ │ ├── classsf_1_1Sprite-members.html │ │ ├── classsf_1_1Sprite.html │ │ ├── classsf_1_1Sprite.png │ │ ├── classsf_1_1String-members.html │ │ ├── classsf_1_1String.html │ │ ├── classsf_1_1TcpListener-members.html │ │ ├── classsf_1_1TcpListener.html │ │ ├── classsf_1_1TcpListener.png │ │ ├── classsf_1_1TcpSocket-members.html │ │ ├── classsf_1_1TcpSocket.html │ │ ├── classsf_1_1TcpSocket.png │ │ ├── classsf_1_1Text-members.html │ │ ├── classsf_1_1Text.html │ │ ├── classsf_1_1Text.png │ │ ├── classsf_1_1Texture-members.html │ │ ├── classsf_1_1Texture.html │ │ ├── classsf_1_1Texture.png │ │ ├── classsf_1_1Thread-members.html │ │ ├── classsf_1_1Thread.html │ │ ├── classsf_1_1Thread.png │ │ ├── classsf_1_1ThreadLocal-members.html │ │ ├── classsf_1_1ThreadLocal.html │ │ ├── classsf_1_1ThreadLocal.png │ │ ├── classsf_1_1ThreadLocalPtr-members.html │ │ ├── classsf_1_1ThreadLocalPtr.html │ │ ├── classsf_1_1ThreadLocalPtr.png │ │ ├── classsf_1_1Time-members.html │ │ ├── classsf_1_1Time.html │ │ ├── classsf_1_1Touch-members.html │ │ ├── classsf_1_1Touch.html │ │ ├── classsf_1_1Transform-members.html │ │ ├── classsf_1_1Transform.html │ │ ├── classsf_1_1Transformable-members.html │ │ ├── classsf_1_1Transformable.html │ │ ├── classsf_1_1Transformable.png │ │ ├── classsf_1_1UdpSocket-members.html │ │ ├── classsf_1_1UdpSocket.html │ │ ├── classsf_1_1UdpSocket.png │ │ ├── classsf_1_1Utf.html │ │ ├── classsf_1_1Utf_3_0116_01_4-members.html │ │ ├── classsf_1_1Utf_3_0116_01_4.html │ │ ├── classsf_1_1Utf_3_0132_01_4-members.html │ │ ├── classsf_1_1Utf_3_0132_01_4.html │ │ ├── classsf_1_1Utf_3_018_01_4-members.html │ │ ├── classsf_1_1Utf_3_018_01_4.html │ │ ├── classsf_1_1Vector2-members.html │ │ ├── classsf_1_1Vector2.html │ │ ├── classsf_1_1Vector3-members.html │ │ ├── classsf_1_1Vector3.html │ │ ├── classsf_1_1Vertex-members.html │ │ ├── classsf_1_1Vertex.html │ │ ├── classsf_1_1VertexArray-members.html │ │ ├── classsf_1_1VertexArray.html │ │ ├── classsf_1_1VertexArray.png │ │ ├── classsf_1_1VertexBuffer-members.html │ │ ├── classsf_1_1VertexBuffer.html │ │ ├── classsf_1_1VertexBuffer.png │ │ ├── classsf_1_1VideoMode-members.html │ │ ├── classsf_1_1VideoMode.html │ │ ├── classsf_1_1View-members.html │ │ ├── classsf_1_1View.html │ │ ├── classsf_1_1Window-members.html │ │ ├── classsf_1_1Window.html │ │ ├── classsf_1_1Window.png │ │ ├── closed.png │ │ ├── deprecated.html │ │ ├── dir_5cf786e58cbf7297a26339ae6e44357c.html │ │ ├── dir_83d50c0b1f1eceb6f182949162e90861.html │ │ ├── dir_89e9fb32471ae291b179a889144513db.html │ │ ├── dir_c0a853e81d6f1c1f0a3eb7a27dc24256.html │ │ ├── dir_d44c64559bbebec7f509842c48db8b23.html │ │ ├── dir_dd49ddb3ba8035e4a328f8c5f31cda7e.html │ │ ├── dir_e68e8157741866f444e17edd764ebbae.html │ │ ├── dir_e71ec51a9abd604c65f6abb639f6ea75.html │ │ ├── doc.png │ │ ├── doxygen.css │ │ ├── doxygen.png │ │ ├── dynsections.js │ │ ├── files.html │ │ ├── folderclosed.png │ │ ├── folderopen.png │ │ ├── functions.html │ │ ├── functions_0x7e.html │ │ ├── functions_b.html │ │ ├── functions_c.html │ │ ├── functions_d.html │ │ ├── functions_e.html │ │ ├── functions_enum.html │ │ ├── functions_eval.html │ │ ├── functions_eval_b.html │ │ ├── functions_eval_c.html │ │ ├── functions_eval_d.html │ │ ├── functions_eval_e.html │ │ ├── functions_eval_f.html │ │ ├── functions_eval_g.html │ │ ├── functions_eval_h.html │ │ ├── functions_eval_i.html │ │ ├── functions_eval_j.html │ │ ├── functions_eval_k.html │ │ ├── functions_eval_l.html │ │ ├── functions_eval_m.html │ │ ├── functions_eval_n.html │ │ ├── functions_eval_o.html │ │ ├── functions_eval_p.html │ │ ├── functions_eval_q.html │ │ ├── functions_eval_r.html │ │ ├── functions_eval_s.html │ │ ├── functions_eval_t.html │ │ ├── functions_eval_u.html │ │ ├── functions_eval_v.html │ │ ├── functions_eval_w.html │ │ ├── functions_eval_x.html │ │ ├── functions_eval_y.html │ │ ├── functions_eval_z.html │ │ ├── functions_f.html │ │ ├── functions_func.html │ │ ├── functions_func_0x7e.html │ │ ├── functions_func_b.html │ │ ├── functions_func_c.html │ │ ├── functions_func_d.html │ │ ├── functions_func_e.html │ │ ├── functions_func_f.html │ │ ├── functions_func_g.html │ │ ├── functions_func_h.html │ │ ├── functions_func_i.html │ │ ├── functions_func_k.html │ │ ├── functions_func_l.html │ │ ├── functions_func_m.html │ │ ├── functions_func_n.html │ │ ├── functions_func_o.html │ │ ├── functions_func_p.html │ │ ├── functions_func_r.html │ │ ├── functions_func_s.html │ │ ├── functions_func_t.html │ │ ├── functions_func_u.html │ │ ├── functions_func_v.html │ │ ├── functions_func_w.html │ │ ├── functions_func_z.html │ │ ├── functions_g.html │ │ ├── functions_h.html │ │ ├── functions_i.html │ │ ├── functions_j.html │ │ ├── functions_k.html │ │ ├── functions_l.html │ │ ├── functions_m.html │ │ ├── functions_n.html │ │ ├── functions_o.html │ │ ├── functions_p.html │ │ ├── functions_q.html │ │ ├── functions_r.html │ │ ├── functions_rela.html │ │ ├── functions_s.html │ │ ├── functions_t.html │ │ ├── functions_type.html │ │ ├── functions_u.html │ │ ├── functions_v.html │ │ ├── functions_vars.html │ │ ├── functions_w.html │ │ ├── functions_x.html │ │ ├── functions_y.html │ │ ├── functions_z.html │ │ ├── globals.html │ │ ├── globals_defs.html │ │ ├── group__audio.html │ │ ├── group__graphics.html │ │ ├── group__network.html │ │ ├── group__system.html │ │ ├── group__window.html │ │ ├── hierarchy.html │ │ ├── index.html │ │ ├── jquery.js │ │ ├── mainpage_8hpp_source.html │ │ ├── menudata.js │ │ ├── modules.html │ │ ├── namespacemembers.html │ │ ├── namespacemembers_type.html │ │ ├── namespaces.html │ │ ├── namespacesf_1_1Glsl.html │ │ ├── nav_f.png │ │ ├── nav_g.png │ │ ├── nav_h.png │ │ ├── open.png │ │ ├── pages.html │ │ ├── splitbar.png │ │ ├── structsf_1_1BlendMode-members.html │ │ ├── structsf_1_1BlendMode.html │ │ ├── structsf_1_1ContextSettings-members.html │ │ ├── structsf_1_1ContextSettings.html │ │ ├── structsf_1_1Event_1_1JoystickButtonEvent-members.html │ │ ├── structsf_1_1Event_1_1JoystickButtonEvent.html │ │ ├── structsf_1_1Event_1_1JoystickConnectEvent-members.html │ │ ├── structsf_1_1Event_1_1JoystickConnectEvent.html │ │ ├── structsf_1_1Event_1_1JoystickMoveEvent-members.html │ │ ├── structsf_1_1Event_1_1JoystickMoveEvent.html │ │ ├── structsf_1_1Event_1_1KeyEvent-members.html │ │ ├── structsf_1_1Event_1_1KeyEvent.html │ │ ├── structsf_1_1Event_1_1MouseButtonEvent-members.html │ │ ├── structsf_1_1Event_1_1MouseButtonEvent.html │ │ ├── structsf_1_1Event_1_1MouseMoveEvent-members.html │ │ ├── structsf_1_1Event_1_1MouseMoveEvent.html │ │ ├── structsf_1_1Event_1_1MouseWheelEvent-members.html │ │ ├── structsf_1_1Event_1_1MouseWheelEvent.html │ │ ├── structsf_1_1Event_1_1MouseWheelScrollEvent-members.html │ │ ├── structsf_1_1Event_1_1MouseWheelScrollEvent.html │ │ ├── structsf_1_1Event_1_1SensorEvent-members.html │ │ ├── structsf_1_1Event_1_1SensorEvent.html │ │ ├── structsf_1_1Event_1_1SizeEvent-members.html │ │ ├── structsf_1_1Event_1_1SizeEvent.html │ │ ├── structsf_1_1Event_1_1TextEvent-members.html │ │ ├── structsf_1_1Event_1_1TextEvent.html │ │ ├── structsf_1_1Event_1_1TouchEvent-members.html │ │ ├── structsf_1_1Event_1_1TouchEvent.html │ │ ├── structsf_1_1Font_1_1Info-members.html │ │ ├── structsf_1_1Font_1_1Info.html │ │ ├── structsf_1_1Joystick_1_1Identification-members.html │ │ ├── structsf_1_1Joystick_1_1Identification.html │ │ ├── structsf_1_1Music_1_1Span-members.html │ │ ├── structsf_1_1Music_1_1Span.html │ │ ├── structsf_1_1Shader_1_1CurrentTextureType.html │ │ ├── structsf_1_1SoundFileReader_1_1Info-members.html │ │ ├── structsf_1_1SoundFileReader_1_1Info.html │ │ ├── structsf_1_1SoundStream_1_1Chunk-members.html │ │ ├── structsf_1_1SoundStream_1_1Chunk.html │ │ ├── sync_off.png │ │ ├── sync_on.png │ │ ├── tab_a.png │ │ ├── tab_b.png │ │ ├── tab_h.png │ │ ├── tab_s.png │ │ └── tabs.css │ ├── examples │ ├── ftp │ │ ├── Ftp.cpp │ │ └── ftp.exe │ ├── island │ │ ├── Island.cpp │ │ ├── island.exe │ │ └── resources │ │ │ ├── sansation.ttf │ │ │ ├── terrain.frag │ │ │ └── terrain.vert │ ├── joystick │ │ ├── Joystick.cpp │ │ ├── joystick.exe │ │ └── resources │ │ │ └── sansation.ttf │ ├── opengl │ │ ├── OpenGL.cpp │ │ ├── opengl.exe │ │ └── resources │ │ │ ├── background.jpg │ │ │ ├── sansation.ttf │ │ │ └── texture.jpg │ ├── pong │ │ ├── Pong.cpp │ │ ├── pong.exe │ │ └── resources │ │ │ ├── ball.wav │ │ │ └── sansation.ttf │ ├── shader │ │ ├── Effect.hpp │ │ ├── Shader.cpp │ │ ├── resources │ │ │ ├── background.jpg │ │ │ ├── billboard.frag │ │ │ ├── billboard.geom │ │ │ ├── billboard.vert │ │ │ ├── blink.frag │ │ │ ├── blur.frag │ │ │ ├── devices.png │ │ │ ├── edge.frag │ │ │ ├── logo.png │ │ │ ├── pixelate.frag │ │ │ ├── sansation.ttf │ │ │ ├── sfml.png │ │ │ ├── storm.vert │ │ │ ├── text-background.png │ │ │ └── wave.vert │ │ └── shader.exe │ ├── sockets │ │ ├── Sockets.cpp │ │ ├── TCP.cpp │ │ ├── UDP.cpp │ │ └── sockets.exe │ ├── sound-capture │ │ ├── SoundCapture.cpp │ │ └── sound-capture.exe │ ├── sound │ │ ├── Sound.cpp │ │ ├── resources │ │ │ ├── canary.wav │ │ │ ├── ding.flac │ │ │ └── orchestral.ogg │ │ └── sound.exe │ ├── voip │ │ ├── Client.cpp │ │ ├── Server.cpp │ │ ├── VoIP.cpp │ │ └── voip.exe │ ├── win32 │ │ ├── Win32.cpp │ │ ├── resources │ │ │ ├── image1.jpg │ │ │ └── image2.jpg │ │ └── win32.exe │ └── window │ │ ├── Window.cpp │ │ └── window.exe │ ├── include │ └── SFML │ │ ├── Audio.hpp │ │ ├── Audio │ │ ├── AlResource.hpp │ │ ├── Export.hpp │ │ ├── InputSoundFile.hpp │ │ ├── Listener.hpp │ │ ├── Music.hpp │ │ ├── OutputSoundFile.hpp │ │ ├── Sound.hpp │ │ ├── SoundBuffer.hpp │ │ ├── SoundBufferRecorder.hpp │ │ ├── SoundFileFactory.hpp │ │ ├── SoundFileFactory.inl │ │ ├── SoundFileReader.hpp │ │ ├── SoundFileWriter.hpp │ │ ├── SoundRecorder.hpp │ │ ├── SoundSource.hpp │ │ └── SoundStream.hpp │ │ ├── Config.hpp │ │ ├── GpuPreference.hpp │ │ ├── Graphics.hpp │ │ ├── Graphics │ │ ├── BlendMode.hpp │ │ ├── CircleShape.hpp │ │ ├── Color.hpp │ │ ├── ConvexShape.hpp │ │ ├── Drawable.hpp │ │ ├── Export.hpp │ │ ├── Font.hpp │ │ ├── Glsl.hpp │ │ ├── Glsl.inl │ │ ├── Glyph.hpp │ │ ├── Image.hpp │ │ ├── PrimitiveType.hpp │ │ ├── Rect.hpp │ │ ├── Rect.inl │ │ ├── RectangleShape.hpp │ │ ├── RenderStates.hpp │ │ ├── RenderTarget.hpp │ │ ├── RenderTexture.hpp │ │ ├── RenderWindow.hpp │ │ ├── Shader.hpp │ │ ├── Shape.hpp │ │ ├── Sprite.hpp │ │ ├── Text.hpp │ │ ├── Texture.hpp │ │ ├── Transform.hpp │ │ ├── Transformable.hpp │ │ ├── Vertex.hpp │ │ ├── VertexArray.hpp │ │ ├── VertexBuffer.hpp │ │ └── View.hpp │ │ ├── Main.hpp │ │ ├── Network.hpp │ │ ├── Network │ │ ├── Export.hpp │ │ ├── Ftp.hpp │ │ ├── Http.hpp │ │ ├── IpAddress.hpp │ │ ├── Packet.hpp │ │ ├── Socket.hpp │ │ ├── SocketHandle.hpp │ │ ├── SocketSelector.hpp │ │ ├── TcpListener.hpp │ │ ├── TcpSocket.hpp │ │ └── UdpSocket.hpp │ │ ├── OpenGL.hpp │ │ ├── System.hpp │ │ ├── System │ │ ├── Clock.hpp │ │ ├── Err.hpp │ │ ├── Export.hpp │ │ ├── FileInputStream.hpp │ │ ├── InputStream.hpp │ │ ├── Lock.hpp │ │ ├── MemoryInputStream.hpp │ │ ├── Mutex.hpp │ │ ├── NativeActivity.hpp │ │ ├── NonCopyable.hpp │ │ ├── Sleep.hpp │ │ ├── String.hpp │ │ ├── String.inl │ │ ├── Thread.hpp │ │ ├── Thread.inl │ │ ├── ThreadLocal.hpp │ │ ├── ThreadLocalPtr.hpp │ │ ├── ThreadLocalPtr.inl │ │ ├── Time.hpp │ │ ├── Utf.hpp │ │ ├── Utf.inl │ │ ├── Vector2.hpp │ │ ├── Vector2.inl │ │ ├── Vector3.hpp │ │ └── Vector3.inl │ │ ├── Window.hpp │ │ └── Window │ │ ├── Clipboard.hpp │ │ ├── Context.hpp │ │ ├── ContextSettings.hpp │ │ ├── Cursor.hpp │ │ ├── Event.hpp │ │ ├── Export.hpp │ │ ├── GlResource.hpp │ │ ├── Joystick.hpp │ │ ├── Keyboard.hpp │ │ ├── Mouse.hpp │ │ ├── Sensor.hpp │ │ ├── Touch.hpp │ │ ├── VideoMode.hpp │ │ ├── Window.hpp │ │ ├── WindowHandle.hpp │ │ └── WindowStyle.hpp │ ├── lib │ ├── cmake │ │ └── SFML │ │ │ ├── SFMLConfig.cmake │ │ │ ├── SFMLConfigDependencies.cmake │ │ │ ├── SFMLConfigVersion.cmake │ │ │ ├── SFMLSharedTargets-debug.cmake │ │ │ ├── SFMLSharedTargets-release.cmake │ │ │ ├── SFMLSharedTargets.cmake │ │ │ ├── SFMLStaticTargets-debug.cmake │ │ │ ├── SFMLStaticTargets-release.cmake │ │ │ └── SFMLStaticTargets.cmake │ ├── flac.lib │ ├── freetype.lib │ ├── ogg.lib │ ├── openal32.lib │ ├── sfml-audio-d.lib │ ├── sfml-audio-s-d.lib │ ├── sfml-audio-s.lib │ ├── sfml-audio.lib │ ├── sfml-graphics-d.lib │ ├── sfml-graphics-s-d.lib │ ├── sfml-graphics-s.lib │ ├── sfml-graphics.lib │ ├── sfml-main-d.lib │ ├── sfml-main.lib │ ├── sfml-network-d.lib │ ├── sfml-network-s-d.lib │ ├── sfml-network-s.lib │ ├── sfml-network.lib │ ├── sfml-system-d.lib │ ├── sfml-system-s-d.lib │ ├── sfml-system-s.lib │ ├── sfml-system.lib │ ├── sfml-window-d.lib │ ├── sfml-window-s-d.lib │ ├── sfml-window-s.lib │ ├── sfml-window.lib │ ├── vorbis.lib │ ├── vorbisenc.lib │ └── vorbisfile.lib │ ├── license.md │ └── readme.md └── images ├── AStar.png ├── BFS.png ├── DFS.png ├── astar begin.png ├── astar solving.png ├── bestfs.png ├── biBFS.png ├── biDFS.png └── dijkstra.png /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 wholol 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Path planning visualizer.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28010.2036 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Path planning visualizer", "Path planning visualizer\Path planning visualizer.vcxproj", "{B79159C9-AC10-4684-B7B9-51ED2CFB984E}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {B79159C9-AC10-4684-B7B9-51ED2CFB984E}.Debug|x64.ActiveCfg = Debug|x64 17 | {B79159C9-AC10-4684-B7B9-51ED2CFB984E}.Debug|x64.Build.0 = Debug|x64 18 | {B79159C9-AC10-4684-B7B9-51ED2CFB984E}.Debug|x86.ActiveCfg = Debug|Win32 19 | {B79159C9-AC10-4684-B7B9-51ED2CFB984E}.Debug|x86.Build.0 = Debug|Win32 20 | {B79159C9-AC10-4684-B7B9-51ED2CFB984E}.Release|x64.ActiveCfg = Release|x64 21 | {B79159C9-AC10-4684-B7B9-51ED2CFB984E}.Release|x64.Build.0 = Release|x64 22 | {B79159C9-AC10-4684-B7B9-51ED2CFB984E}.Release|x86.ActiveCfg = Release|Win32 23 | {B79159C9-AC10-4684-B7B9-51ED2CFB984E}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | GlobalSection(ExtensibilityGlobals) = postSolution 29 | SolutionGuid = {B1C7CC3E-461C-4BAC-A26C-270F22D3B526} 30 | EndGlobalSection 31 | EndGlobal 32 | -------------------------------------------------------------------------------- /Path planning visualizer/fonts/Bebas-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/fonts/Bebas-Regular.otf -------------------------------------------------------------------------------- /Path planning visualizer/fonts/Bebas-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/fonts/Bebas-Regular.ttf -------------------------------------------------------------------------------- /Path planning visualizer/sfml-audio-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-audio-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/sfml-audio-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-audio-d-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/sfml-graphics-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-graphics-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/sfml-graphics-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-graphics-d-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/sfml-network-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-network-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/sfml-network-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-network-d-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/sfml-system-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-system-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/sfml-system-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-system-d-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/sfml-window-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-window-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/sfml-window-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/sfml-window-d-2.dll -------------------------------------------------------------------------------- /Path planning visualizer/src/AStar.cpp: -------------------------------------------------------------------------------- 1 | #include "AStar.h" 2 | #include 3 | #include 4 | 5 | AStar::AStar(Graph &graph) 6 | :graph(graph) 7 | { 8 | if (!font.loadFromFile("fonts/Bebas-Regular.ttf")) {} 9 | text.setFont(font); 10 | text.setString("Solving AStar.."); 11 | text.setPosition(sf::Vector2f(5, 0)); 12 | text.setFillColor(sf::Color::Green); 13 | text.setOutlineColor(sf::Color::Black); 14 | text.setOutlineThickness(2); 15 | text.setCharacterSize(25); 16 | } 17 | 18 | void AStar::SolveAlgorithm(const Location & srcpos, const Location & targetpos, const std::vector& obstacles, Grid & grid, sf::RenderWindow & createwindow) 19 | { 20 | this->srcpos = srcpos; 21 | this->targetpos = targetpos; 22 | 23 | for (const auto& obs : obstacles) { //set obstacles 24 | graph.getNode(obs).isObstacle = true; 25 | } 26 | 27 | auto fCostcomparator = [](node *leftnode, node *rightnode) 28 | { 29 | return leftnode->fCost < rightnode->fCost; 30 | }; 31 | 32 | node *srcNode = &(graph.getNode(srcpos)); 33 | srcNode->gCost = 0; 34 | node* targetNode = &(graph.getNode(targetpos)); 35 | srcNode->hCost = nodedistance(srcNode,targetNode); 36 | pq.emplace_back(srcNode); //push node into queue. 37 | 38 | while (!pq.empty() && !targetreached) { //while priority queue is not empty 39 | pq.sort(fCostcomparator); 40 | node* curr = pq.front(); 41 | pq.pop_front(); //pop from queue. 42 | curr->Visited = true; 43 | grid.ColourVisitedTile(curr->nodeloc); 44 | 45 | if (curr->nodeloc == targetpos) { //set target reached to true 46 | targetreached = true; 47 | } 48 | 49 | 50 | grid.drawGrid(); 51 | createwindow.draw(text); 52 | createwindow.display(); 53 | 54 | std::this_thread::sleep_for(std::chrono::milliseconds(50)); 55 | 56 | for (auto &neighbour : curr->neighbours) { 57 | 58 | if (neighbour->Visited || neighbour->isObstacle) { 59 | continue; 60 | } 61 | 62 | else { 63 | double estimatedgCost = curr->gCost + nodedistance(curr, neighbour); 64 | if (estimatedgCost < neighbour->gCost) { //if estiamted gcost is lesser, means there is a more optimal path from origin to th neighbour 65 | neighbour->parent = curr; 66 | neighbour->gCost = estimatedgCost; 67 | neighbour->hCost = nodedistance(neighbour, targetNode); 68 | neighbour->fCost = neighbour->gCost + neighbour->hCost; 69 | auto find = openSet.find(neighbour); 70 | if (find == openSet.end()) { //if NOT in set 71 | grid.ColourVisitingTile(neighbour->nodeloc); 72 | pq.emplace_back(neighbour); 73 | openSet.insert(neighbour); 74 | } 75 | } 76 | } 77 | } 78 | } 79 | } 80 | 81 | void AStar::constructPath(Grid& grid) 82 | { 83 | node* traverse = &graph.getNode(targetpos); 84 | if (traverse != nullptr) { 85 | while (traverse->parent != nullptr) { 86 | grid.ColourPathTile(traverse->nodeloc, traverse->parent->nodeloc); 87 | traverse = traverse->parent; 88 | } 89 | } 90 | } 91 | 92 | double AStar::nodedistance(node* a, node* b) 93 | { 94 | int dx = (a->nodeloc.posx - b->nodeloc.posx); 95 | int dy= (a->nodeloc.posy - b->nodeloc.posy); 96 | return sqrt((dx * dx) + (dy * dy)); //sqrt(dx^2 - dy^2) for Euclidean 97 | } 98 | -------------------------------------------------------------------------------- /Path planning visualizer/src/AStar.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Algorithm.h" 3 | #include "Graph.h" 4 | #include "Grid.h" 5 | #include 6 | #include 7 | 8 | class AStar : public Algorithm { 9 | public: 10 | AStar(Graph &graph); 11 | void SolveAlgorithm(const Location& srcpos, const Location& targetpos, const std::vector& obstacles, Grid &grid, sf::RenderWindow& createwindow) override; 12 | void constructPath(Grid& grid) override; 13 | 14 | private: 15 | Graph &graph; 16 | Location srcpos; 17 | Location targetpos; 18 | sf::Text text; 19 | sf::Font font; 20 | bool targetreached = false; 21 | std::list pq; 22 | std::unordered_set openSet; 23 | double nodedistance(node* a, node* b); 24 | }; 25 | 26 | -------------------------------------------------------------------------------- /Path planning visualizer/src/Algorithm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Location.h" 3 | #include 4 | #include "Grid.h" 5 | //base class for all algorithms. useful for factory pattern. 6 | class Algorithm { 7 | public: 8 | virtual void SolveAlgorithm(const Location& srcpos, const Location& targetpos, const std::vector& obstacles, Grid &grid, sf::RenderWindow& createwindow) = 0; 9 | virtual void constructPath(Grid& grid) = 0; 10 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/AlgorithmFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Algorithm.h" 3 | #include "DFS.h" 4 | #include "BFS.h" 5 | #include "AStar.h" 6 | #include "Dijkstra.h" 7 | #include "BiBFS.h" 8 | #include "biDFS.h" 9 | 10 | class AlgorithmFactory { 11 | public: 12 | static std::unique_ptr generateAlgorithm(const std::string_view& graphtype ,Graph& graph) { 13 | if (graphtype == "BFS") { 14 | return std::make_unique(graph); 15 | } 16 | 17 | else if (graphtype == "DFS") { 18 | return std::make_unique(graph); 19 | } 20 | 21 | else if (graphtype == "biDFS") { 22 | return std::make_unique(graph); 23 | } 24 | 25 | else if (graphtype == "biBFS") { 26 | return std::make_unique(graph); 27 | } 28 | 29 | else if (graphtype == "AStar") { 30 | return std::make_unique(graph); 31 | } 32 | 33 | else if (graphtype == "Dijkstra") { 34 | return std::make_unique(graph); 35 | } 36 | 37 | else if (graphtype == "BestFS") { 38 | return std::make_unique(graph); 39 | } 40 | else return nullptr; 41 | } 42 | 43 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/BFS.cpp: -------------------------------------------------------------------------------- 1 | #include "BFS.h" 2 | #include 3 | #include 4 | 5 | BFS::BFS(Graph &graph) 6 | :graph(graph) 7 | { 8 | if (!font.loadFromFile("fonts/Bebas-Regular.ttf")) {} 9 | text.setFont(font); 10 | text.setString("Solving BFS.."); 11 | text.setPosition(sf::Vector2f(5, 0)); 12 | text.setFillColor(sf::Color::Green); 13 | text.setOutlineColor(sf::Color::Black); 14 | text.setOutlineThickness(2); 15 | text.setCharacterSize(25); 16 | } 17 | 18 | void BFS::SolveAlgorithm(const Location& srcpos, const Location& targetpos, const std::vector& obstacles, Grid &grid, sf::RenderWindow& createwindow) 19 | { 20 | for (const auto& obs : obstacles) { //set obstacles 21 | graph.getNode(obs).isObstacle = true; 22 | } 23 | 24 | this->targetpos = targetpos; 25 | this->srcpos = srcpos; 26 | 27 | node* srcnode = &(graph.getNode(srcpos)); 28 | deque.emplace_back(srcnode); //push into queue. 29 | srcnode->Visited = true; 30 | 31 | while (!deque.empty() && !targetreached) { 32 | 33 | node* curr = deque.front(); //get the current location 34 | deque.pop_front(); 35 | grid.ColourVisitedTile(curr->nodeloc); //colour current location 36 | 37 | grid.drawGrid(); 38 | createwindow.draw(text); 39 | createwindow.display(); 40 | 41 | if (curr->nodeloc == targetpos) { 42 | targetreached = true; 43 | } 44 | 45 | std::this_thread::sleep_for(std::chrono::milliseconds(10)); 46 | 47 | for (auto &neighbour : curr->neighbours) { 48 | if (!neighbour->Visited) { 49 | if (neighbour->isObstacle) { 50 | 51 | } 52 | 53 | else { 54 | neighbour->parent = curr; 55 | deque.emplace_back(neighbour); 56 | neighbour->Visited = true; 57 | grid.ColourVisitingTile(neighbour->nodeloc); 58 | } 59 | } 60 | } 61 | } 62 | return; 63 | } 64 | 65 | void BFS::constructPath(Grid& grid) 66 | { 67 | node* traverse = &(graph.getNode(targetpos)); 68 | 69 | if (traverse != nullptr) { 70 | while (traverse->parent != nullptr) { 71 | grid.ColourPathTile(traverse->nodeloc, traverse->parent->nodeloc); 72 | traverse = traverse->parent; 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Path planning visualizer/src/BFS.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Algorithm.h" 3 | #include "Graph.h" 4 | #include "Grid.h" 5 | #include 6 | 7 | class BFS : public Algorithm { 8 | 9 | public: 10 | BFS(Graph &graph); 11 | void SolveAlgorithm(const Location& srcpos, const Location& targetpos, const std::vector& obstacles, Grid &grid, sf::RenderWindow& createwindow) override; 12 | void constructPath(Grid& grid) override; 13 | 14 | private: 15 | Graph &graph; 16 | sf::Text text; 17 | sf::Font font; 18 | Location srcpos; 19 | Location targetpos; 20 | std::deque deque; 21 | bool targetreached = false; 22 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/BestFS.cpp: -------------------------------------------------------------------------------- 1 | #include "BestFS.h" 2 | #include 3 | 4 | BestFS::BestFS(Graph & graph) 5 | :graph(graph) 6 | { 7 | if (!font.loadFromFile("fonts/Bebas-Regular.ttf")) {} 8 | text.setFont(font); 9 | text.setString("Solving Best First Serach.."); 10 | text.setPosition(sf::Vector2f(5, 0)); 11 | text.setFillColor(sf::Color::Green); 12 | text.setOutlineColor(sf::Color::Black); 13 | text.setOutlineThickness(2); 14 | text.setCharacterSize(25); 15 | } 16 | 17 | void BestFS::SolveAlgorithm(const Location & srcpos, const Location & targetpos, const std::vector& obstacles, Grid & grid, sf::RenderWindow & createwindow) 18 | { 19 | this->srcpos = srcpos; 20 | this->targetpos = targetpos; 21 | 22 | for (const auto& obs : obstacles) { //set obstacles 23 | graph.getNode(obs).isObstacle = true; 24 | } 25 | 26 | auto gCostcomparator = [](node *leftnode, node *rightnode) 27 | { 28 | return leftnode->gCost < rightnode->gCost; 29 | }; 30 | 31 | node *srcNode = &(graph.getNode(srcpos)); 32 | srcNode->gCost = 0; 33 | node* targetNode = &(graph.getNode(targetpos)); 34 | pq.emplace_back(srcNode); //push node into queue. 35 | 36 | while (!pq.empty() && !targetreached) { //while priority queue is not empty 37 | pq.sort(gCostcomparator); 38 | node* curr = pq.front(); 39 | pq.pop_front(); //pop from queue. 40 | curr->Visited = true; 41 | grid.ColourVisitedTile(curr->nodeloc); 42 | 43 | if (curr->nodeloc == targetpos) { //set target reached to true 44 | targetreached = true; 45 | } 46 | 47 | grid.drawGrid(); 48 | createwindow.draw(text); 49 | createwindow.display(); 50 | 51 | std::this_thread::sleep_for(std::chrono::milliseconds(20)); 52 | 53 | for (auto &neighbour : curr->neighbours) { 54 | 55 | if (neighbour->Visited || neighbour->isObstacle) { 56 | continue; //if visited, it means it has been popped from the prio queue (already the possible shortest vertex). 57 | } 58 | 59 | else { 60 | double estimatedgCost = nodedistance(&graph.getNode(targetpos), neighbour); 61 | if (estimatedgCost < neighbour->gCost) { //if estiamted gcost is lesser, means there is a more optimal path from origin to th neighbour 62 | neighbour->parent = curr; 63 | neighbour->gCost = estimatedgCost; 64 | auto find = openSet.find(neighbour); 65 | if (find == openSet.end()) { //set is used to check if it is in the priority queue 66 | grid.ColourVisitingTile(neighbour->nodeloc); 67 | pq.emplace_back(neighbour); 68 | openSet.insert(neighbour); 69 | } 70 | } 71 | } 72 | } 73 | } 74 | return; 75 | } 76 | 77 | void BestFS::constructPath(Grid& grid) 78 | { 79 | node* traverse = &graph.getNode(targetpos); 80 | if (traverse != nullptr) { 81 | while (traverse->parent != nullptr) { 82 | grid.ColourPathTile(traverse->nodeloc, traverse->parent->nodeloc); 83 | traverse = traverse->parent; 84 | } 85 | } 86 | } 87 | 88 | double BestFS::nodedistance(node* a, node* b) 89 | { 90 | int dx = (a->nodeloc.posx - b->nodeloc.posx); 91 | int dy = (a->nodeloc.posy - b->nodeloc.posy); 92 | return sqrt((dx * dx) + (dy * dy)); //sqrt(dx^2 - dy^2) for Euclidean 93 | } 94 | 95 | -------------------------------------------------------------------------------- /Path planning visualizer/src/BestFS.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Algorithm.h" 4 | #include "Graph.h" 5 | #include "Grid.h" 6 | #include 7 | #include 8 | 9 | class BestFS : public Algorithm { 10 | 11 | public: 12 | BestFS(Graph &graph); 13 | virtual void SolveAlgorithm(const Location& srcpos, const Location& targetpos, const std::vector& obstacles, Grid &grid, sf::RenderWindow& createwindow) override; 14 | virtual void constructPath(Grid& grid) override; 15 | 16 | private: 17 | Graph &graph; 18 | Location srcpos; 19 | Location targetpos; 20 | sf::Text text; 21 | sf::Font font; 22 | bool targetreached = false; 23 | std::list pq; 24 | std::unordered_set openSet; 25 | double nodedistance(node* a, node* b); 26 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/BiBFS.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Algorithm.h" 3 | #include "Graph.h" 4 | #include "Grid.h" 5 | #include 6 | #include 7 | class biBFS : public Algorithm { 8 | 9 | public: 10 | biBFS(Graph &graph); 11 | void SolveAlgorithm(const Location& srcpos, const Location& targetpos, const std::vector& obstacles, Grid &grid, sf::RenderWindow& createwindow) override; 12 | void constructPath(Grid& grid) override; 13 | 14 | private: 15 | Graph &graph; 16 | Location srcpos; 17 | Location targetpos; 18 | node* intersectnode; 19 | node* otherparent; 20 | sf::Text text; 21 | sf::Font font; 22 | std::deque srcStack; 23 | std::deque targetStack; 24 | std::unordered_set srcSet; 25 | std::unordered_set targetSet; 26 | bool intersect = false; 27 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/DFS.cpp: -------------------------------------------------------------------------------- 1 | #include "DFS.h" 2 | #include 3 | #include 4 | 5 | DFS::DFS(Graph& graph) 6 | :graph(graph) 7 | { 8 | if (!font.loadFromFile("fonts/Bebas-Regular.ttf")) {} 9 | text.setFont(font); 10 | text.setString("Solving DFS.."); 11 | text.setPosition(sf::Vector2f(5, 0)); 12 | text.setFillColor(sf::Color::Green); 13 | text.setOutlineColor(sf::Color::Black); 14 | text.setOutlineThickness(2); 15 | text.setCharacterSize(25); 16 | } 17 | 18 | void DFS::SolveAlgorithm(const Location& srcpos, const Location& targetpos, const std::vector& obstacles, Grid &grid, sf::RenderWindow& createwindow) 19 | { 20 | for (const auto& obs : obstacles) { //set obstacles 21 | graph.getNode(obs).isObstacle = true; 22 | } 23 | 24 | this->targetpos = targetpos; 25 | this->srcpos = srcpos; 26 | 27 | node* srcnode = &(graph.getNode(srcpos)); 28 | stack.push(srcnode); //push into queue. 29 | srcnode->Visited = true; 30 | 31 | while (!stack.empty() && !targetreached) { 32 | 33 | node* curr = stack.top(); 34 | stack.pop(); 35 | grid.ColourVisitedTile(curr->nodeloc); 36 | 37 | grid.drawGrid(); 38 | createwindow.draw(text); 39 | createwindow.display(); 40 | 41 | if (curr->nodeloc == targetpos) { 42 | targetreached = true; 43 | } 44 | 45 | std::this_thread::sleep_for(std::chrono::milliseconds(40)); 46 | 47 | for (auto &neighbour: curr->neighbours) { 48 | 49 | Location neighbourloc = neighbour->nodeloc; 50 | 51 | if (neighbourloc == targetpos) { 52 | targetreached = true; 53 | } 54 | 55 | if (neighbour->Visited || neighbour->isObstacle) { 56 | continue; 57 | } 58 | 59 | else { 60 | neighbour->parent = curr; 61 | stack.push(neighbour); 62 | neighbour->Visited = true; 63 | grid.ColourVisitingTile(neighbourloc); 64 | } 65 | } 66 | } 67 | 68 | return; 69 | } 70 | 71 | void DFS::constructPath(Grid& grid) 72 | { 73 | node* traverse = &(graph.getNode(targetpos)); 74 | if (traverse != nullptr) { 75 | while (traverse->parent != nullptr) { 76 | grid.ColourPathTile(traverse->nodeloc, traverse->parent->nodeloc); 77 | traverse = traverse->parent; 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Path planning visualizer/src/DFS.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Algorithm.h" 3 | #include "Graph.h" 4 | #include "Grid.h" 5 | #include 6 | 7 | class DFS : public Algorithm { 8 | 9 | public: 10 | DFS(Graph& graph); 11 | virtual void SolveAlgorithm(const Location& srcpos, const Location& targetpos,const std::vector& obstacles,Grid &grid,sf::RenderWindow& createwindow) override; 12 | virtual void constructPath(Grid& grid) override; 13 | 14 | private: 15 | Graph& graph; 16 | Location srcpos; 17 | Location targetpos; 18 | sf::Text text; 19 | sf::Font font; 20 | std::stack stack; 21 | bool targetreached = false; 22 | }; 23 | -------------------------------------------------------------------------------- /Path planning visualizer/src/Dijkstra.cpp: -------------------------------------------------------------------------------- 1 | #include "Dijkstra.h" 2 | #include 3 | #include 4 | 5 | Dijkstra::Dijkstra(Graph &graph) 6 | :graph(graph) 7 | { 8 | if (!font.loadFromFile("fonts/Bebas-Regular.ttf")) {} 9 | text.setFont(font); 10 | text.setString("Solving Dijsktra.."); 11 | text.setPosition(sf::Vector2f(5, 0)); 12 | text.setFillColor(sf::Color::Green); 13 | text.setOutlineColor(sf::Color::Black); 14 | text.setOutlineThickness(2); 15 | text.setCharacterSize(25); 16 | } 17 | 18 | void Dijkstra::SolveAlgorithm(const Location & srcpos, const Location & targetpos, const std::vector& obstacles, Grid & grid, sf::RenderWindow & createwindow) 19 | { 20 | this->srcpos = srcpos; 21 | this->targetpos = targetpos; 22 | 23 | for (const auto& obs : obstacles) { //set obstacles 24 | graph.getNode(obs).isObstacle = true; 25 | } 26 | 27 | auto gCostcomparator = [](node *leftnode, node *rightnode) 28 | { 29 | return leftnode->gCost < rightnode->gCost; 30 | }; 31 | 32 | node *srcNode = &(graph.getNode(srcpos)); 33 | srcNode->gCost = 0; 34 | node* targetNode = &(graph.getNode(targetpos)); 35 | pq.emplace_back(srcNode); //push node into queue. 36 | 37 | while (!pq.empty() && !targetreached) { //while priority queue is not empty 38 | pq.sort(gCostcomparator); 39 | node* curr = pq.front(); 40 | pq.pop_front(); //pop from queue. 41 | curr->Visited = true; 42 | grid.ColourVisitedTile(curr->nodeloc); 43 | 44 | if (curr->nodeloc == targetpos) { //set target reached to true 45 | targetreached = true; 46 | } 47 | 48 | grid.drawGrid(); 49 | createwindow.draw(text); 50 | createwindow.display(); 51 | 52 | std::this_thread::sleep_for(std::chrono::milliseconds(20)); 53 | 54 | for (auto &neighbour : curr->neighbours) { 55 | 56 | if (neighbour->Visited || neighbour->isObstacle) { 57 | continue; //if visited, it means it has been popped from the prio queue (already the possible shortest vertex). 58 | } 59 | 60 | else { 61 | double estimatedgCost = curr->gCost + nodedistance(curr, neighbour); 62 | if (estimatedgCost < neighbour->gCost) { //if estiamted gcost is lesser, means there is a more optimal path from origin to th neighbour 63 | neighbour->parent = curr; 64 | neighbour->gCost = estimatedgCost; 65 | auto find = openSet.find(neighbour); 66 | if (find == openSet.end()) { //set is used to check if it is in the priority queue 67 | grid.ColourVisitingTile(neighbour->nodeloc); 68 | pq.emplace_back(neighbour); 69 | openSet.insert(neighbour); 70 | } 71 | } 72 | } 73 | } 74 | } 75 | return; 76 | } 77 | 78 | void Dijkstra::constructPath(Grid& grid) 79 | { 80 | node* traverse = &graph.getNode(targetpos); 81 | if (traverse != nullptr) { 82 | while (traverse->parent != nullptr) { 83 | grid.ColourPathTile(traverse->nodeloc, traverse->parent->nodeloc); 84 | traverse = traverse->parent; 85 | } 86 | } 87 | } 88 | 89 | double Dijkstra::nodedistance(node* a, node* b) 90 | { 91 | int dx = (a->nodeloc.posx - b->nodeloc.posx); 92 | int dy = (a->nodeloc.posy - b->nodeloc.posy); 93 | return sqrt((dx * dx) + (dy * dy)); //sqrt(dx^2 - dy^2) for Euclidean 94 | } 95 | -------------------------------------------------------------------------------- /Path planning visualizer/src/Dijkstra.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Algorithm.h" 3 | #include "Graph.h" 4 | #include "Grid.h" 5 | #include 6 | #include 7 | 8 | class Dijkstra : public Algorithm { 9 | 10 | public: 11 | Dijkstra(Graph &graph); 12 | virtual void SolveAlgorithm(const Location& srcpos, const Location& targetpos, const std::vector& obstacles, Grid &grid, sf::RenderWindow& createwindow) override; 13 | virtual void constructPath(Grid& grid) override; 14 | 15 | private: 16 | Graph &graph; 17 | Location srcpos; 18 | Location targetpos; 19 | sf::Text text; 20 | sf::Font font; 21 | bool targetreached = false; 22 | std::list pq; 23 | std::unordered_set openSet; 24 | double nodedistance(node* a, node* b); 25 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/Game.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "Algorithm.h" 4 | #include "Grid.h" 5 | #include "Graph.h" 6 | #include "DFS.h" 7 | #include "BFS.h" 8 | #include "AStar.h" 9 | #include "Dijkstra.h" 10 | #include "BiBFS.h" 11 | #include "biDFS.h" 12 | #include "BestFS.h" 13 | #include "AlgorithmFactory.h" 14 | 15 | 16 | class Game { //game class. should have render, update/events, quit and initialize. 17 | 18 | public: 19 | Game(int screenwidth, int screenheight, const std::string& title, int framerate); //game constructor 20 | Game &operator=(Game &other) = delete; //prevent assigning game object 21 | Game(const Game& other) = delete; //no deep copying a game object 22 | Game(Game &&other) = delete; //no moving game object 23 | ~Game(); 24 | void update(); //update logic 25 | void render(); //rende r 26 | bool quit(); //quit the window 27 | 28 | private: 29 | bool quitgame = false; //quit game 30 | std::unique_ptr algo; 31 | Grid grid; 32 | Graph graph; 33 | sf::Text text; 34 | sf::Font font; 35 | std::string graphtype = "no algorithm chosen. Choose algorithm to add obstacles and change target and source positions."; 36 | sf::Mouse mouse; 37 | sf::Event event; //events class 38 | sf::RenderWindow createwindow; //windows class 39 | bool solve = false; 40 | 41 | 42 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/Graph.cpp: -------------------------------------------------------------------------------- 1 | #include "Graph.h" 2 | #include 3 | #include 4 | #include 5 | 6 | Graph::Graph(std::tuple getNumTile) 7 | { 8 | auto[totalXTiles, totalYTiles] = getNumTile; 9 | this->totalXTiles = totalXTiles; 10 | this->totalYTiles = totalYTiles; 11 | 12 | for (int i = 0; i < totalXTiles; ++i) { 13 | for (int j = 0; j < totalYTiles; ++j) { 14 | nodes.emplace_back(i , j); 15 | } 16 | } 17 | 18 | assert(nodes.size() == totalXTiles * totalYTiles); 19 | 20 | for (int x = 0; x < totalXTiles; ++x) { 21 | for (int y = 0; y < totalYTiles; ++y) { 22 | 23 | if (y > 0) 24 | nodes[x*totalXTiles + y].neighbours.emplace_back(&nodes[x*totalXTiles + (y - 1)]); 25 | if (y < totalXTiles - 1) 26 | nodes[x*totalXTiles + y].neighbours.emplace_back(&nodes[x*totalXTiles + (y + 1)]); 27 | if (x > 0) 28 | nodes[x*totalXTiles + y].neighbours.emplace_back(&nodes[(x - 1)*totalXTiles + y]); 29 | if (x < totalXTiles - 1) 30 | nodes[x*totalXTiles + y].neighbours.emplace_back(&nodes[(x + 1)*totalXTiles + y]); 31 | 32 | 33 | if (y > 0 && x > 0) 34 | nodes[x*totalXTiles + y].neighbours.emplace_back(&nodes[(x - 1)*totalXTiles + (y - 1)]); 35 | if (y < totalXTiles -1 && x > 0) 36 | nodes[x*totalXTiles + y].neighbours.emplace_back(&nodes[(x - 1)*totalXTiles + (y + 1)]); 37 | if (y > 0 && x < totalXTiles -1) 38 | nodes[x*totalXTiles + y].neighbours.emplace_back(&nodes[(x + 1)*totalXTiles + (y - 1)]); 39 | if (y < totalXTiles - 1 && x < totalXTiles - 1) 40 | nodes[x*totalXTiles + y].neighbours.emplace_back(&nodes[(x + 1)*totalXTiles + (y + 1)]); 41 | } 42 | } 43 | } 44 | 45 | node& Graph::getNode(const Location& loc) 46 | { 47 | assert(loc.posx * totalXTiles + loc.posy < totalXTiles * totalYTiles); 48 | assert(loc.posx * totalXTiles + loc.posy >= 0); 49 | return nodes[loc.posx * totalXTiles + loc.posy]; //get desired node 50 | } 51 | 52 | void Graph::resetGraph() 53 | { 54 | for (auto& node : nodes) { 55 | node.fCost = INFINITY; 56 | node.gCost = INFINITY; 57 | node.hCost = INFINITY; 58 | node.isObstacle = false; 59 | node.Visited = false; 60 | node.parent = nullptr; 61 | } 62 | } 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /Path planning visualizer/src/Graph.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Location.h" 3 | #include 4 | 5 | /*node struct*/ 6 | struct node { 7 | node(int posx, int posy) :nodeloc({ posx,posy }) {} //construct location 8 | 9 | Location nodeloc; //posx, posy of the node in gridspace 10 | bool Visited = false; 11 | node* parent = nullptr; //pointer to parent node 12 | bool isObstacle = false; //is the node an obstacle? 13 | double hCost = INFINITY; //heuristics for node (distance from current node to target). 14 | double gCost = INFINITY; //heuristics for node (distance from start to curent node). 15 | double fCost; //fCost 16 | std::vector neighbours; //store the vector of neigghbours for the node 17 | }; 18 | 19 | /* graph class*/ 20 | class Graph{ 21 | 22 | private: 23 | std::vector nodes; //all nodes in the graph 24 | int totalXTiles; 25 | int totalYTiles; 26 | 27 | public: 28 | Graph(std::tuple getNumTiles); //construct the graph 29 | node& getNode(const Location& loc); 30 | void resetGraph(); 31 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/Grid.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "Location.h" 4 | 5 | //grid class 6 | class Grid { 7 | public: 8 | Grid(int screenwidth, int screenheight,const sf::Mouse& mouse, sf::RenderWindow& createwindow); 9 | void drawGrid(); 10 | void drawPath(); 11 | void setObstacle(); 12 | void setTarget(); 13 | void setSource(); 14 | void ColourVisitedTile(const Location& loc); 15 | void ColourVisitingTile(const Location& loc); 16 | void ColourPathTile(const Location& loc_1, const Location& loc_2); 17 | void resetGrid(); //reset grid to default state 18 | std::vector getObstacleLocation() const; 19 | std::tuple getTileNums() const; 20 | Location getTargetPos() const; 21 | Location getSrcPos() const; 22 | 23 | private: 24 | std::vector TileMap; 25 | std::vector Obstacles; //store obstacle locations 26 | 27 | const sf::Mouse& mouse; 28 | sf::RenderWindow& createwindow; 29 | 30 | static constexpr int TileDimension = 30; //dimension of tile 31 | static constexpr int OutlineThickness = 2; 32 | 33 | const int screenwidth; 34 | const int screenheight; 35 | 36 | int NumTilesX; //number of tiles in X direction 37 | int NumTilesY; //number of tiles in Y direction 38 | 39 | Location srcpos; //initialize src location 40 | Location targetpos; //initialzie target position 41 | 42 | sf::Color openTileColour = sf::Color::White; 43 | sf::Color obstacleTileColour = sf::Color::Black; 44 | sf::Color srcTileColour = sf::Color::Red; 45 | sf::Color targetTileColour = sf::Color(255,69,0); //orange colour 46 | sf::Color visitedTileColour = sf::Color::Blue; 47 | sf::Color visitngTileColour = sf::Color::Cyan; 48 | 49 | 50 | std::vector vertices; 51 | 52 | bool changingSrcPos = false; 53 | bool changingTargetPos = false; 54 | 55 | /*helper methods*/ 56 | void updateSrcPos(const Location& loc); //update source position 57 | void updateTargetPos(const Location& loc); //update target position 58 | sf::Color getTileColor(const Location& loc) const; 59 | void setTileColor(const Location& loc,const sf::Color& color); 60 | bool outofBounds(int x, int y); 61 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/Location.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | struct Location { 3 | int posx; 4 | int posy; 5 | bool operator==(const Location& other) const{ 6 | return posx == other.posx && posy == other.posy; 7 | } 8 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/biDFS.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Algorithm.h" 3 | #include "Graph.h" 4 | #include "Grid.h" 5 | #include 6 | #include 7 | 8 | class biDFS : public Algorithm { 9 | 10 | public: 11 | biDFS(Graph &graph); 12 | virtual void SolveAlgorithm(const Location& srcpos, const Location& targetpos, const std::vector& obstacles, Grid &grid, sf::RenderWindow& createwindow) override; 13 | virtual void constructPath(Grid& grid) override; 14 | 15 | private: 16 | Graph &graph; 17 | Location srcpos; 18 | Location targetpos; 19 | sf::Text text; 20 | sf::Font font; 21 | node* intersectnode; 22 | node* otherparent; 23 | std::stack srcStack; 24 | std::stack targetStack; 25 | std::unordered_set srcSet; 26 | std::unordered_set targetSet; 27 | bool intersect = false; 28 | }; -------------------------------------------------------------------------------- /Path planning visualizer/src/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/Path planning visualizer/src/main.cpp -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Path-planning-visualizer 2 | Video demo: https://www.youtube.com/watch?v=dNfxPiSixFo&feature=youtu.be 3 | 4 | An Euclidean distance grid based Path planning Visualizer for basic graph algorithms! 5 | 6 | 7 | ## Algorithms Involved 8 | ### A* algorithm 9 | 10 | 11 | ### Dijkstra's Algorithm 12 | 13 | 14 | ### Breadth First Search (BFS) 15 | 16 | 17 | ### Bi-Directional Breadth First Search (biBFS) 18 | 19 | 20 | ### Depth First Search (DFS) 21 | 22 | 23 | ### Bi-Directional Depth First Search (biDFS) 24 | 25 | 26 | ### Best First Search 27 | 28 | 29 | ## Instructions on using the Program 30 | Visual Studio 2017 is used. To use the program, download the repository file and open/run the solution (.sln) file. 31 | #### 1. Shoose an algorithm first 32 | To change the positions of the target and source, as well as adding obstacles, an algoirhtm must be chosen first. 33 | To choose BFS, press Q. 34 | To choose DFS, press W. 35 | To choose dijsktra, press E. 36 | To choose A*, press R. 37 | To choose bidirectional BFS, press T. 38 | To choose bidirectional DFS, press Y. 39 | To choose Best First Search, press U. 40 | 41 | #### 2. Change source and target positions, add/remove obstacles 42 | To add and remove obstacles, right click on white coloured grids. 43 | To change source and target positions, left click of the source/target, and hit enter on the grid that you want to put it on. 44 | 45 | #### 3. Solving 46 | press spacebar. 47 | 48 | #### 4. After solving 49 | repeat step 1 for other algorithms! 50 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/bc_s.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/bdwn.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1AlResource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1AlResource.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1CircleShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1CircleShape.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Context.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1ConvexShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1ConvexShape.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Cursor.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Drawable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Drawable.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1FileInputStream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1FileInputStream.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Ftp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Ftp.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Ftp_1_1DirectoryResponse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Ftp_1_1DirectoryResponse.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Ftp_1_1ListingResponse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Ftp_1_1ListingResponse.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Ftp_1_1Response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Ftp_1_1Response.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1GlResource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1GlResource.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1GlResource_1_1TransientContextLock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1GlResource_1_1TransientContextLock.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Http.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1InputSoundFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1InputSoundFile.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1InputStream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1InputStream.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Lock.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1MemoryInputStream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1MemoryInputStream.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Music.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Mutex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Mutex.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1NonCopyable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1NonCopyable.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1OutputSoundFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1OutputSoundFile.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1RectangleShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1RectangleShape.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1RenderTarget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1RenderTarget.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1RenderTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1RenderTexture.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1RenderWindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1RenderWindow.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Shader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Shader.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Shape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Shape.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Socket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Socket.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Sound.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1SoundBuffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1SoundBuffer.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1SoundBufferRecorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1SoundBufferRecorder.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1SoundRecorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1SoundRecorder.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1SoundSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1SoundSource.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1SoundStream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1SoundStream.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Sprite.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1TcpListener.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1TcpListener.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1TcpSocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1TcpSocket.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Text.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Texture.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Thread.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Thread.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1ThreadLocal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1ThreadLocal.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1ThreadLocalPtr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1ThreadLocalPtr.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Transformable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Transformable.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1UdpSocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1UdpSocket.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1VertexArray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1VertexArray.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1VertexBuffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1VertexBuffer.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/classsf_1_1Window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/classsf_1_1Window.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/closed.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/dir_5cf786e58cbf7297a26339ae6e44357c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 40 |
41 |
42 |
43 |
Window Directory Reference
44 |
45 |
46 |
47 | 48 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/dir_83d50c0b1f1eceb6f182949162e90861.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 40 |
41 |
42 |
43 |
System Directory Reference
44 |
45 |
46 |
47 | 48 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/dir_89e9fb32471ae291b179a889144513db.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 40 |
41 |
42 |
43 |
Network Directory Reference
44 |
45 |
46 |
47 | 48 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 40 |
41 |
42 |
43 |
include Directory Reference
44 |
45 |
46 | 47 | 49 |

48 | Directories

50 |
51 | 52 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/dir_dd49ddb3ba8035e4a328f8c5f31cda7e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 40 |
41 |
42 |
43 |
Audio Directory Reference
44 |
45 |
46 |
47 | 48 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/dir_e68e8157741866f444e17edd764ebbae.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 40 |
41 |
42 |
43 |
doc Directory Reference
44 |
45 |
46 |
47 | 48 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/dir_e71ec51a9abd604c65f6abb639f6ea75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 40 |
41 |
42 |
43 |
Graphics Directory Reference
44 |
45 |
46 |
47 | 48 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/doc.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/doxygen.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/folderclosed.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/folderopen.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/functions_rela.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 38 | 49 |
50 |
51 |   56 |
57 | 58 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/globals.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 42 |
43 |
44 |
Here is a list of all documented file members with links to the documentation:
49 |
50 | 51 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/globals_defs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 42 |
43 |
44 |   49 |
50 | 51 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/mainpage_8hpp_source.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 | 40 |
41 |
42 |
43 |
mainpage.hpp
44 |
45 |
46 |
1 
47 |
48 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/namespaces.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 36 |
37 |
38 |
39 |
Namespace List
40 |
41 |
42 |
Here is a list of all documented namespaces with brief descriptions:
43 |
[detail level 12]
44 | 45 | 46 |
 Nsf
 NGlslNamespace with GLSL types
47 |
48 |
49 | 50 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/nav_f.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/nav_g.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/nav_h.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/open.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/pages.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 |
31 |
32 |
33 |
Related Pages
34 |
35 |
36 |
Here is a list of all related documentation pages:
37 | 38 | 39 |
 Deprecated List
40 |
41 |
42 | 43 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/splitbar.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/structsf_1_1Event_1_1TextEvent-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 38 | 42 |
43 |
44 |
45 |
sf::Event::TextEvent Member List
46 |
47 |
48 | 49 |

This is the complete list of members for sf::Event::TextEvent, including all inherited members.

50 | 51 | 52 |
unicodesf::Event::TextEvent
53 | 54 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/structsf_1_1Font_1_1Info-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SFML - Simple and Fast Multimedia Library 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 |
19 | 20 | 30 | 38 | 42 |
43 |
44 |
45 |
sf::Font::Info Member List
46 |
47 |
48 | 49 |

This is the complete list of members for sf::Font::Info, including all inherited members.

50 | 51 | 52 |
familysf::Font::Info
53 | 54 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/sync_off.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/sync_on.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/tab_a.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/tab_b.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/tab_h.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/doc/html/tab_s.png -------------------------------------------------------------------------------- /SFML external library/SFML/doc/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | 62 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/ftp/ftp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/ftp/ftp.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/island/island.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/island/island.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/island/resources/sansation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/island/resources/sansation.ttf -------------------------------------------------------------------------------- /SFML external library/SFML/examples/island/resources/terrain.frag: -------------------------------------------------------------------------------- 1 | varying vec3 normal; 2 | uniform float lightFactor; 3 | 4 | void main() 5 | { 6 | vec3 lightPosition = vec3(-1.0, 1.0, 1.0); 7 | vec3 eyePosition = vec3(0.0, 0.0, 1.0); 8 | vec3 halfVector = normalize(lightPosition + eyePosition); 9 | float intensity = lightFactor + (1.0 - lightFactor) * dot(normalize(normal), normalize(halfVector)); 10 | gl_FragColor = gl_Color * vec4(intensity, intensity, intensity, 1.0); 11 | } 12 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/island/resources/terrain.vert: -------------------------------------------------------------------------------- 1 | varying vec3 normal; 2 | 3 | void main() 4 | { 5 | gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 6 | gl_FrontColor = gl_Color; 7 | normal = vec3(gl_MultiTexCoord0.xy, 1.0); 8 | } 9 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/joystick/joystick.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/joystick/joystick.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/joystick/resources/sansation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/joystick/resources/sansation.ttf -------------------------------------------------------------------------------- /SFML external library/SFML/examples/opengl/opengl.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/opengl/opengl.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/opengl/resources/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/opengl/resources/background.jpg -------------------------------------------------------------------------------- /SFML external library/SFML/examples/opengl/resources/sansation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/opengl/resources/sansation.ttf -------------------------------------------------------------------------------- /SFML external library/SFML/examples/opengl/resources/texture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/opengl/resources/texture.jpg -------------------------------------------------------------------------------- /SFML external library/SFML/examples/pong/pong.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/pong/pong.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/pong/resources/ball.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/pong/resources/ball.wav -------------------------------------------------------------------------------- /SFML external library/SFML/examples/pong/resources/sansation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/pong/resources/sansation.ttf -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/Effect.hpp: -------------------------------------------------------------------------------- 1 | #ifndef EFFECT_HPP 2 | #define EFFECT_HPP 3 | 4 | //////////////////////////////////////////////////////////// 5 | // Headers 6 | //////////////////////////////////////////////////////////// 7 | #include 8 | #include 9 | #include 10 | 11 | 12 | //////////////////////////////////////////////////////////// 13 | // Base class for effects 14 | //////////////////////////////////////////////////////////// 15 | class Effect : public sf::Drawable 16 | { 17 | public: 18 | 19 | virtual ~Effect() 20 | { 21 | } 22 | 23 | static void setFont(const sf::Font& font) 24 | { 25 | s_font = &font; 26 | } 27 | 28 | const std::string& getName() const 29 | { 30 | return m_name; 31 | } 32 | 33 | void load() 34 | { 35 | m_isLoaded = sf::Shader::isAvailable() && onLoad(); 36 | } 37 | 38 | void update(float time, float x, float y) 39 | { 40 | if (m_isLoaded) 41 | onUpdate(time, x, y); 42 | } 43 | 44 | void draw(sf::RenderTarget& target, sf::RenderStates states) const 45 | { 46 | if (m_isLoaded) 47 | { 48 | onDraw(target, states); 49 | } 50 | else 51 | { 52 | sf::Text error("Shader not\nsupported", getFont()); 53 | error.setPosition(320.f, 200.f); 54 | error.setCharacterSize(36); 55 | target.draw(error, states); 56 | } 57 | } 58 | 59 | protected: 60 | 61 | Effect(const std::string& name) : 62 | m_name(name), 63 | m_isLoaded(false) 64 | { 65 | } 66 | 67 | static const sf::Font& getFont() 68 | { 69 | assert(s_font != NULL); 70 | return *s_font; 71 | } 72 | 73 | private: 74 | 75 | // Virtual functions to be implemented in derived effects 76 | virtual bool onLoad() = 0; 77 | virtual void onUpdate(float time, float x, float y) = 0; 78 | virtual void onDraw(sf::RenderTarget& target, sf::RenderStates states) const = 0; 79 | 80 | private: 81 | 82 | std::string m_name; 83 | bool m_isLoaded; 84 | 85 | static const sf::Font* s_font; 86 | }; 87 | 88 | #endif // EFFECT_HPP 89 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/shader/resources/background.jpg -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/billboard.frag: -------------------------------------------------------------------------------- 1 | #version 150 2 | 3 | uniform sampler2D texture; 4 | 5 | in vec2 tex_coord; 6 | 7 | void main() 8 | { 9 | // Read and apply a color from the texture 10 | gl_FragColor = texture2D(texture, tex_coord); 11 | } 12 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/billboard.geom: -------------------------------------------------------------------------------- 1 | #version 150 2 | 3 | // The render target's resolution (used for scaling) 4 | uniform vec2 resolution; 5 | 6 | // The billboards' size 7 | uniform vec2 size; 8 | 9 | // Input is the passed point cloud 10 | layout (points) in; 11 | 12 | // The output will consist of triangle strips with four vertices each 13 | layout (triangle_strip, max_vertices = 4) out; 14 | 15 | // Output texture coordinates 16 | out vec2 tex_coord; 17 | 18 | // Main entry point 19 | void main() 20 | { 21 | // Caculate the half width/height of the billboards 22 | vec2 half_size = size / 2.f; 23 | 24 | // Scale the size based on resolution (1 would be full width/height) 25 | half_size /= resolution; 26 | 27 | // Iterate over all vertices 28 | for (int i = 0; i < gl_in.length(); i++) 29 | { 30 | // Retrieve the passed vertex position 31 | vec2 pos = gl_in[i].gl_Position.xy; 32 | 33 | // Bottom left vertex 34 | gl_Position = vec4(pos - half_size, 0.f, 1.f); 35 | tex_coord = vec2(1.f, 1.f); 36 | EmitVertex(); 37 | 38 | // Bottom right vertex 39 | gl_Position = vec4(pos.x + half_size.x, pos.y - half_size.y, 0.f, 1.f); 40 | tex_coord = vec2(0.f, 1.f); 41 | EmitVertex(); 42 | 43 | // Top left vertex 44 | gl_Position = vec4(pos.x - half_size.x, pos.y + half_size.y, 0.f, 1.f); 45 | tex_coord = vec2(1.f, 0.f); 46 | EmitVertex(); 47 | 48 | // Top right vertex 49 | gl_Position = vec4(pos + half_size, 0.f, 1.f); 50 | tex_coord = vec2(0.f, 0.f); 51 | EmitVertex(); 52 | 53 | // And finalize the primitive 54 | EndPrimitive(); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/billboard.vert: -------------------------------------------------------------------------------- 1 | void main() 2 | { 3 | // Transform the vertex position 4 | gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 5 | } 6 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/blink.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texture; 2 | uniform float blink_alpha; 3 | 4 | void main() 5 | { 6 | vec4 pixel = gl_Color; 7 | pixel.a = blink_alpha; 8 | gl_FragColor = pixel; 9 | } 10 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/blur.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texture; 2 | uniform float blur_radius; 3 | 4 | void main() 5 | { 6 | vec2 offx = vec2(blur_radius, 0.0); 7 | vec2 offy = vec2(0.0, blur_radius); 8 | 9 | vec4 pixel = texture2D(texture, gl_TexCoord[0].xy) * 4.0 + 10 | texture2D(texture, gl_TexCoord[0].xy - offx) * 2.0 + 11 | texture2D(texture, gl_TexCoord[0].xy + offx) * 2.0 + 12 | texture2D(texture, gl_TexCoord[0].xy - offy) * 2.0 + 13 | texture2D(texture, gl_TexCoord[0].xy + offy) * 2.0 + 14 | texture2D(texture, gl_TexCoord[0].xy - offx - offy) * 1.0 + 15 | texture2D(texture, gl_TexCoord[0].xy - offx + offy) * 1.0 + 16 | texture2D(texture, gl_TexCoord[0].xy + offx - offy) * 1.0 + 17 | texture2D(texture, gl_TexCoord[0].xy + offx + offy) * 1.0; 18 | 19 | gl_FragColor = gl_Color * (pixel / 16.0); 20 | } 21 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/devices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/shader/resources/devices.png -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/edge.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texture; 2 | uniform float edge_threshold; 3 | 4 | void main() 5 | { 6 | const float offset = 1.0 / 512.0; 7 | vec2 offx = vec2(offset, 0.0); 8 | vec2 offy = vec2(0.0, offset); 9 | 10 | vec4 hEdge = texture2D(texture, gl_TexCoord[0].xy - offy) * -2.0 + 11 | texture2D(texture, gl_TexCoord[0].xy + offy) * 2.0 + 12 | texture2D(texture, gl_TexCoord[0].xy - offx - offy) * -1.0 + 13 | texture2D(texture, gl_TexCoord[0].xy - offx + offy) * 1.0 + 14 | texture2D(texture, gl_TexCoord[0].xy + offx - offy) * -1.0 + 15 | texture2D(texture, gl_TexCoord[0].xy + offx + offy) * 1.0; 16 | 17 | vec4 vEdge = texture2D(texture, gl_TexCoord[0].xy - offx) * 2.0 + 18 | texture2D(texture, gl_TexCoord[0].xy + offx) * -2.0 + 19 | texture2D(texture, gl_TexCoord[0].xy - offx - offy) * 1.0 + 20 | texture2D(texture, gl_TexCoord[0].xy - offx + offy) * -1.0 + 21 | texture2D(texture, gl_TexCoord[0].xy + offx - offy) * 1.0 + 22 | texture2D(texture, gl_TexCoord[0].xy + offx + offy) * -1.0; 23 | 24 | vec3 result = sqrt(hEdge.rgb * hEdge.rgb + vEdge.rgb * vEdge.rgb); 25 | float edge = length(result); 26 | vec4 pixel = gl_Color * texture2D(texture, gl_TexCoord[0].xy); 27 | if (edge > (edge_threshold * 8.0)) 28 | pixel.rgb = vec3(0.0, 0.0, 0.0); 29 | else 30 | pixel.a = edge_threshold; 31 | gl_FragColor = pixel; 32 | } 33 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/shader/resources/logo.png -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/pixelate.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texture; 2 | uniform float pixel_threshold; 3 | 4 | void main() 5 | { 6 | float factor = 1.0 / (pixel_threshold + 0.001); 7 | vec2 pos = floor(gl_TexCoord[0].xy * factor + 0.5) / factor; 8 | gl_FragColor = texture2D(texture, pos) * gl_Color; 9 | } 10 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/sansation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/shader/resources/sansation.ttf -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/sfml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/shader/resources/sfml.png -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/storm.vert: -------------------------------------------------------------------------------- 1 | uniform vec2 storm_position; 2 | uniform float storm_total_radius; 3 | uniform float storm_inner_radius; 4 | 5 | void main() 6 | { 7 | vec4 vertex = gl_ModelViewMatrix * gl_Vertex; 8 | vec2 offset = vertex.xy - storm_position; 9 | float len = length(offset); 10 | if (len < storm_total_radius) 11 | { 12 | float push_distance = storm_inner_radius + len / storm_total_radius * (storm_total_radius - storm_inner_radius); 13 | vertex.xy = storm_position + normalize(offset) * push_distance; 14 | } 15 | 16 | gl_Position = gl_ProjectionMatrix * vertex; 17 | gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; 18 | gl_FrontColor = gl_Color; 19 | } 20 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/text-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/shader/resources/text-background.png -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/resources/wave.vert: -------------------------------------------------------------------------------- 1 | uniform float wave_phase; 2 | uniform vec2 wave_amplitude; 3 | 4 | void main() 5 | { 6 | vec4 vertex = gl_Vertex; 7 | vertex.x += cos(gl_Vertex.y * 0.02 + wave_phase * 3.8) * wave_amplitude.x 8 | + sin(gl_Vertex.y * 0.02 + wave_phase * 6.3) * wave_amplitude.x * 0.3; 9 | vertex.y += sin(gl_Vertex.x * 0.02 + wave_phase * 2.4) * wave_amplitude.y 10 | + cos(gl_Vertex.x * 0.02 + wave_phase * 5.2) * wave_amplitude.y * 0.3; 11 | 12 | gl_Position = gl_ModelViewProjectionMatrix * vertex; 13 | gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; 14 | gl_FrontColor = gl_Color; 15 | } 16 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/shader/shader.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/shader/shader.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sockets/Sockets.cpp: -------------------------------------------------------------------------------- 1 | 2 | //////////////////////////////////////////////////////////// 3 | // Headers 4 | //////////////////////////////////////////////////////////// 5 | #include 6 | #include 7 | 8 | 9 | void runTcpServer(unsigned short port); 10 | void runTcpClient(unsigned short port); 11 | void runUdpServer(unsigned short port); 12 | void runUdpClient(unsigned short port); 13 | 14 | 15 | //////////////////////////////////////////////////////////// 16 | /// Entry point of application 17 | /// 18 | /// \return Application exit code 19 | /// 20 | //////////////////////////////////////////////////////////// 21 | int main() 22 | { 23 | // Choose an arbitrary port for opening sockets 24 | const unsigned short port = 50001; 25 | 26 | // TCP, UDP or connected UDP ? 27 | char protocol; 28 | std::cout << "Do you want to use TCP (t) or UDP (u)? "; 29 | std::cin >> protocol; 30 | 31 | // Client or server ? 32 | char who; 33 | std::cout << "Do you want to be a server (s) or a client (c)? "; 34 | std::cin >> who; 35 | 36 | if (protocol == 't') 37 | { 38 | // Test the TCP protocol 39 | if (who == 's') 40 | runTcpServer(port); 41 | else 42 | runTcpClient(port); 43 | } 44 | else 45 | { 46 | // Test the unconnected UDP protocol 47 | if (who == 's') 48 | runUdpServer(port); 49 | else 50 | runUdpClient(port); 51 | } 52 | 53 | // Wait until the user presses 'enter' key 54 | std::cout << "Press enter to exit..." << std::endl; 55 | std::cin.ignore(10000, '\n'); 56 | std::cin.ignore(10000, '\n'); 57 | 58 | return EXIT_SUCCESS; 59 | } 60 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sockets/TCP.cpp: -------------------------------------------------------------------------------- 1 | 2 | //////////////////////////////////////////////////////////// 3 | // Headers 4 | //////////////////////////////////////////////////////////// 5 | #include 6 | #include 7 | 8 | 9 | //////////////////////////////////////////////////////////// 10 | /// Launch a server, wait for an incoming connection, 11 | /// send a message and wait for the answer. 12 | /// 13 | //////////////////////////////////////////////////////////// 14 | void runTcpServer(unsigned short port) 15 | { 16 | // Create a server socket to accept new connections 17 | sf::TcpListener listener; 18 | 19 | // Listen to the given port for incoming connections 20 | if (listener.listen(port) != sf::Socket::Done) 21 | return; 22 | std::cout << "Server is listening to port " << port << ", waiting for connections... " << std::endl; 23 | 24 | // Wait for a connection 25 | sf::TcpSocket socket; 26 | if (listener.accept(socket) != sf::Socket::Done) 27 | return; 28 | std::cout << "Client connected: " << socket.getRemoteAddress() << std::endl; 29 | 30 | // Send a message to the connected client 31 | const char out[] = "Hi, I'm the server"; 32 | if (socket.send(out, sizeof(out)) != sf::Socket::Done) 33 | return; 34 | std::cout << "Message sent to the client: \"" << out << "\"" << std::endl; 35 | 36 | // Receive a message back from the client 37 | char in[128]; 38 | std::size_t received; 39 | if (socket.receive(in, sizeof(in), received) != sf::Socket::Done) 40 | return; 41 | std::cout << "Answer received from the client: \"" << in << "\"" << std::endl; 42 | } 43 | 44 | 45 | //////////////////////////////////////////////////////////// 46 | /// Create a client, connect it to a server, display the 47 | /// welcome message and send an answer. 48 | /// 49 | //////////////////////////////////////////////////////////// 50 | void runTcpClient(unsigned short port) 51 | { 52 | // Ask for the server address 53 | sf::IpAddress server; 54 | do 55 | { 56 | std::cout << "Type the address or name of the server to connect to: "; 57 | std::cin >> server; 58 | } 59 | while (server == sf::IpAddress::None); 60 | 61 | // Create a socket for communicating with the server 62 | sf::TcpSocket socket; 63 | 64 | // Connect to the server 65 | if (socket.connect(server, port) != sf::Socket::Done) 66 | return; 67 | std::cout << "Connected to server " << server << std::endl; 68 | 69 | // Receive a message from the server 70 | char in[128]; 71 | std::size_t received; 72 | if (socket.receive(in, sizeof(in), received) != sf::Socket::Done) 73 | return; 74 | std::cout << "Message received from the server: \"" << in << "\"" << std::endl; 75 | 76 | // Send an answer to the server 77 | const char out[] = "Hi, I'm a client"; 78 | if (socket.send(out, sizeof(out)) != sf::Socket::Done) 79 | return; 80 | std::cout << "Message sent to the server: \"" << out << "\"" << std::endl; 81 | } 82 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sockets/UDP.cpp: -------------------------------------------------------------------------------- 1 | 2 | //////////////////////////////////////////////////////////// 3 | // Headers 4 | //////////////////////////////////////////////////////////// 5 | #include 6 | #include 7 | 8 | 9 | //////////////////////////////////////////////////////////// 10 | /// Launch a server, wait for a message, send an answer. 11 | /// 12 | //////////////////////////////////////////////////////////// 13 | void runUdpServer(unsigned short port) 14 | { 15 | // Create a socket to receive a message from anyone 16 | sf::UdpSocket socket; 17 | 18 | // Listen to messages on the specified port 19 | if (socket.bind(port) != sf::Socket::Done) 20 | return; 21 | std::cout << "Server is listening to port " << port << ", waiting for a message... " << std::endl; 22 | 23 | // Wait for a message 24 | char in[128]; 25 | std::size_t received; 26 | sf::IpAddress sender; 27 | unsigned short senderPort; 28 | if (socket.receive(in, sizeof(in), received, sender, senderPort) != sf::Socket::Done) 29 | return; 30 | std::cout << "Message received from client " << sender << ": \"" << in << "\"" << std::endl; 31 | 32 | // Send an answer to the client 33 | const char out[] = "Hi, I'm the server"; 34 | if (socket.send(out, sizeof(out), sender, senderPort) != sf::Socket::Done) 35 | return; 36 | std::cout << "Message sent to the client: \"" << out << "\"" << std::endl; 37 | } 38 | 39 | 40 | //////////////////////////////////////////////////////////// 41 | /// Send a message to the server, wait for the answer 42 | /// 43 | //////////////////////////////////////////////////////////// 44 | void runUdpClient(unsigned short port) 45 | { 46 | // Ask for the server address 47 | sf::IpAddress server; 48 | do 49 | { 50 | std::cout << "Type the address or name of the server to connect to: "; 51 | std::cin >> server; 52 | } 53 | while (server == sf::IpAddress::None); 54 | 55 | // Create a socket for communicating with the server 56 | sf::UdpSocket socket; 57 | 58 | // Send a message to the server 59 | const char out[] = "Hi, I'm a client"; 60 | if (socket.send(out, sizeof(out), server, port) != sf::Socket::Done) 61 | return; 62 | std::cout << "Message sent to the server: \"" << out << "\"" << std::endl; 63 | 64 | // Receive an answer from anyone (but most likely from the server) 65 | char in[128]; 66 | std::size_t received; 67 | sf::IpAddress sender; 68 | unsigned short senderPort; 69 | if (socket.receive(in, sizeof(in), received, sender, senderPort) != sf::Socket::Done) 70 | return; 71 | std::cout << "Message received from " << sender << ": \"" << in << "\"" << std::endl; 72 | } 73 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sockets/sockets.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/sockets/sockets.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sound-capture/SoundCapture.cpp: -------------------------------------------------------------------------------- 1 | 2 | //////////////////////////////////////////////////////////// 3 | // Headers 4 | //////////////////////////////////////////////////////////// 5 | #include 6 | #include 7 | 8 | 9 | //////////////////////////////////////////////////////////// 10 | /// Entry point of application 11 | /// 12 | /// \return Application exit code 13 | /// 14 | //////////////////////////////////////////////////////////// 15 | int main() 16 | { 17 | // Check that the device can capture audio 18 | if (sf::SoundRecorder::isAvailable() == false) 19 | { 20 | std::cout << "Sorry, audio capture is not supported by your system" << std::endl; 21 | return EXIT_SUCCESS; 22 | } 23 | 24 | // Choose the sample rate 25 | unsigned int sampleRate; 26 | std::cout << "Please choose the sample rate for sound capture (44100 is CD quality): "; 27 | std::cin >> sampleRate; 28 | std::cin.ignore(10000, '\n'); 29 | 30 | // Wait for user input... 31 | std::cout << "Press enter to start recording audio"; 32 | std::cin.ignore(10000, '\n'); 33 | 34 | // Here we'll use an integrated custom recorder, which saves the captured data into a SoundBuffer 35 | sf::SoundBufferRecorder recorder; 36 | 37 | // Audio capture is done in a separate thread, so we can block the main thread while it is capturing 38 | recorder.start(sampleRate); 39 | std::cout << "Recording... press enter to stop"; 40 | std::cin.ignore(10000, '\n'); 41 | recorder.stop(); 42 | 43 | // Get the buffer containing the captured data 44 | const sf::SoundBuffer& buffer = recorder.getBuffer(); 45 | 46 | // Display captured sound informations 47 | std::cout << "Sound information:" << std::endl; 48 | std::cout << " " << buffer.getDuration().asSeconds() << " seconds" << std::endl; 49 | std::cout << " " << buffer.getSampleRate() << " samples / seconds" << std::endl; 50 | std::cout << " " << buffer.getChannelCount() << " channels" << std::endl; 51 | 52 | // Choose what to do with the recorded sound data 53 | char choice; 54 | std::cout << "What do you want to do with captured sound (p = play, s = save) ? "; 55 | std::cin >> choice; 56 | std::cin.ignore(10000, '\n'); 57 | 58 | if (choice == 's') 59 | { 60 | // Choose the filename 61 | std::string filename; 62 | std::cout << "Choose the file to create: "; 63 | std::getline(std::cin, filename); 64 | 65 | // Save the buffer 66 | buffer.saveToFile(filename); 67 | } 68 | else 69 | { 70 | // Create a sound instance and play it 71 | sf::Sound sound(buffer); 72 | sound.play(); 73 | 74 | // Wait until finished 75 | while (sound.getStatus() == sf::Sound::Playing) 76 | { 77 | // Display the playing position 78 | std::cout << "\rPlaying... " << sound.getPlayingOffset().asSeconds() << " sec "; 79 | std::cout << std::flush; 80 | 81 | // Leave some CPU time for other threads 82 | sf::sleep(sf::milliseconds(100)); 83 | } 84 | } 85 | 86 | // Finished! 87 | std::cout << std::endl << "Done!" << std::endl; 88 | 89 | // Wait until the user presses 'enter' key 90 | std::cout << "Press enter to exit..." << std::endl; 91 | std::cin.ignore(10000, '\n'); 92 | 93 | return EXIT_SUCCESS; 94 | } 95 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sound-capture/sound-capture.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/sound-capture/sound-capture.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sound/resources/canary.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/sound/resources/canary.wav -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sound/resources/ding.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/sound/resources/ding.flac -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sound/resources/orchestral.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/sound/resources/orchestral.ogg -------------------------------------------------------------------------------- /SFML external library/SFML/examples/sound/sound.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/sound/sound.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/voip/VoIP.cpp: -------------------------------------------------------------------------------- 1 | 2 | //////////////////////////////////////////////////////////// 3 | // Headers 4 | //////////////////////////////////////////////////////////// 5 | #include 6 | #include 7 | #include 8 | 9 | 10 | //////////////////////////////////////////////////////////// 11 | // Function prototypes 12 | // (I'm too lazy to put them into separate headers...) 13 | //////////////////////////////////////////////////////////// 14 | void doClient(unsigned short port); 15 | void doServer(unsigned short port); 16 | 17 | 18 | //////////////////////////////////////////////////////////// 19 | /// Entry point of application 20 | /// 21 | /// \return Application exit code 22 | /// 23 | //////////////////////////////////////////////////////////// 24 | int main() 25 | { 26 | // Choose a random port for opening sockets (ports < 1024 are reserved) 27 | const unsigned short port = 2435; 28 | 29 | // Client or server ? 30 | char who; 31 | std::cout << "Do you want to be a server ('s') or a client ('c')? "; 32 | std::cin >> who; 33 | 34 | if (who == 's') 35 | { 36 | // Run as a server 37 | doServer(port); 38 | } 39 | else 40 | { 41 | // Run as a client 42 | doClient(port); 43 | } 44 | 45 | // Wait until the user presses 'enter' key 46 | std::cout << "Press enter to exit..." << std::endl; 47 | std::cin.ignore(10000, '\n'); 48 | 49 | return EXIT_SUCCESS; 50 | } 51 | -------------------------------------------------------------------------------- /SFML external library/SFML/examples/voip/voip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/voip/voip.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/win32/resources/image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/win32/resources/image1.jpg -------------------------------------------------------------------------------- /SFML external library/SFML/examples/win32/resources/image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/win32/resources/image2.jpg -------------------------------------------------------------------------------- /SFML external library/SFML/examples/win32/win32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/win32/win32.exe -------------------------------------------------------------------------------- /SFML external library/SFML/examples/window/window.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/examples/window/window.exe -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Audio.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_AUDIO_HPP 26 | #define SFML_AUDIO_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | 47 | 48 | #endif // SFML_AUDIO_HPP 49 | 50 | //////////////////////////////////////////////////////////// 51 | /// \defgroup audio Audio module 52 | /// 53 | /// Sounds, streaming (musics or custom sources), recording, 54 | /// spatialization. 55 | /// 56 | //////////////////////////////////////////////////////////// 57 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Audio/AlResource.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_ALRESOURCE_HPP 26 | #define SFML_ALRESOURCE_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | namespace sf 35 | { 36 | //////////////////////////////////////////////////////////// 37 | /// \brief Base class for classes that require an OpenAL context 38 | /// 39 | //////////////////////////////////////////////////////////// 40 | class SFML_AUDIO_API AlResource 41 | { 42 | protected: 43 | 44 | //////////////////////////////////////////////////////////// 45 | /// \brief Default constructor 46 | /// 47 | //////////////////////////////////////////////////////////// 48 | AlResource(); 49 | 50 | //////////////////////////////////////////////////////////// 51 | /// \brief Destructor 52 | /// 53 | //////////////////////////////////////////////////////////// 54 | ~AlResource(); 55 | }; 56 | 57 | } // namespace sf 58 | 59 | 60 | #endif // SFML_ALRESOURCE_HPP 61 | 62 | //////////////////////////////////////////////////////////// 63 | /// \class sf::AlResource 64 | /// \ingroup audio 65 | /// 66 | /// This class is for internal use only, it must be the base 67 | /// of every class that requires a valid OpenAL context in 68 | /// order to work. 69 | /// 70 | //////////////////////////////////////////////////////////// 71 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Audio/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_AUDIO_EXPORT_HPP 26 | #define SFML_AUDIO_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_AUDIO_EXPORTS) 38 | 39 | #define SFML_AUDIO_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_AUDIO_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_AUDIO_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/GpuPreference.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_GPUPREFERENCE_HPP 26 | #define SFML_GPUPREFERENCE_HPP 27 | 28 | 29 | //////////////////////////////////////////////////////////// 30 | /// Headers 31 | //////////////////////////////////////////////////////////// 32 | #include 33 | 34 | 35 | //////////////////////////////////////////////////////////// 36 | /// \file 37 | /// 38 | /// \brief File containing SFML_DEFINE_DISCRETE_GPU_PREFERENCE 39 | /// 40 | //////////////////////////////////////////////////////////// 41 | 42 | 43 | //////////////////////////////////////////////////////////// 44 | /// \def SFML_DEFINE_DISCRETE_GPU_PREFERENCE 45 | /// 46 | /// \brief A macro to encourage usage of the discrete GPU 47 | /// 48 | /// In order to inform the Nvidia/AMD driver that an SFML 49 | /// application could benefit from using the more powerful 50 | /// discrete GPU, special symbols have to be publicly 51 | /// exported from the final executable. 52 | /// 53 | /// SFML defines a helper macro to easily do this. 54 | /// 55 | /// Place SFML_DEFINE_DISCRETE_GPU_PREFERENCE in the 56 | /// global scope of a source file that will be linked into 57 | /// the final executable. Typically it is best to place it 58 | /// where the main function is also defined. 59 | /// 60 | //////////////////////////////////////////////////////////// 61 | #if defined(SFML_SYSTEM_WINDOWS) 62 | 63 | #define SFML_DEFINE_DISCRETE_GPU_PREFERENCE \ 64 | extern "C" __declspec(dllexport) unsigned long NvOptimusEnablement = 1; \ 65 | extern "C" __declspec(dllexport) unsigned long AmdPowerXpressRequestHighPerformance = 1; 66 | 67 | #else 68 | 69 | #define SFML_DEFINE_DISCRETE_GPU_PREFERENCE 70 | 71 | #endif 72 | 73 | 74 | #endif // SFML_GPUPREFERENCE_HPP 75 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Graphics.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_GRAPHICS_HPP 26 | #define SFML_GRAPHICS_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | #include 51 | #include 52 | #include 53 | #include 54 | #include 55 | #include 56 | #include 57 | #include 58 | #include 59 | 60 | 61 | #endif // SFML_GRAPHICS_HPP 62 | 63 | //////////////////////////////////////////////////////////// 64 | /// \defgroup graphics Graphics module 65 | /// 66 | /// 2D graphics module: sprites, text, shapes, ... 67 | /// 68 | //////////////////////////////////////////////////////////// 69 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Graphics/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_GRAPHICS_EXPORT_HPP 26 | #define SFML_GRAPHICS_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_GRAPHICS_EXPORTS) 38 | 39 | #define SFML_GRAPHICS_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_GRAPHICS_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_GRAPHICS_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Graphics/Glyph.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_GLYPH_HPP 26 | #define SFML_GLYPH_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | #include 33 | 34 | 35 | namespace sf 36 | { 37 | //////////////////////////////////////////////////////////// 38 | /// \brief Structure describing a glyph 39 | /// 40 | //////////////////////////////////////////////////////////// 41 | class SFML_GRAPHICS_API Glyph 42 | { 43 | public: 44 | 45 | //////////////////////////////////////////////////////////// 46 | /// \brief Default constructor 47 | /// 48 | //////////////////////////////////////////////////////////// 49 | Glyph() : advance(0) {} 50 | 51 | //////////////////////////////////////////////////////////// 52 | // Member data 53 | //////////////////////////////////////////////////////////// 54 | float advance; ///< Offset to move horizontally to the next character 55 | FloatRect bounds; ///< Bounding rectangle of the glyph, in coordinates relative to the baseline 56 | IntRect textureRect; ///< Texture coordinates of the glyph inside the font's texture 57 | }; 58 | 59 | } // namespace sf 60 | 61 | 62 | #endif // SFML_GLYPH_HPP 63 | 64 | 65 | //////////////////////////////////////////////////////////// 66 | /// \class sf::Glyph 67 | /// \ingroup graphics 68 | /// 69 | /// A glyph is the visual representation of a character. 70 | /// 71 | /// The sf::Glyph structure provides the information needed 72 | /// to handle the glyph: 73 | /// \li its coordinates in the font's texture 74 | /// \li its bounding rectangle 75 | /// \li the offset to apply to get the starting position of the next glyph 76 | /// 77 | /// \see sf::Font 78 | /// 79 | //////////////////////////////////////////////////////////// 80 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Graphics/PrimitiveType.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_PRIMITIVETYPE_HPP 26 | #define SFML_PRIMITIVETYPE_HPP 27 | 28 | namespace sf 29 | { 30 | //////////////////////////////////////////////////////////// 31 | /// \ingroup graphics 32 | /// \brief Types of primitives that a sf::VertexArray can render 33 | /// 34 | /// Points and lines have no area, therefore their thickness 35 | /// will always be 1 pixel, regardless the current transform 36 | /// and view. 37 | /// 38 | //////////////////////////////////////////////////////////// 39 | enum PrimitiveType 40 | { 41 | Points, ///< List of individual points 42 | Lines, ///< List of individual lines 43 | LineStrip, ///< List of connected lines, a point uses the previous point to form a line 44 | Triangles, ///< List of individual triangles 45 | TriangleStrip, ///< List of connected triangles, a point uses the two previous points to form a triangle 46 | TriangleFan, ///< List of connected triangles, a point uses the common center and the previous point to form a triangle 47 | Quads, ///< List of individual quads (deprecated, don't work with OpenGL ES) 48 | 49 | // Deprecated names 50 | LinesStrip = LineStrip, ///< \deprecated Use LineStrip instead 51 | TrianglesStrip = TriangleStrip, ///< \deprecated Use TriangleStrip instead 52 | TrianglesFan = TriangleFan ///< \deprecated Use TriangleFan instead 53 | }; 54 | 55 | } // namespace sf 56 | 57 | 58 | #endif // SFML_PRIMITIVETYPE_HPP 59 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Main.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_MAIN_HPP 26 | #define SFML_MAIN_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | #if defined(SFML_SYSTEM_IOS) 35 | 36 | // On iOS, we have no choice but to have our own main, 37 | // so we need to rename the user one and call it later 38 | #define main sfmlMain 39 | 40 | #endif 41 | 42 | 43 | #endif // SFML_MAIN_HPP 44 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Network.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_NETWORK_HPP 26 | #define SFML_NETWORK_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | 44 | 45 | #endif // SFML_NETWORK_HPP 46 | 47 | //////////////////////////////////////////////////////////// 48 | /// \defgroup network Network module 49 | /// 50 | /// Socket-based communication, utilities and higher-level 51 | /// network protocols (HTTP, FTP). 52 | /// 53 | //////////////////////////////////////////////////////////// 54 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Network/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_NETWORK_EXPORT_HPP 26 | #define SFML_NETWORK_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_NETWORK_EXPORTS) 38 | 39 | #define SFML_NETWORK_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_NETWORK_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_NETWORK_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Network/SocketHandle.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SOCKETHANDLE_HPP 26 | #define SFML_SOCKETHANDLE_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | #if defined(SFML_SYSTEM_WINDOWS) 34 | #include 35 | #endif 36 | 37 | 38 | namespace sf 39 | { 40 | //////////////////////////////////////////////////////////// 41 | // Define the low-level socket handle type, specific to 42 | // each platform 43 | //////////////////////////////////////////////////////////// 44 | #if defined(SFML_SYSTEM_WINDOWS) 45 | 46 | typedef UINT_PTR SocketHandle; 47 | 48 | #else 49 | 50 | typedef int SocketHandle; 51 | 52 | #endif 53 | 54 | } // namespace sf 55 | 56 | 57 | #endif // SFML_SOCKETHANDLE_HPP 58 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/OpenGL.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_OPENGL_HPP 26 | #define SFML_OPENGL_HPP 27 | 28 | 29 | //////////////////////////////////////////////////////////// 30 | /// Headers 31 | //////////////////////////////////////////////////////////// 32 | #include 33 | 34 | 35 | //////////////////////////////////////////////////////////// 36 | /// This file just includes the OpenGL headers, 37 | /// which have actually different paths on each system 38 | //////////////////////////////////////////////////////////// 39 | #if defined(SFML_SYSTEM_WINDOWS) 40 | 41 | // The Visual C++ version of gl.h uses WINGDIAPI and APIENTRY but doesn't define them 42 | #ifdef _MSC_VER 43 | #include 44 | #endif 45 | 46 | #include 47 | 48 | #elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) || defined(SFML_SYSTEM_OPENBSD) 49 | 50 | #if defined(SFML_OPENGL_ES) 51 | #include 52 | #include 53 | #else 54 | #include 55 | #endif 56 | 57 | #elif defined(SFML_SYSTEM_MACOS) 58 | 59 | #include 60 | 61 | #elif defined (SFML_SYSTEM_IOS) 62 | 63 | #include 64 | #include 65 | 66 | #elif defined (SFML_SYSTEM_ANDROID) 67 | 68 | #include 69 | #include 70 | 71 | // We're not using OpenGL ES 2+ yet, but we can use the sRGB extension 72 | #include 73 | #include 74 | 75 | #endif 76 | 77 | 78 | #endif // SFML_OPENGL_HPP 79 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/System.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SYSTEM_HPP 26 | #define SFML_SYSTEM_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | 51 | #endif // SFML_SYSTEM_HPP 52 | 53 | //////////////////////////////////////////////////////////// 54 | /// \defgroup system System module 55 | /// 56 | /// Base module of SFML, defining various utilities. It provides 57 | /// vector classes, Unicode strings and conversion functions, 58 | /// threads and mutexes, timing classes. 59 | /// 60 | //////////////////////////////////////////////////////////// 61 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/System/Err.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_ERR_HPP 26 | #define SFML_ERR_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | #include 33 | 34 | 35 | namespace sf 36 | { 37 | //////////////////////////////////////////////////////////// 38 | /// \brief Standard stream used by SFML to output warnings and errors 39 | /// 40 | //////////////////////////////////////////////////////////// 41 | SFML_SYSTEM_API std::ostream& err(); 42 | 43 | } // namespace sf 44 | 45 | 46 | #endif // SFML_ERR_HPP 47 | 48 | 49 | //////////////////////////////////////////////////////////// 50 | /// \fn sf::err 51 | /// \ingroup system 52 | /// 53 | /// By default, sf::err() outputs to the same location as std::cerr, 54 | /// (-> the stderr descriptor) which is the console if there's 55 | /// one available. 56 | /// 57 | /// It is a standard std::ostream instance, so it supports all the 58 | /// insertion operations defined by the STL 59 | /// (operator <<, manipulators, etc.). 60 | /// 61 | /// sf::err() can be redirected to write to another output, independently 62 | /// of std::cerr, by using the rdbuf() function provided by the 63 | /// std::ostream class. 64 | /// 65 | /// Example: 66 | /// \code 67 | /// // Redirect to a file 68 | /// std::ofstream file("sfml-log.txt"); 69 | /// std::streambuf* previous = sf::err().rdbuf(file.rdbuf()); 70 | /// 71 | /// // Redirect to nothing 72 | /// sf::err().rdbuf(NULL); 73 | /// 74 | /// // Restore the original output 75 | /// sf::err().rdbuf(previous); 76 | /// \endcode 77 | /// 78 | /// \return Reference to std::ostream representing the SFML error stream 79 | /// 80 | //////////////////////////////////////////////////////////// 81 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/System/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SYSTEM_EXPORT_HPP 26 | #define SFML_SYSTEM_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_SYSTEM_EXPORTS) 38 | 39 | #define SFML_SYSTEM_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_SYSTEM_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_SYSTEM_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/System/NativeActivity.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_NATIVEACTIVITY_HPP 26 | #define SFML_NATIVEACTIVITY_HPP 27 | 28 | 29 | //////////////////////////////////////////////////////////// 30 | // Headers 31 | //////////////////////////////////////////////////////////// 32 | #include 33 | 34 | 35 | #if !defined(SFML_SYSTEM_ANDROID) 36 | #error NativeActivity.hpp: This header is Android only. 37 | #endif 38 | 39 | 40 | struct ANativeActivity; 41 | 42 | namespace sf 43 | { 44 | //////////////////////////////////////////////////////////// 45 | /// \ingroup system 46 | /// \brief Return a pointer to the Android native activity 47 | /// 48 | /// You shouldn't have to use this function, unless you want 49 | /// to implement very specific details, that SFML doesn't 50 | /// support, or to use a workaround for a known issue. 51 | /// 52 | /// \return Pointer to Android native activity structure 53 | /// 54 | /// \sfplatform{Android,SFML/System/NativeActivity.hpp} 55 | /// 56 | //////////////////////////////////////////////////////////// 57 | SFML_SYSTEM_API ANativeActivity* getNativeActivity(); 58 | 59 | } // namespace sf 60 | 61 | 62 | #endif // SFML_NATIVEACTIVITY_HPP 63 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/System/Sleep.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SLEEP_HPP 26 | #define SFML_SLEEP_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | #include 33 | 34 | 35 | namespace sf 36 | { 37 | //////////////////////////////////////////////////////////// 38 | /// \ingroup system 39 | /// \brief Make the current thread sleep for a given duration 40 | /// 41 | /// sf::sleep is the best way to block a program or one of its 42 | /// threads, as it doesn't consume any CPU power. 43 | /// 44 | /// \param duration Time to sleep 45 | /// 46 | //////////////////////////////////////////////////////////// 47 | void SFML_SYSTEM_API sleep(Time duration); 48 | 49 | } // namespace sf 50 | 51 | 52 | #endif // SFML_SLEEP_HPP 53 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/System/String.inl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | 26 | //////////////////////////////////////////////////////////// 27 | template 28 | String String::fromUtf8(T begin, T end) 29 | { 30 | String string; 31 | Utf8::toUtf32(begin, end, std::back_inserter(string.m_string)); 32 | return string; 33 | } 34 | 35 | 36 | //////////////////////////////////////////////////////////// 37 | template 38 | String String::fromUtf16(T begin, T end) 39 | { 40 | String string; 41 | Utf16::toUtf32(begin, end, std::back_inserter(string.m_string)); 42 | return string; 43 | } 44 | 45 | 46 | //////////////////////////////////////////////////////////// 47 | template 48 | String String::fromUtf32(T begin, T end) 49 | { 50 | String string; 51 | string.m_string.assign(begin, end); 52 | return string; 53 | } 54 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/System/Thread.inl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | namespace priv 26 | { 27 | // Base class for abstract thread functions 28 | struct ThreadFunc 29 | { 30 | virtual ~ThreadFunc() {} 31 | virtual void run() = 0; 32 | }; 33 | 34 | // Specialization using a functor (including free functions) with no argument 35 | template 36 | struct ThreadFunctor : ThreadFunc 37 | { 38 | ThreadFunctor(T functor) : m_functor(functor) {} 39 | virtual void run() {m_functor();} 40 | T m_functor; 41 | }; 42 | 43 | // Specialization using a functor (including free functions) with one argument 44 | template 45 | struct ThreadFunctorWithArg : ThreadFunc 46 | { 47 | ThreadFunctorWithArg(F function, A arg) : m_function(function), m_arg(arg) {} 48 | virtual void run() {m_function(m_arg);} 49 | F m_function; 50 | A m_arg; 51 | }; 52 | 53 | // Specialization using a member function 54 | template 55 | struct ThreadMemberFunc : ThreadFunc 56 | { 57 | ThreadMemberFunc(void(C::*function)(), C* object) : m_function(function), m_object(object) {} 58 | virtual void run() {(m_object->*m_function)();} 59 | void(C::*m_function)(); 60 | C* m_object; 61 | }; 62 | 63 | } // namespace priv 64 | 65 | 66 | //////////////////////////////////////////////////////////// 67 | template 68 | Thread::Thread(F functor) : 69 | m_impl (NULL), 70 | m_entryPoint(new priv::ThreadFunctor(functor)) 71 | { 72 | } 73 | 74 | 75 | //////////////////////////////////////////////////////////// 76 | template 77 | Thread::Thread(F function, A argument) : 78 | m_impl (NULL), 79 | m_entryPoint(new priv::ThreadFunctorWithArg(function, argument)) 80 | { 81 | } 82 | 83 | 84 | //////////////////////////////////////////////////////////// 85 | template 86 | Thread::Thread(void(C::*function)(), C* object) : 87 | m_impl (NULL), 88 | m_entryPoint(new priv::ThreadMemberFunc(function, object)) 89 | { 90 | } 91 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/System/ThreadLocalPtr.inl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | 26 | namespace sf 27 | { 28 | //////////////////////////////////////////////////////////// 29 | template 30 | ThreadLocalPtr::ThreadLocalPtr(T* value) : 31 | ThreadLocal(value) 32 | { 33 | } 34 | 35 | 36 | //////////////////////////////////////////////////////////// 37 | template 38 | T& ThreadLocalPtr::operator *() const 39 | { 40 | return *static_cast(getValue()); 41 | } 42 | 43 | 44 | //////////////////////////////////////////////////////////// 45 | template 46 | T* ThreadLocalPtr::operator ->() const 47 | { 48 | return static_cast(getValue()); 49 | } 50 | 51 | 52 | //////////////////////////////////////////////////////////// 53 | template 54 | ThreadLocalPtr::operator T*() const 55 | { 56 | return static_cast(getValue()); 57 | } 58 | 59 | 60 | //////////////////////////////////////////////////////////// 61 | template 62 | ThreadLocalPtr& ThreadLocalPtr::operator =(T* value) 63 | { 64 | setValue(value); 65 | return *this; 66 | } 67 | 68 | 69 | //////////////////////////////////////////////////////////// 70 | template 71 | ThreadLocalPtr& ThreadLocalPtr::operator =(const ThreadLocalPtr& right) 72 | { 73 | setValue(right.getValue()); 74 | return *this; 75 | } 76 | 77 | } // namespace sf 78 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Window.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SFML_WINDOW_HPP 26 | #define SFML_SFML_WINDOW_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | 48 | 49 | 50 | #endif // SFML_SFML_WINDOW_HPP 51 | 52 | //////////////////////////////////////////////////////////// 53 | /// \defgroup window Window module 54 | /// 55 | /// Provides OpenGL-based windows, and abstractions for 56 | /// events and input handling. 57 | /// 58 | //////////////////////////////////////////////////////////// 59 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Window/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_WINDOW_EXPORT_HPP 26 | #define SFML_WINDOW_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_WINDOW_EXPORTS) 38 | 39 | #define SFML_WINDOW_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_WINDOW_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_WINDOW_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /SFML external library/SFML/include/SFML/Window/WindowStyle.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_WINDOWSTYLE_HPP 26 | #define SFML_WINDOWSTYLE_HPP 27 | 28 | 29 | namespace sf 30 | { 31 | namespace Style 32 | { 33 | //////////////////////////////////////////////////////////// 34 | /// \ingroup window 35 | /// \brief Enumeration of the window styles 36 | /// 37 | //////////////////////////////////////////////////////////// 38 | enum 39 | { 40 | None = 0, ///< No border / title bar (this flag and all others are mutually exclusive) 41 | Titlebar = 1 << 0, ///< Title bar + fixed border 42 | Resize = 1 << 1, ///< Title bar + resizable border + maximize button 43 | Close = 1 << 2, ///< Title bar + close button 44 | Fullscreen = 1 << 3, ///< Fullscreen mode (this flag and all others are mutually exclusive) 45 | 46 | Default = Titlebar | Resize | Close ///< Default window style 47 | }; 48 | } 49 | 50 | } // namespace sf 51 | 52 | 53 | #endif // SFML_WINDOWSTYLE_HPP 54 | -------------------------------------------------------------------------------- /SFML external library/SFML/lib/cmake/SFML/SFMLConfigVersion.cmake: -------------------------------------------------------------------------------- 1 | # This is a basic version file for the Config-mode of find_package(). 2 | # It is used by write_basic_package_version_file() as input file for configure_file() 3 | # to create a version-file which can be installed along a config.cmake file. 4 | # 5 | # The created file sets PACKAGE_VERSION_EXACT if the current version string and 6 | # the requested version string are exactly the same and it sets 7 | # PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version, 8 | # but only if the requested major version is the same as the current one. 9 | # The variable CVF_VERSION must be set before calling configure_file(). 10 | 11 | 12 | set(PACKAGE_VERSION "2.5.1") 13 | 14 | if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) 15 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 16 | else() 17 | 18 | if("2.5.1" MATCHES "^([0-9]+)\\.") 19 | set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") 20 | else() 21 | set(CVF_VERSION_MAJOR "2.5.1") 22 | endif() 23 | 24 | if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) 25 | set(PACKAGE_VERSION_COMPATIBLE TRUE) 26 | else() 27 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 28 | endif() 29 | 30 | if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) 31 | set(PACKAGE_VERSION_EXACT TRUE) 32 | endif() 33 | endif() 34 | 35 | 36 | # if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: 37 | if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") 38 | return() 39 | endif() 40 | 41 | # check that the installed version has the same 32/64bit-ness as the one which is currently searching: 42 | if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") 43 | math(EXPR installedBits "8 * 8") 44 | set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") 45 | set(PACKAGE_VERSION_UNSUITABLE TRUE) 46 | endif() 47 | -------------------------------------------------------------------------------- /SFML external library/SFML/lib/cmake/SFML/SFMLStaticTargets-debug.cmake: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # Generated CMake target import file for configuration "Debug". 3 | #---------------------------------------------------------------- 4 | 5 | # Commands may need to know the format version. 6 | set(CMAKE_IMPORT_FILE_VERSION 1) 7 | 8 | # Import target "sfml-system" for configuration "Debug" 9 | set_property(TARGET sfml-system APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) 10 | set_target_properties(sfml-system PROPERTIES 11 | IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" 12 | IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/sfml-system-s-d.lib" 13 | ) 14 | 15 | list(APPEND _IMPORT_CHECK_TARGETS sfml-system ) 16 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-system "${_IMPORT_PREFIX}/lib/sfml-system-s-d.lib" ) 17 | 18 | # Import target "sfml-main" for configuration "Debug" 19 | set_property(TARGET sfml-main APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) 20 | set_target_properties(sfml-main PROPERTIES 21 | IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" 22 | IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/sfml-main-d.lib" 23 | ) 24 | 25 | list(APPEND _IMPORT_CHECK_TARGETS sfml-main ) 26 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-main "${_IMPORT_PREFIX}/lib/sfml-main-d.lib" ) 27 | 28 | # Import target "sfml-window" for configuration "Debug" 29 | set_property(TARGET sfml-window APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) 30 | set_target_properties(sfml-window PROPERTIES 31 | IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" 32 | IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/sfml-window-s-d.lib" 33 | ) 34 | 35 | list(APPEND _IMPORT_CHECK_TARGETS sfml-window ) 36 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-window "${_IMPORT_PREFIX}/lib/sfml-window-s-d.lib" ) 37 | 38 | # Import target "sfml-network" for configuration "Debug" 39 | set_property(TARGET sfml-network APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) 40 | set_target_properties(sfml-network PROPERTIES 41 | IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" 42 | IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/sfml-network-s-d.lib" 43 | ) 44 | 45 | list(APPEND _IMPORT_CHECK_TARGETS sfml-network ) 46 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-network "${_IMPORT_PREFIX}/lib/sfml-network-s-d.lib" ) 47 | 48 | # Import target "sfml-graphics" for configuration "Debug" 49 | set_property(TARGET sfml-graphics APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) 50 | set_target_properties(sfml-graphics PROPERTIES 51 | IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" 52 | IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/sfml-graphics-s-d.lib" 53 | ) 54 | 55 | list(APPEND _IMPORT_CHECK_TARGETS sfml-graphics ) 56 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-graphics "${_IMPORT_PREFIX}/lib/sfml-graphics-s-d.lib" ) 57 | 58 | # Import target "sfml-audio" for configuration "Debug" 59 | set_property(TARGET sfml-audio APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) 60 | set_target_properties(sfml-audio PROPERTIES 61 | IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" 62 | IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/sfml-audio-s-d.lib" 63 | ) 64 | 65 | list(APPEND _IMPORT_CHECK_TARGETS sfml-audio ) 66 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-audio "${_IMPORT_PREFIX}/lib/sfml-audio-s-d.lib" ) 67 | 68 | # Commands beyond this point should not need to know the version. 69 | set(CMAKE_IMPORT_FILE_VERSION) 70 | -------------------------------------------------------------------------------- /SFML external library/SFML/lib/cmake/SFML/SFMLStaticTargets-release.cmake: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # Generated CMake target import file for configuration "Release". 3 | #---------------------------------------------------------------- 4 | 5 | # Commands may need to know the format version. 6 | set(CMAKE_IMPORT_FILE_VERSION 1) 7 | 8 | # Import target "sfml-system" for configuration "Release" 9 | set_property(TARGET sfml-system APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 10 | set_target_properties(sfml-system PROPERTIES 11 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" 12 | IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/sfml-system-s.lib" 13 | ) 14 | 15 | list(APPEND _IMPORT_CHECK_TARGETS sfml-system ) 16 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-system "${_IMPORT_PREFIX}/lib/sfml-system-s.lib" ) 17 | 18 | # Import target "sfml-main" for configuration "Release" 19 | set_property(TARGET sfml-main APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 20 | set_target_properties(sfml-main PROPERTIES 21 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" 22 | IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/sfml-main.lib" 23 | ) 24 | 25 | list(APPEND _IMPORT_CHECK_TARGETS sfml-main ) 26 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-main "${_IMPORT_PREFIX}/lib/sfml-main.lib" ) 27 | 28 | # Import target "sfml-window" for configuration "Release" 29 | set_property(TARGET sfml-window APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 30 | set_target_properties(sfml-window PROPERTIES 31 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" 32 | IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/sfml-window-s.lib" 33 | ) 34 | 35 | list(APPEND _IMPORT_CHECK_TARGETS sfml-window ) 36 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-window "${_IMPORT_PREFIX}/lib/sfml-window-s.lib" ) 37 | 38 | # Import target "sfml-network" for configuration "Release" 39 | set_property(TARGET sfml-network APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 40 | set_target_properties(sfml-network PROPERTIES 41 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" 42 | IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/sfml-network-s.lib" 43 | ) 44 | 45 | list(APPEND _IMPORT_CHECK_TARGETS sfml-network ) 46 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-network "${_IMPORT_PREFIX}/lib/sfml-network-s.lib" ) 47 | 48 | # Import target "sfml-graphics" for configuration "Release" 49 | set_property(TARGET sfml-graphics APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 50 | set_target_properties(sfml-graphics PROPERTIES 51 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" 52 | IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/sfml-graphics-s.lib" 53 | ) 54 | 55 | list(APPEND _IMPORT_CHECK_TARGETS sfml-graphics ) 56 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-graphics "${_IMPORT_PREFIX}/lib/sfml-graphics-s.lib" ) 57 | 58 | # Import target "sfml-audio" for configuration "Release" 59 | set_property(TARGET sfml-audio APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 60 | set_target_properties(sfml-audio PROPERTIES 61 | IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" 62 | IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/sfml-audio-s.lib" 63 | ) 64 | 65 | list(APPEND _IMPORT_CHECK_TARGETS sfml-audio ) 66 | list(APPEND _IMPORT_CHECK_FILES_FOR_sfml-audio "${_IMPORT_PREFIX}/lib/sfml-audio-s.lib" ) 67 | 68 | # Commands beyond this point should not need to know the version. 69 | set(CMAKE_IMPORT_FILE_VERSION) 70 | -------------------------------------------------------------------------------- /SFML external library/SFML/lib/flac.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/flac.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/freetype.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/freetype.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/ogg.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/ogg.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/openal32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/openal32.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-audio-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-audio-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-audio-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-audio-s-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-audio-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-audio-s.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-audio.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-audio.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-graphics-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-graphics-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-graphics-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-graphics-s-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-graphics-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-graphics-s.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-graphics.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-graphics.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-main-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-main-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-main.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-main.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-network-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-network-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-network-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-network-s-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-network-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-network-s.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-network.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-network.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-system-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-system-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-system-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-system-s-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-system-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-system-s.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-system.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-system.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-window-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-window-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-window-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-window-s-d.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-window-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-window-s.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/sfml-window.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/sfml-window.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/vorbis.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/vorbis.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/vorbisenc.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/vorbisenc.lib -------------------------------------------------------------------------------- /SFML external library/SFML/lib/vorbisfile.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/SFML external library/SFML/lib/vorbisfile.lib -------------------------------------------------------------------------------- /SFML external library/SFML/license.md: -------------------------------------------------------------------------------- 1 | # SFML 2 | 3 | SFML - Copyright (C) 2007-2018 Laurent Gomila - laurent@sfml-dev.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. 6 | 7 | Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 8 | 9 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 10 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 11 | 3. This notice may not be removed or altered from any source distribution. 12 | 13 | ## External libraries used by SFML 14 | 15 | * _OpenAL-Soft_ is under the LGPL license 16 | * _stb_image_ and _stb_image_write_ are public domain 17 | * _freetype_ is under the FreeType license or the GPL license 18 | * _libogg_ is under the BSD license 19 | * _libvorbis_ is under the BSD license 20 | * _libflac_ is under the BSD license 21 | -------------------------------------------------------------------------------- /SFML external library/SFML/readme.md: -------------------------------------------------------------------------------- 1 | [![SFML logo](https://www.sfml-dev.org/images/logo.png)](https://www.sfml-dev.org) 2 | 3 | # SFML — Simple and Fast Multimedia Library 4 | 5 | SFML is a simple, fast, cross-platform and object-oriented multimedia API. It provides access to windowing, graphics, audio and network. It is written in C++, and has bindings for various languages such as C, .Net, Ruby, Python. 6 | 7 | ## Authors 8 | 9 | - Laurent Gomila — main developer (laurent@sfml-dev.org) 10 | - Marco Antognini — OS X developer (hiura@sfml-dev.org) 11 | - Jonathan De Wachter — Android developer (dewachter.jonathan@gmail.com) 12 | - Jan Haller (bromeon@sfml-dev.org) 13 | - Stefan Schindler (tank@sfml-dev.org) 14 | - Lukas Dürrenberger (eXpl0it3r@sfml-dev.org) 15 | - binary1248 (binary1248@hotmail.com) 16 | - Artur Moreira (artturmoreira@gmail.com) 17 | - Mario Liebisch (mario@sfml-dev.org) 18 | - And many other members of the SFML community 19 | 20 | ## Download 21 | 22 | You can get the latest official release on [SFML's website](https://www.sfml-dev.org/download.php). You can also get the current development version from the [Git repository](https://github.com/SFML/SFML). 23 | 24 | ## Install 25 | 26 | Follow the instructions of the [tutorials](https://www.sfml-dev.org/tutorials/), there is one for each platform/compiler that SFML supports. 27 | 28 | ## Learn 29 | 30 | There are several places to learn SFML: 31 | 32 | * The [official tutorials](https://www.sfml-dev.org/tutorials/) 33 | * The [online API documentation](https://www.sfml-dev.org/documentation/) 34 | * The [community wiki](https://github.com/SFML/SFML/wiki/) 35 | * The [community forum](https://en.sfml-dev.org/forums/) ([French](https://fr.sfml-dev.org/forums/)) 36 | 37 | ## Contribute 38 | 39 | SFML is an open-source project, and it needs your help to go on growing and improving. If you want to get involved and suggest some additional features, file a bug report or submit a patch, please have a look at the [contribution guidelines](https://www.sfml-dev.org/contribute.php). 40 | -------------------------------------------------------------------------------- /images/AStar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/images/AStar.png -------------------------------------------------------------------------------- /images/BFS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/images/BFS.png -------------------------------------------------------------------------------- /images/DFS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/images/DFS.png -------------------------------------------------------------------------------- /images/astar begin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/images/astar begin.png -------------------------------------------------------------------------------- /images/astar solving.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/images/astar solving.png -------------------------------------------------------------------------------- /images/bestfs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/images/bestfs.png -------------------------------------------------------------------------------- /images/biBFS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/images/biBFS.png -------------------------------------------------------------------------------- /images/biDFS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/images/biDFS.png -------------------------------------------------------------------------------- /images/dijkstra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wholol/graph-visualizer/d63b20b9b6846ec86face6db131eca56c030f280/images/dijkstra.png --------------------------------------------------------------------------------