Compare commits

...

597 Commits

Author SHA1 Message Date
Bruno Herbelin
8048e91117 Merge branch 'beta' 2025-01-10 00:57:26 +01:00
Bruno Herbelin
19375e55b8 Package snap with launch under Wayland 2025-01-10 00:56:37 +01:00
Bruno Herbelin
4549665e08 oops 2025-01-09 19:51:35 +01:00
Bruno Herbelin
f8b42408e2 Ouups, glfw function not available... 2025-01-09 19:44:51 +01:00
Bruno Herbelin
077cd0b9fa Package Snap on Core24 with gpu and vimix launcher 2025-01-09 19:27:53 +01:00
Bruno Herbelin
8a336b3a6e Package launch_vimix script in flatpak and snap for wayland support
under wayland window manager, there are opengl driver issues (specifically for nvidia) so vimix shall be launched with specific settings using a launcher script
2025-01-09 18:58:46 +01:00
Bruno Herbelin
ab7a84c40f Packaging Flatpak for Wayland 2025-01-09 14:34:50 +01:00
Bruno Herbelin
d92e43d215 Merge remote-tracking branch 'origin/beta' 2025-01-06 12:15:52 +01:00
Bruno Herbelin
974618fc18 Cosmetic Icon menu patterns 2025-01-05 18:31:05 +01:00
Bruno Herbelin
88c2c3e12b BugFix Compile Color picker with TFD 2025-01-05 18:30:13 +01:00
Bruno Herbelin
26d35504c8 Centered zoom in Display view 2025-01-05 12:52:45 +01:00
Bruno Herbelin
24eec2687c Merge remote-tracking branch 'origin/beta' 2025-01-04 11:09:41 +01:00
Bruno Herbelin
e06bb0f9f3 Version 0.8.4 2025-01-04 11:09:11 +01:00
Bruno Herbelin
691cf421e3 Merge remote-tracking branch 'origin/beta' 2025-01-04 11:04:10 +01:00
Bruno Herbelin
0161126153 Update flatpak to Gnome 47 and latest dependencies 2025-01-04 11:02:21 +01:00
Bruno Herbelin
729cf52b68 BugFix Compilation without version 2025-01-04 09:40:49 +01:00
Bruno Herbelin
0bf89c18f9 Fix previous commit 2025-01-02 00:00:33 +01:00
Bruno Herbelin
40d3f83719 BugFix Important fix of Bundle Session source
premultiply alpha should NOT be applied to render session in framebuffer with alpha on surface : added a uniform to image shader to allow this. Fixed other problems related to creation and expand of bundle sources. Added a button to bundle a single source.
2025-01-01 23:55:39 +01:00
Bruno Herbelin
a36a7fe4b2 BugFix Render Shader Editor 2024-12-28 00:35:00 +01:00
Bruno Herbelin
717a8f2771 BugFix Trigger spring cursor while moving 2024-12-27 15:48:41 +01:00
Bruno Herbelin
ca0389a7b6 BugFix Icon menu for Metronome 2024-12-27 12:18:06 +01:00
Bruno Herbelin
25cad0bedf BugFix Shader Editor minor issues 2024-12-27 10:48:04 +01:00
Bruno Herbelin
76a96e39bd BugFix reverse Alpha source callback 2024-12-27 09:45:23 +01:00
Bruno Herbelin
29ef6c134e BugFix Set max beats per phase
Limit number of beats for input mapping to 32
2024-12-26 21:20:54 +01:00
Bruno Herbelin
fc1e011246 New Configuration of gamepad input
Settings now offer list of GLFW Joysticks to select as input mapping gamepad
2024-12-26 19:51:07 +01:00
Bruno Herbelin
dbe92512ae New Timer input mapping
First working implementation of metronome events mapping to source callbacks
2024-12-26 18:04:59 +01:00
Bruno Herbelin
d8a771e24f Merge changes for dev Input Mapping Timer 2024-12-23 19:16:01 +01:00
Bruno Herbelin
8a47e86685 BugFix main
return value on Test was wrong
2024-12-21 20:07:21 +01:00
Bruno Herbelin
fc91a74d05 BugFix Color dialog ends properly
Changed multithreading mechanism to use color value from color dialog, avoiding to rely on the testing of future value.
2024-12-21 19:55:00 +01:00
Bruno Herbelin
22d9c41357 BugFix Remove timeline single image
reset pbo size after close
2024-12-15 19:44:29 +01:00
Bruno Herbelin
0289f4c06e BugFix Shader Image filter set uniform value
Use uniform value from code on first compile, then keep value from active shader. Fix bug reading uniform value in code. Various code improvement.
2024-12-15 18:35:37 +01:00
Bruno Herbelin
21ff75b92e BugFix Shader editor and Image filter
Added 'build all' menu and fixed build of file shader
2024-12-13 23:38:01 +01:00
Bruno Herbelin
df0913727c Improve Shader Editor with shader files
Add a filename to FilteringProgram, and use the content of this file instead of code when file exists. Refer to this file in the menu of shader editor, when saving as or loading a file. Keep history of shader files in settings.
2024-12-10 00:14:35 +01:00
Bruno Herbelin
fb99136cc1 Improve Shader editor with selection of external files
IN PROGRESS - Allow user set a filename with the GLSL code for shaders, remember the list of shader files, control from dedicated menu in Shader editor window
2024-12-08 10:20:53 +01:00
Bruno Herbelin
b68a380e35 Adjust size of Italics font to match regular on screen 2024-12-08 10:17:10 +01:00
Bruno Herbelin
6027fc61dd UX tiny changes Media Player
Menu for selection and batch in Player add indication of selection.
2024-12-08 10:16:46 +01:00
Bruno Herbelin
edbc6190e4 Merge remote-tracking branch 'origin/beta' into beta 2024-11-28 19:47:01 +01:00
Bruno Herbelin
be55de91c1 Add SystemToolkit fn to load text file 2024-11-28 19:46:49 +01:00
Bruno Herbelin
7c55bab17b Change OSC Corner coordinate to be in Image reference frame 2024-11-27 23:17:26 +01:00
Bruno Herbelin
dec07ff3a5 BugFix Undo history
Force store of first status, and limit number of undo steps (even if huge number of 1000).
2024-11-27 19:43:41 +01:00
Bruno Herbelin
5742b20fa3 BugFix Shader Code refresh and convert to custom 2024-11-23 14:16:31 +01:00
Bruno Herbelin
ce4e964f09 New Window brightness and contrast corrections in Displays view 2024-11-23 10:10:07 +01:00
Bruno Herbelin
d28a82ff73 BugFix clamp OSC corner cordinates 2024-11-22 15:58:45 +01:00
Bruno Herbelin
ff39f8c458 Improve OSC with corner manipulation
Answering to issue #156
2024-11-22 15:08:28 +01:00
Bruno Herbelin
f24cb8dc96 BugFix OSC blending take float argument 2024-11-22 12:40:59 +01:00
Bruno Herbelin
d273a7fcb4 Bugfix return negative alpha values OSC sync session and batch 2024-11-20 23:35:28 +01:00
Bruno Herbelin
4e813c2540 Improve OSC commands for changing Blending modes
Response to issue #155. New OSC message to set blending mode of source, either by name (string) or integer (index)
2024-11-19 23:01:51 +01:00
Bruno Herbelin
2dd298f772 Merge remote-tracking branch 'origin/master' into beta 2024-11-17 09:57:05 +01:00
Bruno Herbelin
4d9063f16c BugFix return negative alpha values OSC sync command
Response to issue #157
2024-11-16 18:37:30 +01:00
Bruno Herbelin
136b1561c1 BugFix Custom Filter shader uniform variable
Response to issue #159. Allow uniform variable names with numbers and underscore, and values with float numbers (i.e. fixed the regular expression). Plus also fix a display bug in shader editor GUI.
2024-11-16 18:09:38 +01:00
Bruno Herbelin
5a933beb16 BugFix Transition Cross Fading temporarily disabled when faded
When session is already fade to black, the cross fading transition cannot be used. Added an icon in left panel to allow user to set the transition mode
2024-11-16 11:01:51 +01:00
Bruno Herbelin
7e2a34a825 BugFix Open side panel on clic on initials 2024-11-10 23:26:50 +01:00
Bruno Herbelin
b4600a289d Update doc and screenshots 2024-11-10 18:51:22 +01:00
Bruno Herbelin
e74ce1f4cc Merge remote-tracking branch 'origin/master' into beta 2024-11-10 16:50:39 +01:00
Bruno Herbelin
ba75777c0d Merge remote-tracking branch 'origin/beta' 2024-11-10 14:55:26 +01:00
Bruno Herbelin
92c0b4493a Release candidate 0.8.3 2024-11-10 14:55:15 +01:00
Bruno Herbelin
803231c558 BugFix Preview overlay on crop action in Geometry 2024-11-10 14:38:22 +01:00
Bruno Herbelin
120909f8d6 BugFix Sync Play to Session ready when loading
Add test of session state on Play callback; the play action is then called after all sources are ready, thus starting in sync.
2024-11-10 12:12:05 +01:00
Bruno Herbelin
f0f23cbd0b BugFix Media Source play and speed set on load
Fixed two problems; seek to key is causing jumps in timeline and undesirable behavior, set play speed on load was postponed (bad fix) and is now operational after normal load.
2024-11-10 11:37:35 +01:00
Bruno Herbelin
939a35ee97 BugFix Correct display of disabled media source 2024-11-09 20:17:32 +01:00
Bruno Herbelin
18e1785e57 BugFix Acceptable behavior for media Player timeline panel
First acceptable implementation of timeline editing panel, with cut and fading modes and UI.
2024-11-09 14:52:24 +01:00
Bruno Herbelin
bef2709834 Improve MediaPlayer with Stop and blackout at end
New media player loop mode to stop at end and set the frame to black or transparent (i.e. fading 0.f). Also fix bug to save status to 'playing' (i.e. user action) when mediaplayer is stopped automatically at end. Improve the way to test sources texture change for Source player window.
2024-11-09 10:23:51 +01:00
Bruno Herbelin
c063e2fc30 New icons 2024-11-09 10:10:05 +01:00
Bruno Herbelin
6e62ce15b5 Merge remote-tracking branch 'origin/beta' 2024-11-03 22:34:43 +01:00
Bruno Herbelin
19221e1fcc Fixed Icons 2024-11-03 22:20:40 +01:00
Bruno Herbelin
c25d6cb551 Improved icons for Action mapping color correction 2024-11-03 16:30:16 +01:00
Bruno Herbelin
86920a3083 BugFix Icon for Bundle source (GROUP) was taken 2024-11-03 14:01:49 +01:00
Bruno Herbelin
68c39290ec Improve UI in views
Eye candy and clarified tooltips for UI and menus in Geometry, layer and texture views
2024-11-03 10:38:48 +01:00
Bruno Herbelin
563f56d2a2 Improve Geometry view with mouse over handle 2024-11-02 23:35:55 +01:00
Bruno Herbelin
4174333b40 Improve busy animation Session Source in Transition view 2024-11-02 23:16:54 +01:00
Bruno Herbelin
a74445f9e4 Improve Layer view with Blending menu icons
New icons for blending modes declared in Shader class, used in combo box for blending mode selection in imguiVisitor, and added source context menu in Layer view.
2024-11-02 23:16:25 +01:00
Bruno Herbelin
859d8cc86c Improve Player show render after fading when needed
A source in Player shows the pre/post render split if there is a Mediaplayer that has a fading curve
2024-10-31 00:10:45 +01:00
Bruno Herbelin
d8d2f1c801 Improve Mixing and Layers view with clic on initials
Clic on initials of current source opens left panel for this source.
2024-10-28 22:14:17 +01:00
Bruno Herbelin
85308462eb Improve views
Just a bit more space and tooltips in the menus above Geometry, Texture and Display views
2024-10-28 20:52:39 +01:00
Bruno Herbelin
d84f8b14c4 Merge remote-tracking branch 'origin/master' into beta 2024-10-26 20:53:23 +02:00
A1219
0f4889923d Add files via upload (#150)
Added #include <algorithm> for compilation on Arch Linux
2024-10-17 11:38:18 +02:00
Bruno Herbelin
2093816f2d Merge remote-tracking branch 'origin/beta' 2024-10-13 23:58:30 +02:00
Bruno Herbelin
7de751f882 Improve error message of Mixer 2024-10-13 23:58:02 +02:00
Bruno Herbelin
6da476aebb bugFix Allow fail of Stream source without deleting FB
Reverting to previous code
2024-10-13 23:50:27 +02:00
Bruno Herbelin
7140d25a87 Improve GUI Player timeline panel
Adjust widgets to fit in panel
2024-10-13 23:29:28 +02:00
Bruno Herbelin
cb413a99f0 Merge remote-tracking branch 'origin/beta' 2024-10-13 20:32:02 +02:00
Bruno Herbelin
e6d21518d2 Bugfix Load mediaplayer with audio
Resolving issue #151
2024-10-13 20:30:58 +02:00
Bruno Herbelin
19e647ae84 BugFix Blur radius parameter
Scattered blur was wrongly adapting to resolution, and Gaussian blur was using half, not a quarter of the resolution
2024-10-13 15:04:44 +02:00
Bruno Herbelin
494f5c71bb Merge remote-tracking branch 'origin/beta' 2024-10-13 14:02:45 +02:00
Bruno Herbelin
c4ad80f3b9 BugFix Set Clone filter Uniform using callback for OSC
Async call to setProgramParameter is unsave (Issue  #149).
2024-10-13 14:02:08 +02:00
Bruno Herbelin
460fa6c8e6 Improve Player: show image after pipeline fading 2024-10-13 11:04:16 +02:00
Bruno Herbelin
5a62ffe178 BugFix Strong data testing before setting program parameters 2024-10-13 11:02:01 +02:00
Bruno Herbelin
c867d7bdf2 BugFix Prevent crash on calls to mixer before finished initializing 2024-10-13 11:01:14 +02:00
Bruno Herbelin
167cf7c659 Improve OSC Logs, Settings and testing
Stronger data testing on uniform message.
2024-10-13 11:00:29 +02:00
Bruno Herbelin
73a3ec3f63 Improve Undo History
Store a short label in XML for improved display of action history in list. Ensured all action labels include the source name (IMGUI visitor) and checked all action manager store action.
2024-10-09 16:15:01 +02:00
Bruno Herbelin
f8981248dc BugFix Safe access to xmldoc in snapshots and undo history
Added mutex to Action manager for access to undo history and added mutex to session's snapshots. Lock and unlock those mutex for all write access and long read access.
2024-10-08 19:05:52 +02:00
Bruno Herbelin
b90b2469b5 Merge remote-tracking branch 'origin/beta' 2024-10-05 14:01:42 +02:00
Bruno Herbelin
2de9ca144d Discard source callback (e.g. OSC) when user controls source
Cancel the source callback for alpha, grab, rotation etc. if the source is current and the related view has initialized an action (which would mean the user is controlling the current source).
2024-10-05 13:39:41 +02:00
Bruno Herbelin
f1a89a1c55 Improv Share pattern source among render window
As all RenderingWindow render the same frame buffer, a unique Stream pattern source can be rendered in all windows, thus saving resources.
2024-10-05 10:27:50 +02:00
Bruno Herbelin
3909aa4ab7 Minor improvements
Display hourglass in left panel to inform source is loading and prevent buttons when loading + Varia.
2024-10-05 01:07:05 +02:00
Bruno Herbelin
10e95f5388 BugFix Prevent warnings gstreamer 2024-10-04 19:23:16 +02:00
Bruno Herbelin
21bb2af7ea BugFix Stream discoverer don't need to unref caps 2024-10-04 17:41:37 +02:00
Bruno Herbelin
9b7b4071bf Merge remote-tracking branch 'origin/beta' 2024-10-04 17:12:33 +02:00
Bruno Herbelin
2ec267fc4f BugFix Buffer reset to be ready for reload 2024-10-04 17:10:07 +02:00
Bruno Herbelin
e6b954e9e8 BugFix prevent busy init of checkerboard texture 2024-10-04 16:29:51 +02:00
Bruno Herbelin
b2ce0f3934 Re-implementation of MediaPlayer and Stream update
Avoid using gst video frames, and simply copy buffer instead. Use gst memory map to access pointer to RGBA data. unreferencing the buffer frees the memory (apparently). Also free OpenGL objects on close to free memory.
Overall, memory consumption seems to be reduced.
2024-10-04 16:29:02 +02:00
Bruno Herbelin
01d3a91e40 BugFix MediaPlayer and Stream ending order fixed 2024-10-03 21:32:14 +02:00
Bruno Herbelin
cf0b87298d BugFix MediaPlayer adjustments 2024-10-03 20:34:24 +02:00
Bruno Herbelin
02c69c1686 BugFix Restore PlaySpeed on MediaPlayer load
Issue reported  #148
2024-10-03 19:16:08 +02:00
Bruno Herbelin
9a53ffa6d0 Cleanup code
Remove unused #include, add header when missing
2024-10-03 18:27:04 +02:00
Bruno Herbelin
d22e23937f Merge remote-tracking branch 'origin/beta' 2024-10-03 16:29:33 +02:00
Bruno Herbelin
7b820e10e0 BugFix Compilation _M_X64 OSC 2024-10-03 16:29:12 +02:00
Bruno Herbelin
d795fee579 Merge remote-tracking branch 'origin/beta' 2024-10-03 16:19:31 +02:00
Bruno Herbelin
80418162d4 Enabling GST_BUS_MESSAGE for mediaplayer and stream 2024-10-03 16:18:46 +02:00
Bruno Herbelin
32c83a6eee BugFix Gst Pipeline closing and unreferencing
Need to empty pipeline bus if IGNORE_GST_BUS_MESSAGE is not set. Ensuring all gst_objects are unreferenced properly to be erased.
2024-10-03 14:56:58 +02:00
Bruno Herbelin
d0b8cf0275 BugFix Ref pipeline for successful dereferencing and memory free 2024-10-01 14:26:10 +02:00
Bruno Herbelin
74fa6da8c2 Merge remote-tracking branch 'origin/master' into beta 2024-09-05 09:37:25 +02:00
Bruno Herbelin
f199f96f7b Minor OSX Bugfix 2024-09-02 13:19:36 +02:00
Bruno Herbelin
bfc13549e9 Merge remote-tracking branch 'origin/master' into beta 2024-09-01 23:50:23 +02:00
Bruno Herbelin
7660b07fa8 BugFix missing test of audio settings 2024-09-01 23:48:42 +02:00
Bruno Herbelin
b72054c2f7 BugFix missing window size for Shader Editor 2024-09-01 23:43:04 +02:00
Bruno Herbelin
9dcbc38231 DeviceSource pixel format not working on OSX
Discard the forced setting of pixel format for a device source as it causes problems and seems useless
2024-09-01 23:39:22 +02:00
Bruno Herbelin
dbb50cf580 Documenting how to perform post-install OSX 2024-09-01 23:37:31 +02:00
Bruno Herbelin
da0782d036 Apple MacOS Packaging and App signing
Successful cpack with fixup bundle on arm64 M2.
Signing of the .app and all binary dependencies within the cmake install process.
Fixed minor issues with OSX compilation.
2024-09-01 20:53:34 +02:00
Bruno Herbelin
778801992d Merge remote-tracking branch 'origin/beta' 2024-08-24 22:43:06 +02:00
Bruno Herbelin
f410ff0ed2 CMAKE generation warning fix
exec_program() command should not be called and has been superseded by execute_process()
2024-08-24 22:39:17 +02:00
Bruno Herbelin
23685253a8 Compilation fix GLAD with version Glad 2
Re-generated GLAD library with Version 2 from https://gen.glad.sh/
Integrated into CMake and RenderingManager loader.
2024-08-24 22:38:17 +02:00
Bruno Herbelin
21ad2cab07 Merge remote-tracking branch 'origin/master' into beta 2024-08-24 20:56:46 +02:00
Bruno Herbelin
c5a14422ee Left navigation panel priority for menu
Selecting a source does not exit Session or Playlist panel.
2024-08-24 20:29:30 +02:00
Bruno Herbelin
c12deb4b56 Compilation warning fix 2024-08-24 19:52:32 +02:00
Bruno Herbelin
792d98dfd5 Merge remote-tracking branch 'origin/master' into beta 2024-08-24 13:24:57 +02:00
Bruno Herbelin
12aa3b19d5 BUGFIX FOR APPLE OSXAUDIOSINK 2024-08-24 13:23:50 +02:00
Bruno Herbelin
4b3f782ece Merge remote-tracking branch 'origin/master' into beta 2024-08-24 08:55:01 +02:00
Bruno Herbelin
0016a41474 OSX Audio compatibility 2024-08-18 00:18:56 +02:00
Bruno Herbelin
e115981b9f OSX 14 M2 platform compilation 2024-08-17 23:31:03 +02:00
Bruno Herbelin
94fbe58fb7 New toolbox Timeline editor
DRAFT implementation of a new toolbox to apply fade-in and fade-out and to cut the timeline.
2024-07-13 12:32:05 +02:00
Bruno
90962d0391 Merge remote-tracking branch 'origin/beta' 2024-06-06 14:15:19 +02:00
Bruno Herbelin
7092de8809 Improv Shader Editor UI and clone create 2024-05-30 23:12:59 +02:00
Bruno Herbelin
81a0a724ab BugFix ImageFilters Repair filters
Use of secondary texture in image shader (renamed from mask texture) in image filters for ichannel_1 as texture of display loopback only if not needed otherwise (e.g. input image needed in Sharpen filter).
2024-05-26 23:56:23 +02:00
Bruno Herbelin
34297feed4 Improv GUI, begin menu icon, tool menu name 2024-05-26 10:55:46 +02:00
Bruno Herbelin
4407f8ac68 BugFix Allow Clone sources to retry after fail
By keeping the name of the origin source of a clone, the session can attempt at recreating a clone when the origin source changed or have been replaced, even after detachment of the clone.
2024-05-25 09:05:14 +02:00
Bruno Herbelin
3de691fa0d BugFix Rename source when replaced
Renaming of source when replacing a source should be done after deletion of the previous one for the name to be available
2024-05-25 08:58:06 +02:00
Bruno Herbelin
e7f388999d Improv appearance of tooltips
Ensure uniform border size around tooltips with image, lighter color background for better visibility.
2024-05-20 13:19:34 +02:00
Bruno Herbelin
8d66913a8e BugFix Restore CTRL+F for main window fullscreen
Bug introduced at commit e3b8ccff9e
2024-05-20 10:48:35 +02:00
Bruno Herbelin
b30b5b6474 Merge remote-tracking branch 'origin/master' into beta 2024-05-18 19:41:09 +02:00
Bruno Herbelin
19b8412d67 Merge remote-tracking branch 'origin/brunoherbelin-patch-1' 2024-05-18 19:27:06 +02:00
BHBN
24d2555c5e Fixed README.md 2024-05-18 19:23:07 +02:00
Bruno Herbelin
322564bc42 Merge remote-tracking branch 'origin/beta' 2024-05-18 19:21:11 +02:00
Bruno Herbelin
12bff7aa9e BugFix Shmdata sink broadcasting Shared Memory
Fix termination of shmdatasink, improved UI and doc.
2024-05-18 19:19:27 +02:00
Bruno Herbelin
d87a84db85 Merge remote-tracking branch 'origin/beta' 2024-05-18 13:26:11 +02:00
Bruno Herbelin
b38017eb1c Improv Left Panel Layout with buttons on top
Seemed better to have large title for panel (Session, Playlist and Settings) and the selection buttons aligned int the top row. Minor adjustments of layout.
2024-05-18 12:32:38 +02:00
Bruno Herbelin
2d99870ec2 BugFix Upgrade to gstreamer 1.24
Upgrade to Ubuntu 24.04 also lead to upgrade gst to 1.24, which introduces the propose_allocation field in GstAppSinkCallbacks: not initializing it causes a crash.
2024-05-18 11:03:52 +02:00
Bruno Herbelin
6f7a4aa234 BugFix. Synch for Recording
Allows synch or video and audio recording, even when pausing record and resuming at different times.
2024-05-17 21:39:10 +02:00
Bruno Herbelin
49add7e0f8 BugFix Typos Log 2024-05-17 19:12:34 +02:00
Bruno Herbelin
c2708078db BugFix Pause Recording: correct timing and sync audio 2024-05-04 00:45:49 +02:00
Bruno Herbelin
a46e68f145 BugFix Video recorder and image sequence encoder
Improved and simplified UI control of encoding of image sequences into video files. Bugs fixed to prevent problems with video recorder.
2024-05-01 23:29:08 +02:00
Bruno Herbelin
a4f8d46d69 BugFix H264 and H265 Recording
Use of zerolatency tuning is needed to ensure timestamps pushed by encoder are respected. Fixed encoding pipeline settings.
2024-04-30 19:18:33 +02:00
Bruno Herbelin
94d6bc4bca BugFix Close NewSource panel on exit
Ensures source preview is deleted, avoids crash.
2024-04-30 17:47:11 +02:00
Bruno Herbelin
ec78631691 Improv MultiFileRecorder to use gstreamer instead of STB
Allows adding images of different size and formats, faster decoding and encoding, add keyframes in recorded video.
2024-04-29 23:49:41 +02:00
Bruno Herbelin
cd8f9792ab BugFix Add keyframes every second of output recording
Also compilation warning fix for GValue init.
2024-04-29 23:45:48 +02:00
Bruno Herbelin
fd9c868c40 BugFix Duration of Timeline at zero to delete timeline
Also allows to Cancel on first creation of timeline
2024-04-25 18:51:48 +02:00
Bruno Herbelin
6282500305 Merge remote-tracking branch 'origin/master' into beta 2024-04-21 23:21:05 +02:00
Bruno Herbelin
7b5bc6d236 BugFix Implementation of Audio in Source
Generalized audio support into Source class, instead of MediaPlayer.
2024-04-21 23:20:44 +02:00
Bruno Herbelin
3e45ec7353 Fixup Snap package Unity
Removing plug to Unity seems to fix the problem with Unity7 (Unity8 is not available yet for production)
2024-04-17 12:04:02 +02:00
Bruno Herbelin
5051f4e38c Fixup Typo metainfo categories 2024-04-17 11:44:24 +02:00
Bruno Herbelin
5532e3349a Merge branch 'master' of https://github.com/brunoherbelin/vimix 2024-04-08 19:11:19 +02:00
Bruno Herbelin
4ea7a09583 Typo Fix metainfo.xml flatpak 2024-04-08 19:11:07 +02:00
Bruno Herbelin
affba5a29f Typo Fix metainfo.xml flatpak 2024-04-08 19:09:55 +02:00
Bruno Herbelin
d486055fc8 Fixup Flatpak
flathub uses 'rename desktop file' and the file vimix.desktop should not be already named io.github.brunoherbelin.Vimix.desktop.
2024-04-07 10:37:14 +02:00
Bruno Herbelin
52b7cd68c1 BugFix flatpak desktop file 2024-04-06 13:34:15 +02:00
Bruno Herbelin
afdf4bf108 BugFix Snap with Unity8
GLFW  was failing to create windows: using unity8 seems to fix this. Tested local snap
2024-04-06 11:17:27 +02:00
Bruno Herbelin
a33dbac984 Merge remote-tracking branch 'origin/beta' 2024-04-06 11:03:17 +02:00
Bruno Herbelin
ff48107b1a New Shader of Image Filter takes display loopback as channel 1
Allows blending with output in GLSL shader
2024-03-28 14:27:43 +01:00
Bruno Herbelin
3afaaed1fb BugFix Fail source on gstreamer error detection 2024-03-28 12:09:23 +01:00
Bruno Herbelin
7ca6299fba BugFix Exit all fullscreen on monitor disconnect 2024-03-28 09:54:52 +01:00
Bruno Herbelin
cba7f5b801 Merge remote-tracking branch 'origin/beta' 2024-03-25 13:25:55 +01:00
Bruno Herbelin
d75ed8aeee BugFix Include audio support to Snap package
Also disabling wayland : seems to be incompatible with GLFW window creation
2024-03-25 13:25:00 +01:00
Bruno Herbelin
b9b2984235 BugFix Include audio support to Flathub package 2024-03-24 22:06:24 +01:00
Bruno Herbelin
c2b7892e6c Merge branch 'beta' of https://github.com/brunoherbelin/vimix into beta 2024-03-23 22:07:33 +01:00
Bruno Herbelin
6ce07c0a4b Bugfix Correct coordinate projection on fullscreen GUI
When GUI window is fullscreen, computation of projection of UI elements should not correct for DPI
2024-03-23 22:07:09 +01:00
Bruno Herbelin
008e217a79 BugFix Update windows status on monitor disconnect
Un-fullscreen windows that were fullscreen in a disconnected monitor, update geometry for windows that were moved after monitor disconnect
2024-03-23 22:05:51 +01:00
Bruno Herbelin
5847e52fbc Improve Input Mapping GUI
Input Mode menu do not show tick mark, switch mode on input
2024-03-22 21:09:08 +01:00
Bruno Herbelin
e9baa25b46 Improved Transition view
Update Transition panel to natch new navigator panel style. Add curse selection in view.
2024-03-17 23:31:04 +01:00
Bruno Herbelin
b6213e1ed8 New Simplified Transition view with icons on source and target 2024-03-17 19:59:07 +01:00
Bruno Herbelin
59ac3a0bb8 Flatpak update 2024-03-16 10:22:26 +01:00
Bruno Herbelin
9b63972878 Merge remote-tracking branch 'origin/beta' 2024-03-15 23:28:32 +01:00
Bruno Herbelin
4955e24f12 BugFix Restart on Re-activation for Stream source 2024-03-15 23:19:51 +01:00
Bruno Herbelin
16fb654b98 BugFix Restart on Re-activation
Response to #133
2024-03-15 20:18:31 +01:00
Bruno Herbelin
eda88b3078 BugFix Create Favorite playlist even if not existing 2024-03-15 18:55:19 +01:00
Bruno Herbelin
2435277e49 Compilation Fix OSX 14 2024-03-15 18:50:53 +01:00
Bruno Herbelin
7caded7c95 Improved Transition view panel
Simplified and matching changes to transition view
2024-03-14 00:20:43 +01:00
Bruno Herbelin
df6cdf9a80 New Transition view improved actions
Add play icon on target to indicate action to do, replace 'open' button by fast forward icon. + Bugfix crash on exit in Transition view.
2024-03-14 00:03:19 +01:00
Bruno Herbelin
25be63ef2c BugFix Remove input callbacks when removing source
Response to issue #130
2024-03-11 23:09:35 +01:00
Bruno Herbelin
b0a042369f New Uniform variables in example GLSL shader 2024-03-11 00:21:38 +01:00
Bruno Herbelin
d8d68dcf71 BugFix Typo in media pattern for SVG 2024-03-10 15:42:23 +01:00
Bruno Herbelin
133fb661b3 BugFix Shader Editor window keeps text when disabled
Deselect clone source with custorm shader keeps shader code in editor, except when changing source. Support for CTRL+S for saving session after building shader.
2024-03-10 15:09:54 +01:00
Bruno Herbelin
d5f2b375a6 New User defined uniforms in Custom shaders 2024-03-10 11:51:13 +01:00
Bruno Herbelin
f280d3b64c New OSC Target for Alias and renaming source
Allow creating temporary OSC aliases to link to a target by ID or name. Allow renaming a source from OSC.
2024-03-09 00:05:56 +01:00
Bruno Herbelin
e20261fa66 BugFix OSX compile 2024-03-06 08:29:10 +01:00
Bruno Herbelin
b6a41d417d BugFix close stream 2024-03-03 23:26:16 +01:00
Bruno Herbelin
80f3052c2b Improv GUI selection list of Patterns for Source
Sub-menus for static and animated patterns (instead of ugly icons)
2024-03-03 23:18:57 +01:00
Bruno Herbelin
62060e0c04 BugFix Post-MemCheck fix memory leaks corrections 2024-03-03 20:02:29 +01:00
Bruno Herbelin
f3f7c57f10 BugFix Added Pipeline Bus sugnal handler
Captures error messages from the bus, and importantly removes all messages in the bus to free memory continuously instead of stacking messages indefinitely.
2024-03-03 09:39:10 +01:00
Bruno Herbelin
82d61909f6 BugFix ensure Mixer clear termination 2024-02-29 22:52:47 +01:00
Bruno Herbelin
03c68d1dc3 BugFix improved complete close of session
Wait for all registered pipelines to end when clearing the mixer manager (closing is asynchronous).
2024-02-28 18:47:54 +01:00
Bruno Herbelin
05f593e40c BugFix Ensure complete close of session upon termination
Async ending of gst pipeline in stream and media player sources caused a crash at termination as source was still not closed when process was ended. Fix is to ask for an immediate termination of gst pipeline upon delete of stream, and to wait for mixer manager to end current session when clearing.
2024-02-28 00:39:03 +01:00
Bruno Herbelin
5719c6cfc2 Merge remote-tracking branch 'origin/beta' 2024-02-25 22:18:59 +01:00
Bruno Herbelin
1ba8ff06e1 BugFix restore window decoration 2024-02-25 22:17:40 +01:00
Bruno Herbelin
fae5d09001 Improvement Performance optimization 2024-02-25 21:58:44 +01:00
Bruno Herbelin
3eecb412c6 Merge remote-tracking branch 'origin/beta' 2024-02-24 20:20:59 +01:00
Bruno Herbelin
b022be49a1 New Settings export and command-line load
Allows exporting settings in XML file and launch vimix from command line with given XML filename as argument to restore all settings and windows configuration.
2024-02-24 20:05:19 +01:00
Bruno Herbelin
7238eccfd2 BugFix CPU usage for nothing 2024-02-24 11:44:05 +01:00
Bruno Herbelin
e3b8ccff9e New Headless execution mode (DRAFT) 2024-02-23 23:29:20 +01:00
Bruno Herbelin
c1aa3c9d4d Add Action Fullscreen to View Menu 2024-02-22 22:40:32 +01:00
Bruno Herbelin
00345c94a3 New OSC Play fast forward 2024-02-18 19:26:01 +01:00
Bruno Herbelin
20001e6a26 New OSC grab and resize animate 2024-02-18 19:16:06 +01:00
Bruno Herbelin
c06fdc7760 New OSC animation of alpha, position, size, etc.
Added animation duration argument to OSC messages alpha, depth, position, size and angle.
2024-02-18 17:33:23 +01:00
Bruno Herbelin
8e28eba959 New OSC Filter attribute of source
Adding attribute for setting filter:  set filter by name, set method by name, set first argument value
2024-02-17 23:42:03 +01:00
Bruno Herbelin
47ff1a2dd8 BugFix Allow providing font size as runtime argument
Because with some monitors the resolution is not detected, font appearance can be unsatisfying (#121). User can now set it with --fontsize N argument when launching vimix in command line. Code for managing command line arguments is generaly improved. Man page updated.
2024-02-05 16:02:38 +01:00
Bruno Herbelin
00ff0f532f Work in progress OpenGL Decoding for gst appsink 2024-02-04 21:59:58 +01:00
Bruno Herbelin
2e0732c75b BugFix Improved Stream close (async)
Unified mechanism for async close of pipeline for stream and mediaplayer
2024-02-02 17:04:56 +01:00
Bruno Herbelin
842247de54 BugFix Seek OSC as percent of play duration
Response to issue #120
2024-02-02 14:53:23 +01:00
Bruno Herbelin
52840ce8ae Compilation fix 2024-01-30 20:32:39 +01:00
Bruno Herbelin
f640d2574b Merge remote-tracking branch 'origin/beta' 2024-01-29 00:26:06 +01:00
Bruno Herbelin
8598aad9e2 Eyecandy various GUI improvements 2024-01-28 20:40:12 +01:00
Bruno Herbelin
5dc82aadc7 New Cursor following overlay animation when busy 2024-01-28 19:05:15 +01:00
Bruno Herbelin
2f8411a658 Improved vimix first launch (or after upgrade)
Changed Mixer Load behavior at init, detect change of version and do not load settings if different, show About Vimix after change of version, fixed initial position of windows at first run.
2024-01-28 12:26:05 +01:00
Bruno Herbelin
fcce9b62d5 BugFix Bounce playback at first frame 2024-01-27 18:30:12 +01:00
Bruno Herbelin
5a077d2f52 BugFix Allow larger font size and UI scale 2024-01-27 14:45:36 +01:00
Bruno Herbelin
36f8ea8df0 BugFix Improve GPU Memory Framebuffer monitoring
Count allocation of framebuffers in Bytes and draw plot in ToolBox.
2024-01-27 13:00:38 +01:00
Bruno Herbelin
fe623d93a1 BugFix Clear state and unref playbin 2024-01-27 12:02:07 +01:00
Bruno Herbelin
d41b8a7c24 New import and export GLSL code in Shader editor 2024-01-21 14:49:23 +01:00
Bruno Herbelin
f016a82a32 Reimplementation of Dialogs for open and save files
Convert to generic file dialogs instead of specific implementation per type
2024-01-21 13:26:11 +01:00
Bruno Herbelin
d872aa4a6c Improved Tooltip of Source 2024-01-17 23:01:43 +01:00
Bruno Herbelin
2c7262ced4 New Tooltip on Source left panel with preview 2024-01-16 23:55:14 +01:00
Bruno Herbelin
01e21ea212 BugFix OSC set gamma 2024-01-16 19:07:39 +01:00
Bruno Herbelin
0eae04ab83 BugFix Accept empty string to create Text source 2024-01-16 18:47:54 +01:00
Bruno Herbelin
e42afcb434 BugFix OSC API extended 2024-01-14 18:59:42 +01:00
Bruno Herbelin
fad4be419a New Pause recording
Allows Pause/resume recording. Menu shows info when recording
2024-01-14 16:33:43 +01:00
Bruno Herbelin
9768d17b9b New behavior for Mixing View link
If selection for linking contains linked sources, offer to RE-link to change previous link (instead of only offer to remove the link)
2024-01-13 12:00:59 +01:00
Bruno Herbelin
e36bae2ab6 EasterEgg Insert vimix logo source 2024-01-13 00:15:59 +01:00
Bruno Herbelin
f8b5b1db9c BugFix MediaPlayer
Ensure change of direction operates inside timeline range, Ensures reload resets media player frames.
2024-01-12 20:25:38 +01:00
Bruno Herbelin
9ccf1a31bc BugFix restore view after source delete
Was causing crash in Texturing view
2024-01-10 20:10:59 +01:00
Bruno Herbelin
36d23b5dc2 Bugfix seek media player 2024-01-08 19:25:29 +01:00
Bruno Herbelin
9d27335d7d New Double clic action in Player window, Display window or background 2024-01-07 23:39:58 +01:00
Bruno Herbelin
a913cee7a4 New Preview of source for Player
F6 and F7 (new) keys trigger preview of output display and current source in player, respectively.
2024-01-06 15:31:32 +01:00
Bruno Herbelin
eeeba3d2b7 Compilation fix (snapcraft specific) 2024-01-05 20:23:51 +01:00
Bruno Herbelin
b8a56776da Merge remote-tracking branch 'origin/beta' 2024-01-03 23:51:59 +01:00
Bruno Herbelin
0e9fe58c06 Snapcraft packaging core22 fixed 2024-01-03 23:51:44 +01:00
Bruno Herbelin
6cf7635005 Merge remote-tracking branch 'origin/master' into beta 2024-01-03 16:30:51 +01:00
Bruno
6c7ea3a16d OSX Dirty Packaging 2024-01-03 15:40:08 +01:00
Bruno
4ded0d03d0 Updated flatpak release changelog 2024-01-03 10:52:17 +01:00
BHBN
ac45ad740d Another screenshot for online 2024-01-03 10:40:09 +01:00
Bruno Herbelin
f010c840e6 Merge remote-tracking branch 'origin/beta' 2024-01-02 15:36:44 +01:00
Bruno Herbelin
90b59908c6 Snapcraft core22 uses gnome extension 2024-01-02 15:36:25 +01:00
Bruno Herbelin
13c6693cdd Merge remote-tracking branch 'origin/beta' 2024-01-02 14:20:45 +01:00
Bruno Herbelin
cd56c960a6 Snap v0.8.2 2024-01-02 14:18:59 +01:00
Bruno Herbelin
a51423a4d6 Merge remote-tracking branch 'origin/beta' 2024-01-02 14:16:24 +01:00
Bruno Herbelin
80a25ec71c Updated flatpak to Gnome 45 2024-01-02 14:02:44 +01:00
Bruno Herbelin
51209179d1 BugFix Display view 2024-01-02 14:02:30 +01:00
Bruno Herbelin
b3937caa10 Auto stash before merge of "beta" and "origin/beta"
Updated submodule ext/imgui
2024-01-02 14:02:05 +01:00
Bruno Herbelin
8927ba7c73 Updated submodule ext/imgui 2024-01-02 13:49:40 +01:00
Bruno Herbelin
5f4c867618 Updated Beta flatpak 2024-01-02 13:17:29 +01:00
Bruno Herbelin
fced4178be Updated submodule ext/imgui 2024-01-02 13:12:30 +01:00
Bruno Herbelin
da0944c814 Updated submodule ext/tinyxml2 2024-01-02 13:09:42 +01:00
Bruno Herbelin
7aa14219b8 Updated submodule ext/stb 2024-01-02 13:09:36 +01:00
Bruno Herbelin
09a3494183 Updated submodule ext/glm 2024-01-02 13:05:41 +01:00
Bruno Herbelin
8924d81e0a BugFix Update linked sources and Texture view on Source change
When source change stream (e.g. change pattern), Texture view was not updated, and sources with mask texture were not adapted.
2024-01-02 10:38:37 +01:00
Bruno Herbelin
b599fbf88d BugFix Minor UI corrections and bugs fixed 2024-01-01 17:54:27 +01:00
Bruno Herbelin
578a72f560 New Distortion of output window in Displays view
Allows shape distortion of output rendering (e.g. for perspective correction of projection), added Grid snap cursor support in Displays view
2023-12-31 18:34:48 +01:00
Bruno Herbelin
6b1e298d43 BugFix diagonal distortion Geometry
And minor UI improvements
2023-12-31 18:32:03 +01:00
Bruno Herbelin
698665c4cc BugFix Capture menu in Display and Source windows
Support text scaling for small values (<0.7) that caused a UI display bug
2023-12-29 14:01:18 +01:00
Bruno Herbelin
caa3e4d07a New Geometry view option to show only visible sources
View setting to ignore mixing visibility applied to Geometry view, with a button to complement the workspace selection.
2023-12-29 11:25:29 +01:00
Bruno Herbelin
7606baa20b Bugfix display Capture menu
And addedactive label to enable restore default
2023-12-26 23:49:47 +01:00
Bruno Herbelin
fde6be3f97 BugFix and code cleanup
Fixed rendering of Mesh by using new TextureShader (instead of ImageShader which is dedicated to square Surfaces). Cleanup includes and code layout.
2023-12-26 23:08:09 +01:00
Bruno Herbelin
abdc70121d Merge remote-tracking branch 'origin/master' into beta 2023-12-26 15:15:13 +01:00
Bruno Herbelin
879a0524fc Merge remote-tracking branch 'origin/beta' 2023-12-26 15:14:15 +01:00
Bruno Herbelin
a529b34f99 BugFix play bounce and seek mode
Probably due to gstreamer change of implementation: to check if still backward compatible
2023-12-26 14:31:02 +01:00
Bruno Herbelin
e8daeb5f30 BugFix luma and chroma key
making alpha filters compatible with alpha fading of media
2023-12-26 12:04:16 +01:00
Bruno Herbelin
f610e8ba1e Add Alpha fading mode to media player timeline
Fading color (to black) is not useful for media with transparency; there fading of alpha is necessary; the fading mode allows to select fade color or fade alpha. Also the source control window had to be adapted, with a checkerboard to show the alpha effect. The cropping of the image in control window was also fixed.
2023-12-26 10:57:26 +01:00
Bruno Herbelin
b3245c967b Allow toggle snap cursor with pressing/release ALT key 2023-12-24 09:24:51 +01:00
Bruno Herbelin
0af9da2214 BugFix Mask Paint Cropped source 2023-12-23 22:37:59 +01:00
Bruno Herbelin
db68f80048 Finalizing implementation of Geometry crop and distortion
Texture view adapts to the cropped shape of source,
2023-12-23 22:10:23 +01:00
Bruno Herbelin
b0efd80e42 compilation fix for OSX 2023-12-23 14:24:32 +01:00
BHBN
3e12e0b84d Update README.md
copy-paste friendly command lines
2023-12-18 14:40:49 +01:00
Bruno Herbelin
5465a45dc6 First acceptable implementation of geometry distortion and crop
Fixed shape node and crop, added rounding corner.
2023-12-17 23:30:41 +01:00
Bruno Herbelin
53bd7d6ae2 DRAFT Source geometry 4 sides crop 2023-12-16 20:52:36 +01:00
Bruno Herbelin
d66751b6ac DRAFT Source geometry distortion shape nodes
MeshSurface allows distortion of surface of sources, image shader vertex change of mesh surface, new handles to distort mesh in geometry view
2023-12-10 22:12:28 +01:00
Bruno Herbelin
95de6d0afc Configure Snap Grid cursor in panel
Move setting proportional_grid out of application settings
2023-12-10 17:46:39 +01:00
Bruno Herbelin
147daa7681 Merge branch 'master' of https://github.com/brunoherbelin/vimix 2023-12-03 00:14:50 +01:00
Bruno Herbelin
ece925858a Improve snapcraft 2023-12-03 00:14:41 +01:00
Bruno Herbelin
657b05d077 Add Luminance parameter to Lumakey filter 2023-11-21 21:50:24 +01:00
Bruno Herbelin
cf3bceeb46 BugFix Seek callback
Fixed seek to accept different input (target time, target percent, or hh:mm:ss) and add OSC target for HH MM SS MS
2023-11-14 20:51:19 +01:00
Bruno Herbelin
6735e5eaaa New Reload source function
Generalize the reload of stream source to all types of sources. Enable OSC command to reload source.
2023-11-14 11:12:21 +01:00
Bruno Herbelin
7b9e71df40 BugFix RenderSource update after session ready 2023-11-13 23:50:03 +01:00
Bruno Herbelin
fae61f3d87 BugFix do not update render source with not active 2023-11-13 23:35:26 +01:00
Bruno Herbelin
a57419150e BugFix Stream Source reload
Change stream reopen() to StreamSource reload()
2023-11-13 23:03:31 +01:00
Bruno Herbelin
378257b7bf Minor improvement: mixing view shifted right 2023-11-13 18:30:42 +01:00
Bruno Herbelin
885b92a0a1 Bug Fix Text source 2023-11-13 18:30:20 +01:00
Bruno Herbelin
58371c36d3 Text source satisfying
Improved layout options, better UI, tested features.
2023-11-13 12:41:37 +01:00
Bruno Herbelin
d39064b209 New Text source
Initial implementation of Text Source, displaying free text or subtitle file. support for Pango font description and formatting tags via gstreamer textoverlay plugin. Saving and loading in XML, GUI for creation (in patterns) and for editing.
2023-11-12 01:15:54 +01:00
Bruno Herbelin
f497da7967 BugFix Correction of Seek source callback 2023-11-08 23:08:12 +01:00
Bruno Herbelin
03931cb232 New Audio recording 2023-11-05 17:02:10 +01:00
Bruno Herbelin
4eeb02d9d4 Merge remote-tracking branch 'origin/master' into beta 2023-11-01 18:13:37 +01:00
Bruno Herbelin
8ff5ae3555 BugFix type OSC 2023-11-01 15:59:20 +01:00
Bruno Herbelin
053a5e9dbe New Audio volume multipliers
Multiply the audio volume of Media Source by alpha and/or opacity (timeline).
2023-10-28 16:18:15 +02:00
Bruno Herbelin
5a1a88bf33 New support for AUDIO
Allows looking for audio streams in media files (settings) and enabling  / disabling audio for each MediaPlayer individually. Control of volume per media, saving in session file.
2023-10-28 12:58:17 +02:00
Bruno Herbelin
f19b18d806 BugFix UI 2023-10-27 21:13:46 +02:00
Bruno Herbelin
f6e4701d6b BugFix Storing Play status of source in XML
Undo and restore play status of Source. Fix reload / restore play speed.
2023-10-27 19:29:39 +02:00
Bruno Herbelin
c3d686e472 Bugfix multisampling support 2023-10-27 19:27:44 +02:00
Bruno Herbelin
6c7ff870e8 Merge remote-tracking branch 'origin/master' into beta 2023-09-24 23:15:21 +02:00
Bruno Herbelin
38bac83ddd BugFix Program not ending because of Ableton Link
Destructor of ableton::Link is blocked at deletion of static instance in program: using a pointer avoids the problem.
2023-09-24 16:00:45 +02:00
Bruno Herbelin
4d8c77cf3e OpenGL Fix for OSX
Apple OpenGL drivers do not support multisampling; testing for extension and disabling. Disabling other features not supported by Apple OpenGL (MIPMAP HINT, PERSPECTIVE_CORRECTION).
2023-09-24 15:58:49 +02:00
Bruno Herbelin
0a147697d2 videoconvertscale is not standard in all gstreamer version 2023-09-19 22:09:38 +02:00
Bruno Herbelin
21837e7464 Revert to OpenGL 4.1 loader
Seems to be the upper limit for Apple compatibility with Metal on Apple M2.
2023-09-17 23:45:19 +02:00
Bruno Herbelin
d747962e24 Compile OSCPACK for M2 APPLE 2023-09-17 23:24:25 +02:00
Bruno Herbelin
49f09d1b3a Auto stash before merge of "master" and "origin/master" 2023-09-17 18:28:32 +02:00
Bruno Herbelin
783d6e69b1 Merge remote-tracking branch 'origin/beta' 2023-09-17 18:22:51 +02:00
Bruno Herbelin
6452ff78c0 Minor UI improvements 2023-09-17 18:22:32 +02:00
Bruno Herbelin
a430d39849 BugFix Stream sources change input 2023-09-17 12:17:41 +02:00
Bruno Herbelin
33c222555f New Playlists and new main panel
Favorite and custom playlists of Sessions. Main panel separate control of current session (with preview) and selection of session in playlists. Bugfix in history of files.
2023-09-17 00:51:34 +02:00
Bruno Herbelin
00f7e0fe62 Improved OSX OpenGL compatibility
...but still crashes sometimes.
2023-09-06 19:05:58 +02:00
Bruno Herbelin
44a31ede74 BugFix and various improvements 2023-09-03 18:13:43 +02:00
Bruno Herbelin
fb3ee2aa8c New button to reorder the list of sessions and of media files
In navigator panel, the list of sessions can be reordered either alphabetically or by file modification date. Same for list of media files for creating a new media source.
2023-09-03 00:08:30 +02:00
Bruno Herbelin
58e5dd9186 BugFix Geometry view select source with CTRL+clic 2023-09-02 15:25:30 +02:00
Bruno Herbelin
27ec46c64e New Slider to control Mouse Pointer strength 2023-09-02 12:48:00 +02:00
Bruno Herbelin
12a5d777e5 Icons improved for Display, preview, etc
Also added a close icon to large preview. Fixed help with recent improvements.
2023-09-01 17:53:50 +02:00
Bruno Herbelin
276a94f9e8 New Keyboard selection of sources by Index keys [0 - 9] 2023-08-31 19:40:45 +02:00
Bruno Herbelin
ccc3c86900 Rename 'alternative' to 'snap cursor, with ALT or option key (OSX) 2023-08-31 15:11:35 +02:00
Bruno Herbelin
124415363f Improve Layers view icons and Workspace management
Added 'Workspace any' in list of workspaces to allow Geometry view to list sources from all workspaces. Updated icon for layers view, in left panel and in view.
2023-08-30 20:47:14 +02:00
Bruno Herbelin
de850b39f2 Update CMakeRC to version 2.0.1 2023-08-29 18:28:32 +02:00
Bruno Herbelin
379f73b6ca OSX opengl pedantic update
there was a strange warning " POSSIBLE ISSUE: unit 0 GLD_TEXTURE_INDEX_2D is unloadable and bound to sampler type (Float) - using zero texture because texture unloadable", related to the first use of the opengl texture. Initializing the white texture seems to fix the problem.
2023-08-29 14:40:09 +02:00
Bruno Herbelin
159b778fa9 Make README code easy to copy/paste
removed the "~$ " that simulated the Bash prompt
2023-08-29 00:11:36 +02:00
Bruno Herbelin
007f7a0ce1 New using arrow Keys to simulate source grabbing
Allows combining arrows with Mouse Pointer effects (e.g. grid). Also added progressive acceleration of movement during the first 1 second of key press (starting very slow movement for precise displacement). Bugs fixed in Mouse Pointer.
2023-08-29 00:10:32 +02:00
Bruno Herbelin
54fa642693 Fix MousePointer Draw
Apply io.DisplayFramebufferScale to draw coordinates (convert back mouse coordinates from GL to display)
2023-08-28 21:21:47 +02:00
Bruno Herbelin
2fbc6f9193 BugFix Mouse pointer
Avoid reading imgui io.MousePos
2023-08-28 13:06:49 +02:00
Bruno Herbelin
262c6fd8ab New ALT key selects alternative mouse Pointer
Maintain ALT to activate the selected mouse Pointer. Also possible to ALT LOCK for maintaining the cursor. Local popup window allows selecting. Changed the View options selection to match this popup approach.
2023-08-27 17:49:46 +02:00
Bruno Herbelin
7fcb53c7d0 New GRID in views to perrorm MousePointer snap to GRID
For this new MousePointer to snap to grid, a Grid specific for each view is necessary. Grid for moving is orthographic (with an aspect ratio), and grid for mixing or rotation is in polar coordinates. Rendering is done with new Primitives. The entire calculation of grab coordinates is changed to be able to snap to grid coordinates in all circumstances.
2023-08-27 12:15:31 +02:00
Bruno Herbelin
d0e1101bfb New Grid Primitive, new Coloring visitor and some Scene corrections 2023-08-21 23:02:34 +02:00
Bruno Herbelin
a8bb4ae6d1 New MousePointer to change behavior of mouse
Initial implementation, mostly replicating GLMixer features. 5 Modes; default, linear, spring, wiggly and metronome. Save in Settings. Selection in Navigation panel.
2023-08-19 23:39:41 +02:00
Bruno Herbelin
d743307e59 Mixer re-creates sources after CRITICAL failure that was fixed
Stream sources that fail CRITICAL and are later back to NONE failure can now be re-created and reintegrated in the Mixer
2023-08-18 11:58:47 +02:00
Bruno Herbelin
e92e9eb45c Various UI improvements 2023-08-17 17:51:29 +02:00
Bruno Herbelin
aaefa356ae Specific MediaPlayer error message for opening non-existing file 2023-08-17 17:50:59 +02:00
Bruno Herbelin
3a7da2bc98 Add possibility of Render Loopback source to replay 2023-08-17 17:49:40 +02:00
Bruno Herbelin
94b211e3b7 GST prefer horizontal device input 2023-08-16 23:13:01 +02:00
Bruno Herbelin
9ff5b90605 UI improvement: new icon for patten source
Minor UI improvements in help and menus
2023-08-16 14:06:16 +02:00
Bruno Herbelin
a033b74f7f New ScreenCapture separate from Device, with Window selection
For now only LINUX support for window selection. New icons for Loopback and for ScreenCapture. Important BugFix on DeviceSource and Device management.
2023-08-15 22:26:42 +02:00
Bruno Herbelin
bb4e81b00a BugFix Display of current source in workspace
Current source outline should not be shown in Geometry view if not in current workspace. Added possibility to switch workspace in source panel.
2023-08-13 10:17:01 +02:00
Bruno Herbelin
5f2e0b79cd BugFix Do not insert new source in foreground 2023-08-13 09:37:59 +02:00
Bruno Herbelin
64a7fef7c1 Improve Insert panel terminilogy 2023-08-13 09:33:18 +02:00
Bruno Herbelin
09dbc5c84e Improve UX List of New source type to insert
New icons for inserted source panel. Merged loopback into connected list. Removed 'internal' new source.
2023-08-12 20:47:26 +02:00
Bruno Herbelin
e71e0791bc Merge remote-tracking branch 'origin/beta' 2023-08-12 16:38:24 +02:00
Bruno Herbelin
2a4be39c9a Merge remote-tracking branch 'origin/beta' into beta 2023-08-12 16:01:36 +02:00
Bruno Herbelin
3cde191afb Compilation fix OSX
Pedantic warning CLang for 64bits compiler.
2023-08-12 16:01:12 +02:00
Bruno Herbelin
02a8d9a243 Merge remote-tracking branch 'origin/master' into beta 2023-08-12 15:19:39 +02:00
Bruno Herbelin
7f4e313a78 Merge remote-tracking branch 'origin/beta' 2023-08-12 15:18:45 +02:00
Bruno Herbelin
44e3d90dcb Merge remote-tracking branch 'origin/beta' 2023-08-12 15:17:12 +02:00
BHBN
945eb3ccc6 Merge pull request #102 from AdrianBunk/master
src/BaseToolkit.h: Add the missing #include <cstdint>
2023-08-12 15:13:12 +02:00
Bruno Herbelin
793008852a Updated lsit of Linux nvidia hardware accelerated plugins 2023-08-11 20:17:08 +02:00
Bruno Herbelin
7e791ee5e4 BugFix Correct detection of single frame media
Was causing a problem for play at loading (not paying before started)
2023-08-11 18:04:32 +02:00
Bruno Herbelin
1413490579 BugFix MediaPlayer first PTS used for rewind video
Also shows the gap in the video timeline
2023-08-11 17:16:07 +02:00
Bruno Herbelin
57154e5d0b BugFix OOps, crashed on delete timeline... 2023-08-11 13:49:30 +02:00
Bruno Herbelin
57a1556e23 Improve Pannel source with a bit of spacing 2023-08-11 13:07:08 +02:00
Bruno Herbelin
e248e92ca1 Fix Player menu for 'Timeline'
Replace 'Video' menu for MediaPlayer to 'Timeline'. Move Hardware decoding selection to MediaSource GUI Visitor.
2023-08-11 13:03:26 +02:00
Bruno Herbelin
fa5adcf08b BugFix Loading Timeline of MediaPlayer 2023-08-11 12:37:13 +02:00
Bruno Herbelin
87a51afd99 New Generalize option to restart on deactivation to any StreamSource
StreamSource now have the option 'restart on deactivation' like MediaPlayer. This option is saved in XML (added Visitors for Stream and StreamSource). The GUI is added as sub-menu in play bar (like for MediaPlayer). Some StreamSource subclasses needed to be fixed to allow this feature (e.g. MultiFileSource).
2023-08-10 18:47:44 +02:00
Bruno Herbelin
4efaa1f350 New MediaPlayer image with timeline
Enable playing and seeking into a timeline on a media player that loaded an image. Timeline sets a duration (end) and is saved/loaded. Add a gstreamer imagefreeze element in the pipeline to simulate a playable stream. Distinction must be made between 'isImage' (what was loaded) and 'singleFrame' (what is in the pipeline). GUI is added and customized with menu and dialog.
2023-08-10 00:46:48 +02:00
Bruno Herbelin
1d329600af BugFix MediaPlayer support for GIF animation
Playbin needs a videorate video filter, and thus user cannot change the video effect on a GIF
2023-08-09 12:11:15 +02:00
Bruno Herbelin
c2a0e51984 Code cleanup - eradicate sprintf 2023-08-08 23:31:11 +02:00
Bruno Herbelin
ebd59e38ce Improve UI Play Direction and speed
Play speed slider changes the speed without changing direction (not working well). Change play direction is now in a play sub-menu (mouse over) in play bar. Video menu changed, with Timeline section
2023-08-08 23:02:34 +02:00
Bruno Herbelin
f75b384c17 New support for gstreamer video effects in MediaPlayer
Implementation of the GUI allowing to set the pipeline element description
2023-08-08 17:43:46 +02:00
Bruno Herbelin
5419622c74 Upgrade MediaPlayer with gstreamer playbin (for GST > 18)
Change implementation of gst pipeline in MediaPlayer to use gstreamer playbin. This makes everything works more smoothly (including instant rate change). This also opens the possibility to allow audio mixing. Other bugfixes include set play speed rate at start, add video effects on reopen media player.
2023-08-07 19:40:08 +02:00
Adrian Bunk
ab40011954 src/BaseToolkit.h: Add the missing #include <cstdint>
This fixes #100
2023-08-05 10:50:35 +03:00
Bruno Herbelin
1b658e9b40 Code cleanup. Split code for each workspace windows
Renamed class and split code for compiling the multiple workspace windows as separate files (h and cpp).
2023-08-03 16:18:00 +02:00
Bruno Herbelin
49605f9c23 Fix help text 2023-07-23 11:27:26 +02:00
Bruno Herbelin
d9b6b808f7 BugFix Rendering Mask Ellipse 2023-07-06 22:20:48 +02:00
Bruno Herbelin
1607dd329d Merge remote-tracking branch 'origin/beta' 2023-07-05 23:49:22 +02:00
Bruno Herbelin
74337b2699 BugFix MediaPlayer speed change
Changed MediaPlayer::setEffect() mechanism to have a gst pipeline compatible with instant rate change.
2023-07-05 21:59:28 +02:00
Bruno Herbelin
d6a684bbe7 Improved behavior left panel
New behavior left panel depending on settings of always_visible panel. Remembers (access from UserInterface) the source that is currently selected in the left panel, and use this source as the one manipulated in TextureView. List possible source new source modes with large icons (instead of combo box).
2023-07-03 20:50:48 +02:00
Bruno Herbelin
feeb997f62 BugFix Keep source in selection when edited in Texture view 2023-06-25 18:24:31 +02:00
Bruno Herbelin
26da3bf9a8 Bugfix Set single source as current after area selection
Strict conditions to set a source as current after an area selection
2023-06-25 18:23:46 +02:00
Bruno Herbelin
82046afd9f BugFix Do not unset current source manipulated in a selection 2023-06-25 18:21:26 +02:00
Bruno Herbelin
97704deea0 Add intermediate display mode of source selected but not current
Frames of sources are now different between default, selected and current modes (thus emphasizing the outline for the unique current source).
2023-06-25 18:20:28 +02:00
Bruno Herbelin
64b2a18ff3 New feature: Texture view Mask Source
Enable use of a source as mask for another source. Improved Mask mechanism in Source class, with various flags for update of source (avoid repeated mask update (GPU costly). Using SourceLink to link source to mask (improved robustness of SourceLink).
2023-06-24 23:28:13 +02:00
Bruno Herbelin
cf16edceec Optim Enable generating FrameBufferImage of RGB and RGBA frame buffers 2023-06-24 23:22:34 +02:00
Bruno Herbelin
f6008737d1 Optim: request update on activation only if really needed
With previous order of operations, the need_update_ flag was set to true every frame when a clone was depending on the source.
2023-06-21 19:57:44 +02:00
Bruno Herbelin
61de8c4717 Bugfix: prevent infinite mask update in case of failure 2023-06-21 19:41:53 +02:00
Bruno Herbelin
83ad83e656 Optim: No need to force update of parent of clone source
The call to "origin_->touch()" was made useless when clone source changed of mechanism to use shading filters. It didn't change the rendering, but causes to force the (useless) update of the origin source.
2023-06-21 16:10:58 +02:00
Bruno Herbelin
2afb13c580 UX improvements (F6 large preview, panel menu) 2023-06-12 01:05:37 +02:00
Bruno Herbelin
e48a963503 Draft feature Live change of Media player pipeline
Intended for adding effects (e.g. Frei0r). Not active yet.
2023-06-12 01:04:38 +02:00
Bruno Herbelin
c846a0626f New left panel mode (auto hide or always visible) 2023-06-11 16:54:33 +02:00
Bruno Herbelin
a6b1d09ff1 BugFix saving and loading sources in order
Two problems resoved: saving in the opposite order (session visitor inserting opposite order), and loading of clones that needed a reordering.
2023-06-10 12:33:54 +02:00
Bruno Herbelin
3603e146cc BugFix Toggle windows 2023-06-09 21:14:18 +02:00
Bruno Herbelin
9ab597c0e9 Icons to show enabled and disabled Hardware decoding
Updated the left panel for media source to show indication of hardware decoding on/off
2023-06-08 00:19:21 +02:00
Bruno Herbelin
3251e9f845 Fix Show vimix main window on output close
Commit c0befa0f49 introduced a bug under OSX. Now fixed.
2023-06-07 22:57:40 +02:00
Bruno Herbelin
3e7b24a3de BugFix Prevents failure of hardware decoding of images. 2023-06-07 18:03:48 +02:00
Bruno Herbelin
6989cd4d40 Fix command line vimix
Commit 0f7d42ab83 broke the --clean option.
2023-06-07 17:50:01 +02:00
Bruno Herbelin
c7205a512e Compilation for OSX ARM M2 2023-06-07 16:40:02 +02:00
Bruno Herbelin
c0befa0f49 Show vimix main window on attempt to close an output window
Because only vimix Displays view is allowed to manage output windows, it is not possible to close the window from system window manager. Instead, we show vimix and the Displays view to help the user.
2023-06-04 18:21:39 +02:00
Bruno Herbelin
2223024383 Example script OSC peer2peer 2023-06-04 17:46:41 +02:00
Bruno Herbelin
216d9a1686 OSC Peer to peer request
Added OSC mechanism to request network stream. Improved stability of H264 streaming.
2023-06-04 16:14:45 +02:00
Bruno Herbelin
1f9bff6182 BugFix Detect and display hardware decoder name 2023-06-03 00:14:34 +02:00
Bruno Herbelin
0f7d42ab83 BugFix command line vimix
Open only the session file given in argument, even if auto load_at_start is given. Displays GIT version if possible.
2023-06-02 20:15:58 +02:00
Bruno Herbelin
60334f24f1 BugFix output view; prevent display when warning dialog is open 2023-06-02 00:26:23 +02:00
Bruno Herbelin
d7d099d2d7 Add icon to show hardware decoding info in source panel 2023-06-01 23:42:29 +02:00
Bruno Herbelin
514d4170be Smooth speed change (fix issue #96)
Use GST_SEEK_FLAG_INSTANT_RATE_CHANGE seeking event available since gst version 1.18 for a smooth (non flushing) change of play speed
2023-06-01 22:08:55 +02:00
Bruno Herbelin
6b1c1853b8 Add nvidia hardware accelerated decoding of av1 codec 2023-05-31 19:54:22 +02:00
Bruno Herbelin
ced318637f Source replacement and create source with software decoder 2023-05-31 19:27:08 +02:00
Bruno Herbelin
c2c7c37ef6 BugFix Copy blending mode when replacing source 2023-05-30 17:23:44 +02:00
Bruno Herbelin
7e5041eac5 BugFix loading of info of media source 2023-05-30 16:42:22 +02:00
Bruno Herbelin
4b7db87444 Code cleanup compilation 2023-05-30 15:07:43 +02:00
Bruno Herbelin
22aba74ed9 SRT client does not need to force long latency 2023-05-30 15:06:27 +02:00
Bruno Herbelin
5283dd2f9e Non fatal Warning on gstreamer discovery of unknown format
uridecodebin can fail for one of the media stream (e.g. audio) and still be able to load video.
2023-05-30 15:05:11 +02:00
Bruno Herbelin
8bc69ba0a4 Delay user notification for when source is ready 2023-05-30 15:03:32 +02:00
Bruno Herbelin
90207c6184 BugFix in User interface
Window sticked to view: restored to all views if user press display from another view.
Add press [Return] to validate Dialog.
2023-05-30 10:54:32 +02:00
Bruno Herbelin
678590fc4f Merge remote-tracking branch 'origin/master' into beta 2023-05-20 21:12:55 +02:00
Bruno Herbelin
9170aba906 Merge remote-tracking branch 'origin/beta' 2023-05-20 21:12:27 +02:00
BHBN
59a92bb172 Merge pull request #94 from RKelln/master
Add /speed OSC endpoint to control playspeed
2023-05-20 21:10:59 +02:00
Bruno Herbelin
f12cf8a6ce Merge remote-tracking branch 'RKelln/master' into beta 2023-05-20 21:09:20 +02:00
Ryan Kelln
26cb75f93f Improved handling of problematic video requiring software decode.
Always allow disabling hardware en/decode.
Warn and try to get info when gst discoverer errors.
2023-05-19 15:08:47 -04:00
Ryan Kelln
e8b05cd7c2 Add /speed OSC endpoint to control playspeed 2023-05-17 12:08:34 -04:00
Bruno Herbelin
4930c07e9c BugFix; disable mouse over and picking on source initials 2023-05-11 19:58:36 +02:00
Bruno Herbelin
39d4002491 Improved SRT Receiver source
Failure cause to RETRY to connect. Info visitor informs on status of connection. Icon associated to SRT Broadcast icon.
2023-04-30 13:30:24 +02:00
Bruno Herbelin
e095b139ae Merge remote-tracking branch 'origin/beta' 2023-04-29 14:50:42 +02:00
Bruno Herbelin
088cf97ebf SRT streaming improvement
Broadaster: muxing for network stream (alignment 7), ensured to be in listener mode. No forced demuxing of SRT input.
2023-04-29 14:19:27 +02:00
Bruno Herbelin
be90b30b8f BugFix Fullscreen main window 2023-04-29 12:48:28 +02:00
Bruno Herbelin
0ff3041e89 Updated screenshots for new packages 2023-04-28 22:16:04 +02:00
Bruno Herbelin
9d2c2c0e47 Merge remote-tracking branch 'origin/beta' 2023-04-28 00:51:22 +02:00
Bruno Herbelin
b35f2b7cb4 Show git version in cmake compile logs 2023-04-28 00:51:08 +02:00
Bruno Herbelin
1988c5fe9a Merge remote-tracking branch 'origin/beta' 2023-04-27 22:54:51 +02:00
Bruno Herbelin
aad99ce3a4 Fixup Snap missing dependencies
installing stage-package gstreamer1.0-libav has libblas and liblapack dependencies: stranlely snap does not install them automatically...
2023-04-27 22:54:32 +02:00
Bruno Herbelin
1d7209693a Merge remote-tracking branch 'origin/beta' 2023-04-25 22:48:40 +02:00
Bruno Herbelin
4017732d71 Snapcraft switch to Core22 and Gnome 42 2023-04-25 22:48:03 +02:00
Bruno Herbelin
c09f2a1121 BugFix Output View 2023-04-25 22:47:43 +02:00
Bruno Herbelin
9467a0700a BugFix Drop file on Mixing view 2023-04-23 23:15:31 +02:00
Bruno Herbelin
ef74faeef4 BugFix UI Source toolbox and Display view 2023-04-23 19:11:32 +02:00
Bruno Herbelin
2891ad7efe UI improved
Add Help and Log to About and to supplementary list of windows.
2023-04-22 22:09:46 +02:00
Bruno Herbelin
364ffc4659 BugFix crash selection area Displays view 2023-04-21 22:38:42 +02:00
Bruno Herbelin
8aa82274ff BugFix UI and completed missing help 2023-04-20 00:31:59 +02:00
Bruno Herbelin
71ca037ca8 BugFix Source toolbar 2023-04-19 23:21:36 +02:00
Bruno Herbelin
341aac8ff7 Added Mouse wheel input on all sliders.
mouse wheel performs minimal increment to adjust precisely values of sliders in source panels.
2023-04-19 22:56:43 +02:00
Bruno Herbelin
99ccfb8e94 Revert back: disable clic on source initials in mixing and layers view
There is a bug in testing of bounding box and the interaction is not clear.
2023-04-19 22:54:58 +02:00
Bruno Herbelin
4ed884de55 Mouse over icons on source (on Symbol and Characters)
Rename class Glyph in Decoration to Character ('Glyph' was used in system X typedef). Added MouseOver in Mixing and Layers view to show highlight color on icons of Symbol and Initials of source. Show left panel on clic on source Initials.
2023-04-16 23:21:08 +02:00
Bruno Herbelin
f9caa75aa7 New source toolbar, cleanup other toolbars and help window
Split Metrics and Source editor as two separate toolbars. Removed keyboard shortcut for metrics and sticky note. Ensure log notification are visible.
2023-04-16 14:51:58 +02:00
Bruno Herbelin
37a7bc43fd BugFix Imgui toolkit layout and colors 2023-04-16 14:50:12 +02:00
Bruno Herbelin
cdd6ac1d8b Added Counter of Turns in Timer Stopwatch 2023-04-14 00:23:57 +02:00
Bruno Herbelin
235e0efc09 Merge remote-tracking branch 'origin/master' into beta 2023-04-14 00:23:29 +02:00
BHBN
2f4f93d3ba Update README.md 2023-04-13 23:59:34 +02:00
Bruno Herbelin
f25a1b70f3 Adding Git tags info in About Vimix 2023-04-13 23:17:58 +02:00
Bruno Herbelin
6ec8edd5e2 Improved slider Threshold 2023-04-13 00:35:20 +02:00
Bruno Herbelin
8beeced7c2 Improved sliders Color correction Threshold and Posterize 2023-04-13 00:00:02 +02:00
Bruno Herbelin
f4add84a13 BugFix color picker dialog
Also blocks UI until color dialog is closed
2023-04-12 22:51:53 +02:00
Bruno Herbelin
c507d0ed7e Improved appearance Display view
Enhance difference between selected / unselected window
2023-04-12 20:51:28 +02:00
Bruno Herbelin
3ff193f42d Restore on start; open session and view settings, or start fresh 2023-04-12 20:00:19 +02:00
Bruno Herbelin
8104050658 Simplified Metrics info and memory usage 2023-04-12 19:26:48 +02:00
Bruno Herbelin
b53f0b4c1b BugFix - correcting previous change 2023-04-12 00:19:16 +02:00
Bruno Herbelin
7698c05dd5 Memory Leaks fix
Fixed tiny leaks in thumbnail saving to XML. Also cleaner ending freeing all allocated.
2023-04-10 12:46:57 +02:00
Bruno Herbelin
18734345a1 UI improvements, with context menu for additional windows 2023-04-09 16:11:16 +02:00
Bruno Herbelin
ad54ee4bda Improved stats on memory usage and Metrics display 2023-04-09 01:12:12 +02:00
Bruno Herbelin
f8a4b7b1db ALT+SHIFT for precise movement in Geometry and Texture views 2023-04-08 00:01:52 +02:00
Bruno Herbelin
e6966df9ac Added linked aspect ratio scaling in Metric 2023-04-07 23:00:18 +02:00
Bruno Herbelin
8e17fc0edb Metrics of Source; higher precision drag float 2023-04-07 15:23:04 +02:00
Bruno Herbelin
2cdb8c022d Show Output View in Main window using F6 2023-04-03 23:41:28 +02:00
Bruno Herbelin
04822346a6 Use CTRL+F to toggle Fullscreen for all window types
Main window and output windows use same keyboard shortcut for uniformity.
2023-04-03 23:38:59 +02:00
Bruno Herbelin
6fcfc2da34 Added Output support for default Gstreamer shared memory
With option to select and configure socket path
2023-04-03 19:20:57 +02:00
Bruno Herbelin
62c7b8cdc1 Merge remote-tracking branch 'origin/master' into beta 2023-04-02 00:20:37 +02:00
Bruno Herbelin
d2d899a8d0 Update desktop and manpage version 0.8.0 2023-04-02 00:17:30 +02:00
Bruno Herbelin
921e09227f typo in metainfo.xml 2023-04-01 22:35:43 +02:00
Bruno Herbelin
39c274a515 Merge remote-tracking branch 'origin/master' into beta 2023-04-01 18:12:53 +02:00
Bruno Herbelin
5db65b6e6e Update Flathub version 0.8.0 2023-04-01 18:05:19 +02:00
Bruno Herbelin
c71fc5575f Fixed typo filename 2023-04-01 18:01:33 +02:00
Bruno Herbelin
2ebf264feb Update screenshot webpage 2023-04-01 17:55:31 +02:00
Bruno Herbelin
aa20cf5138 Update webpage for 0.8.0 release 2023-04-01 17:41:09 +02:00
Bruno
5f96a8991a OSX info of Bundle integrating cmake version info
Attempt at linking vimix to MIME type .mix
2023-03-31 19:23:42 +02:00
Bruno
47e0d6ae19 BugFix UI Custom GST Source 2023-03-31 09:41:03 +02:00
Bruno Herbelin
e3e2d8d2f6 Fixe snap 0.8.0 2023-03-30 22:59:00 +02:00
Bruno Herbelin
f57e057f2a Update Snap Version 0.8.0
Using Core20 and Gnome 3-38 environment
2023-03-30 22:44:09 +02:00
Bruno Herbelin
dc0df8cc61 Merge remote-tracking branch 'origin/beta' 2023-03-29 23:27:01 +02:00
Bruno Herbelin
c30d7a2089 Add vaapi in Flatpak 2023-03-29 23:16:00 +02:00
Bruno
03bffb3319 OSX compilation 2023-03-28 22:29:56 +02:00
Bruno Herbelin
65dc93ed37 UI pedandic eye candies 2023-03-28 00:08:17 +02:00
Bruno Herbelin
8ed04b9c6e BugFix: capture frames
Correctly capture frames in RGB and RGBA from Player, and invert vertically only screenshots.
2023-03-27 23:37:08 +02:00
Bruno Herbelin
e6a9327bae Update vimix packages icons and Desktop entry 2023-03-27 17:08:10 +02:00
Bruno Herbelin
658c506653 BugFix: add failure management in SessionSource
As in update of Mixer manager, failed sources are managed in update of SessionSources. RenderSources that fail are re-created. Attach/Detach/Attached of sources functions is unified between Session and Mixer.
2023-03-27 15:59:59 +02:00
Bruno Herbelin
ad4a4281b4 BugFix: failed source detached from mixing group 2023-03-26 20:43:49 +02:00
Bruno Herbelin
6b0070ec56 Fixed Info panel Session File Source
and other UI minor details.
2023-03-26 20:05:35 +02:00
Bruno Herbelin
c9cf6baf4b Improved Device support for V4L2 streams
Allow to reload list of devices, avoid timestamp warning in Loopback, clear UI menu.
2023-03-26 17:36:18 +02:00
Bruno Herbelin
85a25a0a39 Improved report of Media Player error 2023-03-25 20:33:30 +01:00
Bruno Herbelin
e192d254f9 Improved package support of encoder selection (x265) 2023-03-25 00:05:16 +01:00
Bruno Herbelin
9e2b9d7cf4 fix missing include gl gst 2023-03-24 22:53:18 +01:00
Bruno Herbelin
cd545213e4 Extend support of gstreamer in Flatpak
Include plugins for shm, v4l2 and libav.
2023-03-24 16:19:57 +01:00
Bruno Herbelin
935d2ff02c Update Copyright date to 2023 2023-03-23 22:55:48 +01:00
Bruno Herbelin
b7d6218b89 New icon vimix 2023-03-23 22:50:43 +01:00
Bruno Herbelin
d86754b0e6 UI selection Workspace in Geometry View
Back to the combo box (smaller and unified with other views) but following the unified color accent.
2023-03-23 22:49:35 +01:00
Bruno Herbelin
b97674a404 Minor GUI fixes 2023-03-22 22:50:43 +01:00
Bruno Herbelin
f91522fc14 Introducing multiple levels of Source Failure
This allows Mixer manager to deal with failed sources with the appropriate action: try to repair, leave for user to recreate, or delete.
2023-03-22 22:50:08 +01:00
Bruno Herbelin
9b4ef00278 Copy&Paste source DUPLICATE content (not clone) 2023-03-19 06:19:52 +01:00
Bruno Herbelin
43270c7763 Improve MIXING view UX
Slight change of opacity of Mixing icon of source (stipple) when becoming non visible. Mouse over highlight on circular buttons in Mixing circle.
2023-03-18 11:18:56 +01:00
Bruno Herbelin
9a98fb399c OSC source target by ID with # prefix
Targetting source by id should be with '#' + the number (e.g. /vimix/#2/alpha). For backward compatibility the '#' is still optional.
2023-03-18 10:30:40 +01:00
Bruno Herbelin
c255b0249f Bugfix: support OSC source target by name with ID
fix a confusion between targetting source by ID (number) and targetting a source name starting with a number.
2023-03-17 11:58:28 +01:00
Bruno Herbelin
b0e71f6f18 Compilation fix - epx10 is not standard function 2023-03-14 20:50:19 +01:00
Bruno Herbelin
7e59377daf Unified Button and colors in Views, using accent color
Using standard UI colors and simplified buttons in all views.
2023-03-12 15:10:31 +01:00
Bruno Herbelin
73aa369e6d Slight visual effect on source entering mixing circle 2023-03-12 15:07:28 +01:00
Bruno Herbelin
731d7e5d6b Allow Aplpha channel for Bundle (Session Group Source) 2023-03-12 15:06:50 +01:00
Bruno Herbelin
bc5e1c7df9 Cleanup Displays view UI 2023-03-12 12:29:01 +01:00
Bruno Herbelin
1a15f9b581 Added timeout to show Session preview 2023-03-12 12:28:38 +01:00
Bruno Herbelin
136d6052d8 Slider Color correction with quadratic and logarithmic scale
Gamma (log10) and other color correction sliders (brightness, contrast, saturation) now range from [-1 to +1] with pow 2 scaling.
2023-03-12 11:19:43 +01:00
Bruno Herbelin
811b270bae Implementation of Custom Output area in Window Displays View
Changed the 'Scaled' mode of window draw to allow custom centering and scaling of the output framebuffer in the window. Use DisplaysView to grab handles of the output frame. Save all windows custom output scaling in Settings.
2023-03-12 00:31:41 +01:00
Bruno Herbelin
7870e3cfce Tooltips in Texture View
Unified UX for Views with menu; show tooltip in TextureView as it is in DisplaysView
2023-03-10 19:17:50 +01:00
Bruno Herbelin
4874af1d5a Fixed recentering of Displays View
Adjust to always ensure all monitors are shown in the view window, also for vertical alignments and window.
2023-03-10 17:37:39 +01:00
Bruno Herbelin
1b7ead0479 Full redraw on window resize
Necessary for OSX, better anyway
2023-03-10 17:03:42 +01:00
Bruno Herbelin
ac97984314 UX clarification: replace Button to open URL by icon 'Show in Finder' 2023-03-08 23:52:47 +01:00
Bruno Herbelin
8c778e8afb Larger IMGUI_RIGHT_ALIGN 2023-03-08 22:12:37 +01:00
Bruno Herbelin
2b6bbce1d9 Highly optimized pre-processed shader for white balance 2023-03-08 19:43:08 +01:00
Bruno Herbelin
b8e0a9c1dd Code compilation fix 2023-03-07 23:38:13 +01:00
Bruno Herbelin
4c3c3de065 Minor BugFix Transition View
Cancel transition if opening the session failed.
2023-03-07 23:03:15 +01:00
Bruno Herbelin
a74801a0af BugFix MediaPlayer terminate asynchronously to avoid hanging
Deleting a MediaPlayer requires stopping the pipeline and deleting it; the call to gst_element_set_state (pipeline_, GST_STATE_NULL); is however hanging. Running this in a separate thread seems to fix the problem. It is not 100% sure however if the gst_object_unref ( GST_OBJECT (pipeline_) ); will be thread safe and not crashing...
2023-03-07 22:35:22 +01:00
Bruno Herbelin
cbe8217790 UX improvements, highlight icon button, ComboIcon, reset value label
Major changes in ImGuiVisitor (all image filtering and ImageProcessingShader), new imGuiToolkit ComboIcon (replacing previous ComboIcon widget), new icons,
2023-03-05 23:35:06 +01:00
Bruno Herbelin
e1cdf34955 BugFix; replace or open after media file select 2023-03-05 00:33:17 +01:00
Bruno Herbelin
fefc20c52a Fix locked source selection and manipulation 2023-03-04 23:48:36 +01:00
Bruno Herbelin
ad1e574cfe Rendering Manager pattern improved
Use Phillips test pattern if available, and rescale to framebuffer resolution
2023-03-04 20:18:11 +01:00
Bruno Herbelin
c25d4b7dad BugFix Stream: ensure replacement of texture on re-open 2023-03-04 13:25:12 +01:00
Bruno Herbelin
207aa88daf UX improvement: do not ask user confirmation after file selection
Create a source from file; validate the file dialog is enough to create the source (without intermediate step of confirmation).
2023-03-03 20:46:34 +01:00
Bruno Herbelin
3be08a3e63 Prevent multiple color pickers and inform user 2023-03-03 20:23:05 +01:00
Bruno Herbelin
7d91ffbafa Minor UX improvement Display View 2023-03-03 19:52:12 +01:00
Bruno Herbelin
128ba084ad Change Settings of windows to 'OutputWindows' to avoid incompatibility 2023-03-03 19:51:29 +01:00
Bruno Herbelin
0defff8f7c BugFix WhiteBalance Display View and Rendering window
Use of Settings whitebalance parameters for rendering both window and display preview window. Not most optimal maybe, but efficient and clear.
2023-03-02 23:30:17 +01:00
Bruno Herbelin
6e3497e4c4 Store RenderingWindows whitebalance in Settings 2023-03-02 05:02:48 +01:00
Bruno Herbelin
1c309b2c89 Added WhiteBalance to RenderingWindow and Display View
Render output frame to output window using a Shader implementing white balance correction. Adjusting parameters of white balance from Display View with color picker (white) and slider (temperature). GLSL filter for white balance created from ShaderToy.
2023-03-01 23:24:26 +01:00
Bruno Herbelin
35507e7fbb Cleanup Rendering and Display view code to get texture of output 2023-02-28 19:12:51 +01:00
Bruno Herbelin
bc439829cf DRAFT feature for showing test pattern on output window 2023-02-28 00:24:19 +01:00
Bruno Herbelin
93f433f388 Disabling the framebuffer blit of output rendering
Blit of framebuffer is incompatible with the new features of Display View to adjust whitebalance and geometry of rendered frame on output windows.
2023-02-28 00:23:54 +01:00
Bruno Herbelin
f9e99e2a33 Minor corrections Displays view 2023-02-27 00:51:51 +01:00
Bruno Herbelin
94dcf7c3f3 Add TAB navigation to Displays View
And improve Metrics with GPU RAM information
2023-02-27 00:21:18 +01:00
Bruno Herbelin
c3bb29182e Multi Window support in Rendering Manager and Display View
Important reshape of Rendering Manager to support creation of multiple output windows. The Display View is now designed to allow creating and manipulating output windows. Settings are incompatible with previous version.
2023-02-26 23:04:38 +01:00
Bruno Herbelin
b11f6d5b3b BugFix Color selection Chromakey filter 2023-02-25 12:43:27 +01:00
Bruno Herbelin
d2b900f7c3 Compilation cleanup 2023-02-24 06:36:04 +01:00
Bruno Herbelin
bf2b5d8882 Improved UI and help 2023-02-22 22:22:12 +01:00
Bruno Herbelin
e7878bdb8f Changed grey accent color to green, make help icon more visible. 2023-02-22 12:47:13 +01:00
Bruno Herbelin
0670550521 Improved UI for Color Picker 2023-02-21 11:46:56 +01:00
Bruno
f5df923c51 BugFix: non-ImGui calls to accent color cause crash 2023-02-21 10:10:22 +01:00
Bruno
f1f62816b5 OSX implementation of color dialog (with tinyfiledialog) 2023-02-21 10:05:18 +01:00
Bruno Herbelin
db462690b3 New color dialog to enable system color picking (GTK only)
Use GTK ColorChooserDialog for color selection of chromakey under linux
2023-02-21 00:09:24 +01:00
Bruno Herbelin
c28685c700 Improved OSC control for Batch, with sync status 2023-02-19 22:06:58 +01:00
Bruno Herbelin
1f1780597c Finalized Source Callbacks for color correction
Action Input mapping for gamma and invert color corrections
2023-02-19 12:40:23 +01:00
Bruno Herbelin
1590251dad New Source Callbacks for Play control )fast forward, seek, etc.)
2 new callbacks (PlayFastForward, PlaySpeed), modified Seek callback to take target time in seconds (instead of ratio of duration). Integrating this in Input Mapping GUI and Session saving.
2023-02-19 01:05:52 +01:00
Bruno Herbelin
d25c17342b Improved logs and Settings for hardware gstreamer plugins 2023-02-17 18:53:54 +01:00
Bruno Herbelin
e105022185 BugFix: correctly approximate rendering output aspect ratio 2023-02-16 19:28:21 +01:00
Bruno Herbelin
16931917b7 BugFix: Clone source failed do not crash
Clone source that lost its origin can be replaced.
2023-02-16 19:15:25 +01:00
Bruno Herbelin
e2e316a079 Renaming Session Group to Session Bundles and Session Child
For the user interface, use the term 'Bundle' and 'Child' session instead of Group.
2023-02-15 22:27:14 +01:00
Bruno Herbelin
1dd2151a20 BugFix: OSC target Batch testing was preventing other targets
Restore normal use of target /current for OSC
2023-02-14 00:34:21 +01:00
Bruno Herbelin
c7367ad46a Enable negative Alpha in Source Callback for inactive source
setAlpha() to negative value allows to make the source inactive (outside mixing circle)
2023-02-13 23:51:16 +01:00
Bruno Herbelin
21045411e7 BugFix UI Input Mapping 2023-02-09 23:18:43 +01:00
Bruno Herbelin
128e8834e8 Changed mechanism of Source Callback and Input Mapping
Session stores list of all callback instances and reacts on input release by calling the reverse callback if it exists, or by finishing the ongoing callback. This means the behavior of Callbacks is different for those who are reversible (i.e. returns a non-null reverse) from those which do not have reverse. The reversible callbacks enforce to be exclusive while active (key pressed), others can be repeated and complementary (run in parallel).
2023-02-09 23:18:24 +01:00
Bruno Herbelin
7433772606 Improves readability Player and Output image
True color without window transparency, info icons with shadow for readability
2023-02-06 23:30:40 +01:00
Bruno
8967f5f090 Forced int64 type for Session batch argument 2023-02-06 15:25:10 +01:00
Bruno Herbelin
3b51a6e2a9 Added OSC interface for batch# 2023-02-06 08:21:37 +01:00
Bruno Herbelin
c5cb635b4e Input Mapping for Batch of Sources
Session contains a set of 'Batch' that are created in the Player (renamed from PlayGroups). Session InputCallback can now target either a Source or a Batch, using std::variant (new type Target). Input Mapping reacts to input to create callbacks to a target, either a single source (as before) or to a Batch (multiple sources).
2023-02-05 17:05:47 +01:00
Bruno Herbelin
1e9f8d707e Unified Menu for capture actions in Player and Output 2023-02-04 13:54:17 +01:00
Bruno Herbelin
69a0aa4bd8 Accept all types of sources in Player
The concept of 'Selection' evolves to accept sources of any type, not only sources that are 'playable'. This way user can create pools to reference in OSC and in Input Mapping.
2023-02-03 19:43:02 +01:00
Bruno Herbelin
581fa88055 More informative error message on missing pattern 2023-02-03 19:30:45 +01:00
Bruno Herbelin
f991ae5aed Pedantic imgui coding 2023-02-03 19:30:17 +01:00
Bruno Herbelin
44825ece04 BugFix: Update after Session Group creation 2023-02-03 19:28:33 +01:00
Bruno Herbelin
eac2c5c020 BugFix: prevent crash on embedded session update 2023-02-03 19:27:31 +01:00
Bruno Herbelin
a593e97227 BugFix: Show Shader editor as WorkspaceWindow 2023-02-03 19:26:41 +01:00
BHBN
ecad786f50 User-built flatpack compile the Beta branch
When building the flatpak package using the instructions at https://github.com/brunoherbelin/vimix/tree/master/flatpak, users have the preview of the Beta version of vimix.
2023-02-02 22:55:28 +01:00
Bruno Herbelin
9012d33c05 Logging improvement on delete / create source 2023-01-31 21:23:26 +01:00
Bruno Herbelin
268751815f BugFix New Source File Doubleclic
WTF did I think it would be a good idea to delete a source in a separate thread? This obviously causes a crash. To be investigated when a source tailes to delete... but should not happen...
2023-01-31 21:22:53 +01:00
Bruno Herbelin
6529b170e6 Cleanup Source Fail reporting
All Stream report failure with logs, read in InfoVisitor for Sources. ImGuiVisitor for Sources also detect failure of source and its stream.
Cleanup of unused includes and functions.
2023-01-30 00:07:52 +01:00
Bruno Herbelin
5ce465cb30 New Session and Mixer mechanism for Failed sources
When a source in a session fails, it is not anymore deleted after update; the Mixer keeps it in the session but detaches it from the scene. This way the user can access the failed source in the navigator (listed in RED), and Replace the source. The Replacement of source is available for any source. The source visitor does not skip a visit if the source failed.
2023-01-29 14:33:35 +01:00
Bruno Herbelin
48f1df2fd6 ImGuiToolkit to render a Disabled Button 2023-01-29 10:54:57 +01:00
Bruno Herbelin
3e6ddf560a Player UI improvement
Changing icons of Player selection to 'CIRCLE' icons because the icon of Player is the CIRCLE with triangle. Also allows to have an icon for User Selection.
2023-01-29 10:54:28 +01:00
Bruno Herbelin
0051533ac8 Improved management of failed sources
Clone is failed if its origin is failed, handle MediaPlayer visitor and error message when fail, get SourceList of non-failed sources of a list.
2023-01-29 10:50:15 +01:00
Bruno Herbelin
e69ac7ca28 Correction of invalid keyboard shortcut in documentation 2023-01-27 22:23:28 +01:00
Bruno Herbelin
9c8abb8edf Updated selection target for OSC
Adds ability to target a selection of sources stored in the Player
2023-01-27 20:43:29 +01:00
Bruno Herbelin
9ee434f275 Cleanup Player UI
Add play/pause button on source icon in selection (dynamic or stored selection). Display source icon in lower left corner, instead of play status. Fix alignment disabled timeline. Minor bugfix.
2023-01-27 19:25:05 +01:00
Bruno Herbelin
4826d9fbf0 Logging unknown OSC attribute
Users otherwise don't know what is wrong when sending incorrect OSC attribute
2023-01-27 17:33:44 +01:00
Bruno Herbelin
3fd7b8ed3c Magnifying glass for Player and Output windows
Replace the 'inspector' menu in favor of a magnifying glass button at top right corner of imgui window for Player and Output preview. Disable the magnifying glass upon window unfocus.
2023-01-16 00:18:17 +01:00
Bruno Herbelin
ebc8d483d9 BugFix display source button UV in muti-source Player 2023-01-14 23:42:59 +01:00
Bruno Herbelin
9821d3595a BugFix display inpector UV in Player of cropped sources 2023-01-14 23:06:34 +01:00
Bruno Herbelin
f21be9d10c Put beta in home-made flatpak 2023-01-01 22:25:10 +01:00
Bruno Herbelin
d221036cde Remove Window Refresh callback
Rendering draw should NOT be called twice
2023-01-01 22:15:38 +01:00
Bruno Herbelin
1dbff48ebb Cleanup views and bugfixes
Remove dependency to Imgui in View class. Cosmetic improvement UI in views.
2023-01-01 16:34:47 +01:00
Bruno Herbelin
43e56fc433 Polishing up DisplaysView
Options to fit output window on all screens. Added doubleclic function to View class (Transition view and Displays view have specific reaction to double clic.
2022-12-30 21:46:08 +01:00
Bruno Herbelin
b3b562f4bb Stabilized Displays View
Manipulation of output window from Displays View, fullscreen and window modes. Adapted preview window of display.
2022-12-29 20:50:40 +01:00
Bruno Herbelin
784ac996d3 First operational implementation of Displays View 2022-12-29 00:39:51 +01:00
Bruno Herbelin
fb6a95078d Creation and minimal integration of Displays View 2022-12-26 15:46:37 +01:00
Bruno Herbelin
189e7b8bc9 Cleanup monitor management in Rendering Manager 2022-12-26 15:45:42 +01:00
Bruno Herbelin
55967ad27c Changed icon of output window 2022-12-24 00:51:20 +01:00
Bruno Herbelin
e2c82af4d6 Implementation of custom session resolution
Moved presets of resolution to RenderView (framebuffer class is lower level). Changed logic of UI selection of session resolution change.
2022-12-23 20:23:39 +01:00
Bruno Herbelin
8712923bec Detecting monitors in Rendering Manager 2022-12-18 12:11:42 +01:00
Bruno Herbelin
416635179b Fix warning runtime invalid scancode 2022-12-18 12:03:29 +01:00
BHBN
c1b635e036 Create jekyll-gh-pages.yml 2022-12-13 23:38:05 +01:00
Bruno Herbelin
2860d8f1de Update doc and README to mention flatpak 2022-12-13 18:32:32 +01:00
Bruno Herbelin
c1fb07b4c7 Fixed flatpak according to flathub recommendations 2022-12-12 23:19:37 +01:00
BHBN
5036c2231c Update build instructions to reference flatpak 2022-12-11 20:51:06 +01:00
BHBN
c848666e17 Update instruction flatpak markdown layout 2022-12-11 20:40:19 +01:00
Bruno Herbelin
55aef98a30 markdown readme 2022-12-11 16:09:38 +01:00
Bruno Herbelin
7cbbf799dc Documenting how to make a flatpak of vimix 2022-12-11 16:06:51 +01:00
Bruno Herbelin
30a4e0297c Making flatpak usable by command line 2022-12-11 15:19:10 +01:00
Bruno Herbelin
5f68f51693 Support for non-US keyboard layout
Hack to translate key press index to matched letter as key. Should work on most Latin keyboard layout, but not tested otherwise...
2022-12-11 14:10:19 +01:00
Bruno Herbelin
8e6aaf29e0 BugFix WorkspaceWindow toggle 2022-12-11 13:26:28 +01:00
261 changed files with 62093 additions and 44719 deletions

50
.github/workflows/jekyll-gh-pages.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Jekyll with GitHub Pages dependencies preinstalled
on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Pages
uses: actions/configure-pages@v2
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./docs
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1

0
1 Normal file
View File

View File

@@ -1,9 +1,9 @@
#####
##### This file is part of vimix - video live mixer
##### **Copyright** (C) 2019-2022 Bruno Herbelin <bruno.herbelin@gmail.com>
##### **Copyright** (C) 2019-2023 Bruno Herbelin <bruno.herbelin@gmail.com>
#####
cmake_minimum_required(VERSION 3.8.2)
cmake_minimum_required(VERSION 3.10)
project(vimix VERSION 0.0.1 LANGUAGES CXX C)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
@@ -28,10 +28,11 @@ if(GIT_EXECUTABLE)
else()
set(VIMIX_VERSION_PATCH "0")
endif()
add_definitions(-DVIMIX_GIT="${GIT_DESCRIBE_VERSION}")
add_definitions(-DVIMIX_VERSION_MAJOR=${VIMIX_VERSION_MAJOR})
add_definitions(-DVIMIX_VERSION_MINOR=${VIMIX_VERSION_MINOR})
add_definitions(-DVIMIX_VERSION_PATCH=${VIMIX_VERSION_PATCH})
message(STATUS "Compiling vimix version ${VIMIX_VERSION_MAJOR}.${VIMIX_VERSION_MINOR}.${VIMIX_VERSION_PATCH}")
message(STATUS "Compiling vimix version ${VIMIX_VERSION_MAJOR}.${VIMIX_VERSION_MINOR}.${VIMIX_VERSION_PATCH} (${GIT_DESCRIBE_VERSION})")
endif()
endif()
@@ -59,17 +60,30 @@ if(UNIX)
# the RPATH to be used when installing
set(CMAKE_SKIP_RPATH TRUE)
set(OpenGL_DIR /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/)
set(CMAKE_OSX_ARCHITECTURES "x86_64")
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
# MacOS target
set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "")
set(CMAKE_OSX_DEPLOYMENT_TARGET "13" CACHE STRING "")
# CPACK
set(CPACK_SYSTEM_NAME "OSX_${CMAKE_OSX_DEPLOYMENT_TARGET}_${CMAKE_OSX_ARCHITECTURES}")
set(CPACK_GENERATOR DragNDrop)
set(CPACK_BINARY_DRAGNDROP ON)
# Apple ID code signing
set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist")
## team ID, for example if your certificate is: Developer ID Application: JOHN, DOE (X4MF6H9XZ6) the team ID is: X4MF6H9XZ6
set(APPLE_CODESIGN_TEAM "" CACHE STRING "")
## Apple identity, in the form Developer ID Application
set(APPLE_CODESIGN_IDENTITY "Developer ID Application:" CACHE STRING "")
## Apple keychain profile for app-specific password
## 1. Create a password for "vimix" at https://support.apple.com/en-us/102654
## 2. Run e.g.
## xcrun notarytool store-credentials "vimix" --apple-id <email_login_apple_id> --team-id <team> --password <string_given_https://appleid.apple.com/account/manage>
set(APPLE_CODESIGN_STORED_CREDENTIAL "vimix" CACHE STRING "")
# find icu4c in OSX (pretty well hidden...)
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/icu4c/lib/pkgconfig")
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig")
else()
add_definitions(-DLINUX)
@@ -84,6 +98,11 @@ if(UNIX)
find_package(GTK 3.0 REQUIRED)
macro_log_feature(GTK_FOUND "GTK" "GTK cross-platform widget toolkit" "http://www.gtk.org" TRUE)
find_package(X11 REQUIRED COMPONENTS xcb)
include_directories(
${X11_INCLUDE_DIR}
)
endif()
add_definitions(-DUNIX)
elseif(WIN32)
@@ -91,6 +110,14 @@ elseif(WIN32)
add_definitions(-DMINGW32)
endif()
#####
##### Preprocessor options
#####
# add_definitions(-DUSE_GST_OPENGL_SYNC_HANDLER)
# add_definitions(-DUSE_GL_BUFFER_SUBDATA)
# add_definitions(-DIGNORE_GST_BUS_MESSAGE)
#####
##### Dependencies
#####
@@ -221,6 +248,8 @@ else ()
set(TINYXML2_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/tinyxml2)
set(TINYXML2_LIBRARIES TINYXML2)
add_library(TINYXML2 "${CMAKE_CURRENT_SOURCE_DIR}/ext/tinyxml2/tinyxml2.cpp")
set_property(TARGET TINYXML2 PROPERTY CXX_STANDARD 17)
set_property(TARGET TINYXML2 PROPERTY C_STANDARD 11)
message(STATUS "Compiling 'TinyXML2' from https://github.com/leethomason/tinyxml2.git -- ${TINYXML2_INCLUDE_DIRS}")
endif()
@@ -329,7 +358,8 @@ include_directories(
${GLAD_INCLUDE_DIRS}
)
add_library(GLAD "${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/src/glad.c")
message(STATUS "Including 'GLAD' Open source multi-language OpenGL loader https://glad.dav1d.de -- ${GLAD_INCLUDE_DIRS}")
set_property(TARGET GLAD PROPERTY C_STANDARD 11)
message(STATUS "Compiling 'GLAD 2' Open source multi-language OpenGL loader https://gen.glad.sh -- ${GLAD_INCLUDE_DIRS}")
#
# DEAR IMGUI
@@ -389,6 +419,14 @@ include_directories(
${OSCPACK_INCLUDE_DIR}
)
add_library(OSCPACK "${OSCPACK_SRCS}")
set_property(TARGET OSCPACK PROPERTY CXX_STANDARD 17)
set_property(TARGET OSCPACK PROPERTY C_STANDARD 11)
# if(APPLE)
target_compile_definitions(OSCPACK
PRIVATE
_M_X64
)
# endif(APPLE)
message(STATUS "Compiling 'OSCPack' from http://www.rossbencina.com/code/oscpack -- ${OSCPACK_INCLUDE_DIR}")
@@ -473,6 +511,8 @@ set(VMIX_RSC_FILES
${AWESOME_SOLID}
./rsc/shaders/simple.fs
./rsc/shaders/simple.vs
./rsc/shaders/texture.fs
./rsc/shaders/texture.vs
./rsc/shaders/image.fs
./rsc/shaders/mask_elipse.fs
./rsc/shaders/mask_box.fs
@@ -527,9 +567,12 @@ set(VMIX_RSC_FILES
./rsc/mesh/border_handles_sharp.ply
./rsc/mesh/border_handles_menu.ply
./rsc/mesh/border_handles_crop.ply
./rsc/mesh/border_handles_shape.ply
./rsc/mesh/border_handles_lock.ply
./rsc/mesh/border_handles_lock_open.ply
./rsc/mesh/border_handles_shadow.ply
./rsc/mesh/border_handles_arrows.ply
./rsc/mesh/border_handles_roundcorner.ply
./rsc/mesh/border_large_sharp.ply
./rsc/mesh/border_vertical_overlay.ply
./rsc/mesh/perspective_layer.ply
@@ -542,6 +585,7 @@ set(VMIX_RSC_FILES
./rsc/mesh/icon_video.ply
./rsc/mesh/icon_image.ply
./rsc/mesh/icon_render.ply
./rsc/mesh/icon_pattern.ply
./rsc/mesh/icon_gear.ply
./rsc/mesh/icon_camera.ply
./rsc/mesh/icon_share.ply
@@ -549,7 +593,6 @@ set(VMIX_RSC_FILES
./rsc/mesh/icon_vimix.ply
./rsc/mesh/icon_group_vimix.ply
./rsc/mesh/icon_circles.ply
./rsc/mesh/icon_dots.ply
./rsc/mesh/icon_empty.ply
./rsc/mesh/icon_lock.ply
./rsc/mesh/icon_unlock.ply
@@ -559,17 +602,28 @@ set(VMIX_RSC_FILES
./rsc/mesh/icon_clock.ply
./rsc/mesh/icon_clock_hand.ply
./rsc/mesh/icon_grid.ply
./rsc/mesh/icon_rightarrow.ply
./rsc/mesh/icon_crop.ply
./rsc/mesh/icon_eye.ply
./rsc/mesh/icon_eye_slash.ply
./rsc/mesh/icon_vector_square_slash.ply
./rsc/mesh/icon_tv.ply
./rsc/mesh/icon_cube.ply
./rsc/mesh/icon_sequence.ply
./rsc/mesh/icon_receive.ply
./rsc/mesh/icon_text.ply
./rsc/mesh/icon_play.ply
./rsc/mesh/icon_fastforward.ply
./rsc/mesh/icon_blend_normal.ply
./rsc/mesh/icon_blend_add.ply
./rsc/mesh/icon_blend_subtract.ply
./rsc/mesh/icon_blend_mult.ply
./rsc/mesh/icon_blend_soft_light.ply
./rsc/mesh/icon_blend_hard_light.ply
./rsc/mesh/icon_blend_soft_sub.ply
./rsc/mesh/icon_blend_lighten.ply
./rsc/mesh/h_line.ply
./rsc/mesh/h_mark.ply
./rsc/shaders/filters/default.glsl
./rsc/shaders/filters/blend.glsl
./rsc/shaders/filters/bloom.glsl
./rsc/shaders/filters/bokeh.glsl
./rsc/shaders/filters/talk.glsl
@@ -613,6 +667,8 @@ set(VMIX_RSC_FILES
./rsc/shaders/filters/resample_quarter.glsl
./rsc/shaders/filters/earlybird.glsl
./rsc/shaders/filters/logo.glsl
./rsc/shaders/filters/whitebalance.glsl
./rsc/images/logo.vmx
)
cmrc_add_resource_library(vmix-resources ALIAS vmix::rc NAMESPACE vmix WHENCE rsc ${VMIX_RSC_FILES})

124
README.md
View File

@@ -1,5 +1,8 @@
# vimix
Live Video Mixing
__Live Video Mixing__
<img src=docs/vimix_screenshot.png width="800">
vimix performs graphical mixing and blending of several movie clips and
computer generated graphics, with image processing effects in real-time.
@@ -8,7 +11,7 @@ Its intuitive and hands-on user interface gives direct control on image opacity
shape for producing live graphics during concerts and VJ-ing sessions.
The output image is typically projected full-screen on an external
monitor or a projector, but can be streamed live (SRT) or recorded (no audio).
monitor or a projector, and can be streamed live (SRT, Shmdata) or recorded (without audio).
vimix is the successor for GLMixer - https://sourceforge.net/projects/glmixer/
@@ -17,47 +20,82 @@ vimix is the successor for GLMixer - https://sourceforge.net/projects/glmixer/
GPL-3.0-or-later
See [LICENSE](https://github.com/brunoherbelin/vimix/blob/master/LICENSE)
# Install
# Install vimix
Check the [Quick Installation Guide](https://github.com/brunoherbelin/vimix/wiki/Quick-Installation-Guide)
### Linux
Download and install a release package from https://snapcraft.io/vimix
Download and install a released [flatpak package](https://flathub.org/apps/details/io.github.brunoherbelin.Vimix)
$ snap install vimix
flatpak install --user vimix
NB: You might need to setup the snap permissions.
NB: Build your flatpak package to get the latest beta version; instructions are [here](https://github.com/brunoherbelin/vimix/tree/master/flatpak).
[![vimix](https://snapcraft.io/vimix/badge.svg)](https://snapcraft.io/vimix)
Download and install a released [snap package](https://snapcraft.io/vimix)
snap install vimix
Install the stable debian package (slower release frequency)
sudo apt install vimix
### Mac OSX
Download and open a release package from https://github.com/brunoherbelin/vimix/releases
NB: You'll need to accept the exception in OSX security preference.
# Build vimix
## Clone
$ git clone --recursive https://github.com/brunoherbelin/vimix.git
git clone --recursive https://github.com/brunoherbelin/vimix.git
This will create the directory 'vimix', download the latest version of vimix code,
and (recursively) clone all the internal git dependencies.
To only update a cloned git copy:
$ git pull
## Compile
First time after git clone:
$ mkdir vimix-build
$ cd vimix-build
$ cmake -DCMAKE_BUILD_TYPE=Release ../vimix
mkdir vimix-build
cd vimix-build
cmake -DCMAKE_BUILD_TYPE=Release ../vimix
cmake --build .
Compile (or re-compile after pull):
This will create the directory 'vimix-build', configure the program for build, and compile vimix.
If successful, the compilation will have produced the executable `vimix` in the `src` directory.
You can run vimix with `./src/vimix` :
...
[100%] Built target vimix
./src/vimix
$ cmake --build .
## Update clone and re-compile
### Dependencies
Run these commands from the `vimix-build` directory if you did 'Clone' and 'Compile' previously and only want to get the latest update and rebuild.
git -C ../vimix/ pull
cmake --build .
This will pull the latest commit from git and recompile.
## Try the Beta branch
Run this commands from the `vimix-build` directory before runing 'Update clone and re-compile above'
git -C ../vimix/ checkout beta
It should say;
branch 'beta' set up to track 'origin/beta'.
Switched to a new branch 'beta'
## Dependencies
**Compiling tools:**
@@ -81,50 +119,26 @@ Optionnal:
- AbletonLink
- Shmdata
#### Install Dependencies
### Install Dependencies
**Ubuntu**
#### Ubuntu
$ apt-get install build-essential cmake libpng-dev libglfw3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav libicu-dev libgtk-3-dev
apt-get install build-essential cmake libpng-dev libglfw3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav libicu-dev libgtk-3-dev
Optionnal:
$ apt-get install libglm-dev libstb-dev libtinyxml2-dev ableton-link-dev
apt-get install libglm-dev libstb-dev libtinyxml2-dev ableton-link-dev
> Follow these instructions to [install Shmdata](https://github.com/nicobou/shmdata/blob/develop/doc/install-from-sources.md).
git clone https://gitlab.com/sat-metalab/shmdata.git
mkdir shmdata-build
cd shmdata-build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=Release -DWITH_PYTHON=0 -DWITH_SDCRASH=0 -DWITH_SDFLOW=0 ../shmdata-build
cmake --build . --target package
sudo dpkg -i ./libshmdata_1.3*_amd64.deb
Follow the instructions to [install Shmdata](https://gitlab.com/sat-mtl/tools/shmdata).
#### OSX with Brew
**OSX with Brew**
brew install cmake libpng glfw gstreamer icu4c
$ brew install cmake libpng glfw gstreamer gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly icu4c
#### Generate snap
To generate the snap (from vimix directory):
$ snapcraft
To install and test the locally created snap:
$ snap install --dangerous vimix_0.5_amd64.snap
#### Generate flatpak
To generate and install the flatpack:
$ flatpak-builder --user --install --force-clean build ##PATH_TO_VIMIX##/flatpak/io.github.brunoherbelin.Vimix.json
To run the installed flatpak:
$ flatpak run io.github.brunoherbelin.Vimix
### Memcheck
To generate memory usage plots in [massif format](https://valgrind.org/docs/manual/ms-manual.html):
$ G_SLICE=always-malloc valgrind --tool=massif ./vimix
To check for memory leaks:
$ G_SLICE=always-malloc valgrind --leak-check=full --log-file=vimix_mem.txt ./vimix

View File

@@ -34,7 +34,7 @@ endif()
set(_version 2.0.0)
cmake_minimum_required(VERSION 3.3)
cmake_minimum_required(VERSION 3.12)
include(CMakeParseArguments)
if(COMMAND cmrc_add_resource_library)
@@ -77,6 +77,10 @@ set(hpp_content [==[
#include <system_error>
#include <type_traits>
#if !(defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND) || defined(CMRC_NO_EXCEPTIONS))
#define CMRC_NO_EXCEPTIONS 1
#endif
namespace cmrc { namespace detail { struct dummy; } }
#define CMRC_DECLARE(libid) \
@@ -101,7 +105,7 @@ public:
iterator cbegin() const noexcept { return _begin; }
iterator end() const noexcept { return _end; }
iterator cend() const noexcept { return _end; }
std::size_t size() const { return std::distance(begin(), end()); }
std::size_t size() const { return static_cast<std::size_t>(std::distance(begin(), end())); }
file() = default;
file(iterator beg, iterator end) noexcept : _begin(beg), _end(end) {}
@@ -243,16 +247,16 @@ public:
return !(*this == rhs);
}
iterator operator++() noexcept {
iterator& operator++() noexcept {
++_base_iter;
return *this;
}
iterator operator++(int) noexcept {
auto cp = *this;
++_base_iter;
return cp;
}
iterator& operator++(int) noexcept {
++_base_iter;
return *this;
}
};
using const_iterator = iterator;
@@ -275,7 +279,7 @@ inline std::string normalize_path(std::string path) {
}
auto off = path.npos;
while ((off = path.find("//")) != path.npos) {
path.erase(path.begin() + off);
path.erase(path.begin() + static_cast<std::string::difference_type>(off));
}
return path;
}
@@ -339,7 +343,12 @@ public:
file open(const std::string& path) const {
auto entry_ptr = _get(path);
if (!entry_ptr || !entry_ptr->is_file()) {
#ifdef CMRC_NO_EXCEPTIONS
fprintf(stderr, "Error no such file or directory: %s\n", path.c_str());
abort();
#else
throw std::system_error(make_error_code(std::errc::no_such_file_or_directory), path);
#endif
}
auto& dat = entry_ptr->as_file();
return file{dat.begin_ptr, dat.end_ptr};
@@ -362,10 +371,20 @@ public:
directory_iterator iterate_directory(const std::string& path) const {
auto entry_ptr = _get(path);
if (!entry_ptr) {
#ifdef CMRC_NO_EXCEPTIONS
fprintf(stderr, "Error no such file or directory: %s\n", path.c_str());
abort();
#else
throw std::system_error(make_error_code(std::errc::no_such_file_or_directory), path);
#endif
}
if (!entry_ptr->is_directory()) {
#ifdef CMRC_NO_EXCEPTIONS
fprintf(stderr, "Error not a directory: %s\n", path.c_str());
abort();
#else
throw std::system_error(make_error_code(std::errc::not_a_directory), path);
#endif
}
return entry_ptr->as_directory().begin();
}
@@ -387,14 +406,14 @@ endif()
file(GENERATE OUTPUT "${cmrc_hpp}" CONTENT "${hpp_content}" CONDITION ${_generate})
add_library(cmrc-base INTERFACE)
target_include_directories(cmrc-base INTERFACE "${CMRC_INCLUDE_DIR}")
target_include_directories(cmrc-base INTERFACE $<BUILD_INTERFACE:${CMRC_INCLUDE_DIR}>)
# Signal a basic C++11 feature to require C++11.
target_compile_features(cmrc-base INTERFACE cxx_nullptr)
set_property(TARGET cmrc-base PROPERTY INTERFACE_CXX_EXTENSIONS OFF)
add_library(cmrc::base ALIAS cmrc-base)
function(cmrc_add_resource_library name)
set(args ALIAS NAMESPACE)
set(args ALIAS NAMESPACE TYPE)
cmake_parse_arguments(ARG "" "${args}" "" "${ARGN}")
# Generate the identifier for the resource library's namespace
set(ns_re "[a-zA-Z_][a-zA-Z0-9_]*")
@@ -410,6 +429,14 @@ function(cmrc_add_resource_library name)
endif()
endif()
set(libname "${name}")
# Check that type is either "STATIC" or "OBJECT", or default to "STATIC" if
# not set
if(NOT DEFINED ARG_TYPE)
set(ARG_TYPE STATIC)
elseif(NOT "${ARG_TYPE}" MATCHES "^(STATIC|OBJECT)$")
message(SEND_ERROR "${ARG_TYPE} is not a valid TYPE (STATIC and OBJECT are acceptable)")
set(ARG_TYPE STATIC)
endif()
# Generate a library with the compiled in character arrays.
string(CONFIGURE [=[
#include <cmrc/cmrc.hpp>
@@ -468,7 +495,7 @@ function(cmrc_add_resource_library name)
# Generate the actual static library. Each source file is just a single file
# with a character array compiled in containing the contents of the
# corresponding resource file.
add_library(${name} STATIC ${libcpp})
add_library(${name} ${ARG_TYPE} ${libcpp})
set_property(TARGET ${name} PROPERTY CMRC_LIBDIR "${libdir}")
set_property(TARGET ${name} PROPERTY CMRC_NAMESPACE "${ARG_NAMESPACE}")
target_link_libraries(${name} PUBLIC cmrc::base)
@@ -558,7 +585,7 @@ function(cmrc_add_resources name)
endif()
get_filename_component(dirpath "${ARG_PREFIX}${relpath}" DIRECTORY)
_cmrc_register_dirs("${name}" "${dirpath}")
get_filename_component(abs_out "${libdir}/intermediate/${relpath}.cpp" ABSOLUTE)
get_filename_component(abs_out "${libdir}/intermediate/${ARG_PREFIX}${relpath}.cpp" ABSOLUTE)
# Generate a symbol name relpath the file's character array
_cm_encode_fpath(sym "${relpath}")
# Get the symbol name for the parent directory

View File

@@ -33,9 +33,10 @@ find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PKG_GSTREAMER gstreamer-${GSTREAMER_ABI_VERSION})
exec_program(${PKG_CONFIG_EXECUTABLE}
ARGS --variable pluginsdir gstreamer-${GSTREAMER_ABI_VERSION}
OUTPUT_VARIABLE PKG_GSTREAMER_PLUGIN_DIR)
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE}
--variable pluginsdir gstreamer-${GSTREAMER_ABI_VERSION}
OUTPUT_VARIABLE PKG_GSTREAMER_PLUGIN_DIR_TMP)
string(STRIP ${PKG_GSTREAMER_PLUGIN_DIR_TMP} PKG_GSTREAMER_PLUGIN_DIR)
endif()
find_library(GSTREAMER_LIBRARY

Binary file not shown.

Before

Width:  |  Height:  |  Size: 598 KiB

After

Width:  |  Height:  |  Size: 377 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 612 KiB

After

Width:  |  Height:  |  Size: 971 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 389 KiB

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 885 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

After

Width:  |  Height:  |  Size: 388 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB

After

Width:  |  Height:  |  Size: 538 KiB

View File

@@ -4,10 +4,10 @@ computer generated graphics, with image processing effects in real-time.
Its intuitive and hands-on user interface gives direct control on image opacity and
shape for producing live graphics during concerts and VJ-ing sessions.
The output image is typically projected full-screen on an external
monitor or a projector, but can be streamed live (SRT) or recorded (no audio).
The output image is typically projected full-screen on external monitors
or projectors, but can be streamed live (SRT) or recorded (without audio).
![screenshot](vimix_0.2_beta.jpg)
![screenshot](vimix_screenshot.png)
Check the [Graphical User Manual](https://github.com/brunoherbelin/vimix/wiki/User-manual) or [demo videos](https://vimeo.com/vimix) to discover vimix.
Watch this selection of [videos by Jean Detheux](https://vimeo.com/showcase/7871359) to see what vimix can do.
@@ -18,11 +18,11 @@ Watch this selection of [videos by Jean Detheux](https://vimeo.com/showcase/7871
### Linux
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-white.svg)](https://snapcraft.io/vimix)
Install the [flathub](https://flathub.org/apps/details/io.github.brunoherbelin.Vimix), [snap](https://snapcraft.io/vimix) or [Deb](https://tracker.debian.org/pkg/vimix) package.
### Mac OSX
Download package from [Github Releases](https://github.com/brunoherbelin/vimix/releases) page.
Download package from [Github Releases](https://github.com/brunoherbelin/vimix/releases).
### Windows
@@ -40,7 +40,7 @@ vimix is free and open source (GPL3+).
vimix is the successor of [GLMixer](https://sourceforge.net/projects/glmixer/), benefiting
from 10 years of refinement of User-Experience design since its [first draft](https://sourceforge.net/p/glmixer/wiki/GLMixer%20History/).
vimix is in its early infancy, open to [feature requests and bug reports](https://github.com/brunoherbelin/vimix/issues).
vimix is open to [feature requests and bug reports](https://github.com/brunoherbelin/vimix/issues).
vimix welcomes contributions and support: check the [wiki](https://github.com/brunoherbelin/vimix/wiki) for more info.

99
docs/notes.txt Normal file
View File

@@ -0,0 +1,99 @@
Various Notes and reminders
===========================
Copyright 2024 Bruno Herbelin
Publishing new a release
------------------------
- Update share/metainfo/io.github.brunoherbelin.Vimix.metainfo.xml
Add a <release>, with date and version number
- Update snap/snapcraft.yaml
Change version string
- commit to Beta
- Test the flatpack for Beta
https://github.com/brunoherbelin/vimix/tree/master/flatpak
- Test the snap for Beta
$ snap remove vimix
$ snapcraft (from vimix base dir)
$ snap install ./vimix_0.X.Y_amd64.snap --dangerous
$ snap connections vimix
- Merge Beta into origin/master
- push origin/master
- Create Release & Tag in https://github.com/brunoherbelin/vimix
Document new features and major bugfixes
- Edit the Json on https://github.com/flathub/io.github.brunoherbelin.Vimix
Set vimix git Tag and Commit #
Merge pull-request after successful flathubbot compilation
(delete branch)
- Follow-up status of flathub package build on https://buildbot.flathub.org
(link is sent by email)
Mac OSX specificities
------------------------
- Settings are saved in /Users/[username]/Library/Application Support/vimix
Instructions to reset in finder, do "Go to folder" (shift+command+G),
enter "/Users/[username]/Library/Application Support/vimix" and delete the folder 'vimix'
- POST INSTALL DMG SIGNING AND NOTARIZATION
1. SIGN DMG
codesign --force --sign "Developer ID Application: <identityIdentifier>" <pathToDMG>
verify with:
codesign --verify --verbose=2 <pathToDMG>
2. SUBMIT TO NOTARIZATION
xcrun notarytool submit <pathToDMG> --keychain-profile "vimix" --wait
verify with:
xcrun notarytool log xxxx-xxxx-xxx --keychain-profile "vimix"
NB: "vimix" is the name of the app-specific password in keychain generated online: https://support.apple.com/en-us/102654
3. STAPLE THE TICKET TO THE DISK IMAGE
xcrun stapler staple <pathToDMG>
4. VERIFY NOTARIZATION
spctl -a -vv -t install <pathToDMG>
NB: more info at https://wiki.lazarus.freepascal.org/Notarization_for_macOS_10.14.5%2B
Testing performance
-------------------
Linux perf command
- Allow perf on your system
sudo sysctl -w kernel.perf_event_paranoid=-1
- Launch command to record
perf record ./vimix
perf record --pid=XXXXX
- Analyse using https://github.com/KDAB/hotspot
Memcheck
--------
To generate memory usage plots in [massif format](https://valgrind.org/docs/manual/ms-manual.html):
G_SLICE=always-malloc valgrind --tool=massif ./vimix
To check for memory leaks:
G_SLICE=always-malloc valgrind --leak-check=full --log-file=vimix_mem.txt ./vimix

View File

@@ -1,6 +1,6 @@
.\"Created by Bruno Herbelin
.TH vimix 1 "March 2022" "0.7.0" "vimix manpage"
.TH vimix 1 "March 2023" "0.8.0" "vimix manpage"
.SH NAME
vimix \- Video live mixer
@@ -17,16 +17,34 @@ performs graphical mixing and blending of several movie clips and computer gener
Its intuitive and hands-on user interface gives direct control on image opacity and shape for producing live graphics during concerts or VJ-ing sessions.
The output image is typically projected full-screen on an external monitor or a projector, but can be streamed live (SRT) or recorded (no audio).
The output image is typically projected full-screen on an external monitor or a projector, but can be streamed live (SRT) or recorded.
.SH OPTIONS
.TP
.BR \-H ", " \-\^\-help
Display usage information for
.B vimix
and exit.
.TP
.BR \-V ", " \-\^\-version
Output the version number of
.B vimix
and exit.
.TP
.BR \-F ", " \-\^\-fontsize N
Set interface font size to specified value N.
.TP
.BR \-S ", " \-\^\-settings settingsfile.xml
Run using the given settings file.
.TP
.BR \-L ", " \-\^\-headless
Run without graphical user interface (only if output windows are configured).
.TP
.BR \-C ", " \-\^\-clean
Clean the user stored preferences of
@@ -53,11 +71,11 @@ A user manual and tutorials are available online (https://github.com/brunoherbel
.SH BUGS
.SS "Reporting bugs"
Report bugs and issues on github (https://github.com/brunoherbelin/vimix).
Report bugs and issues on github (https://github.com/brunoherbelin/vimix/issues).
.SH COPYRIGHT
GPL3+ license
.PP
Copyright (c) 2022 Bruno Herbelin
Copyright (c) 2023 Bruno Herbelin
.PP
This document is part of the vimix software.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 17 KiB

BIN
docs/vimix_screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
docs/vimix_screenshot_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 993 KiB

View File

@@ -49,10 +49,10 @@ unsigned long IpEndpointName::GetHostByName( const char *s )
void IpEndpointName::AddressAsString( char *s ) const
{
if( address == ANY_ADDRESS ){
std::sprintf( s, "<any>" );
if( address == ANY_ADDRESS ){
std::snprintf( s, IpEndpointName::ADDRESS_STRING_LENGTH, "<any>" );
}else{
std::sprintf( s, "%d.%d.%d.%d",
std::snprintf( s, IpEndpointName::ADDRESS_STRING_LENGTH, "%d.%d.%d.%d",
(int)((address >> 24) & 0xFF),
(int)((address >> 16) & 0xFF),
(int)((address >> 8) & 0xFF),
@@ -65,9 +65,9 @@ void IpEndpointName::AddressAndPortAsString( char *s ) const
{
if( port == ANY_PORT ){
if( address == ANY_ADDRESS ){
std::sprintf( s, "<any>:<any>" );
std::snprintf( s, IpEndpointName::ADDRESS_AND_PORT_STRING_LENGTH, "<any>:<any>" );
}else{
std::sprintf( s, "%d.%d.%d.%d:<any>",
std::snprintf( s, IpEndpointName::ADDRESS_AND_PORT_STRING_LENGTH, "%d.%d.%d.%d:<any>",
(int)((address >> 24) & 0xFF),
(int)((address >> 16) & 0xFF),
(int)((address >> 8) & 0xFF),
@@ -75,9 +75,9 @@ void IpEndpointName::AddressAndPortAsString( char *s ) const
}
}else{
if( address == ANY_ADDRESS ){
std::sprintf( s, "<any>:%d", port );
std::snprintf( s, IpEndpointName::ADDRESS_AND_PORT_STRING_LENGTH, "<any>:%d", port );
}else{
std::sprintf( s, "%d.%d.%d.%d:%d",
std::snprintf( s, IpEndpointName::ADDRESS_AND_PORT_STRING_LENGTH, "%d.%d.%d.%d:%d",
(int)((address >> 24) & 0xFF),
(int)((address >> 16) & 0xFF),
(int)((address >> 8) & 0xFF),

View File

@@ -119,7 +119,7 @@
* This follows the return type of the function and precedes the function
* name in the function prototype.
*/
#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(KHRONOS_STATIC)
#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
/* Win32 but not WinCE */
# define KHRONOS_APIENTRY __stdcall
#else
@@ -153,6 +153,20 @@ typedef int64_t khronos_int64_t;
typedef uint64_t khronos_uint64_t;
#define KHRONOS_SUPPORT_INT64 1
#define KHRONOS_SUPPORT_FLOAT 1
/*
* To support platform where unsigned long cannot be used interchangeably with
* inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
* Ideally, we could just use (u)intptr_t everywhere, but this could result in
* ABI breakage if khronos_uintptr_t is changed from unsigned long to
* unsigned long long or similar (this results in different C++ name mangling).
* To avoid changes for existing platforms, we restrict usage of intptr_t to
* platforms where the size of a pointer is larger than the size of long.
*/
#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
#define KHRONOS_USE_INTPTR_T
#endif
#endif
#elif defined(__VMS ) || defined(__sgi)
@@ -235,14 +249,21 @@ typedef unsigned short int khronos_uint16_t;
* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
* to be the only LLP64 architecture in current use.
*/
#ifdef _WIN64
#ifdef KHRONOS_USE_INTPTR_T
typedef intptr_t khronos_intptr_t;
typedef uintptr_t khronos_uintptr_t;
#elif defined(_WIN64)
typedef signed long long int khronos_intptr_t;
typedef unsigned long long int khronos_uintptr_t;
typedef signed long long int khronos_ssize_t;
typedef unsigned long long int khronos_usize_t;
#else
typedef signed long int khronos_intptr_t;
typedef unsigned long int khronos_uintptr_t;
#endif
#if defined(_WIN64)
typedef signed long long int khronos_ssize_t;
typedef unsigned long long int khronos_usize_t;
#else
typedef signed long int khronos_ssize_t;
typedef unsigned long int khronos_usize_t;
#endif

1
ext/glad/include/glad/gl.h Symbolic link
View File

@@ -0,0 +1 @@
glad.h

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Submodule ext/glm updated: 2929ad5a66...da9a21d7e3

Submodule ext/stb updated: f54acd4e13...f4a71b1337

View File

@@ -1,86 +0,0 @@
** Prepare and install flatpak
~$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
~$ flatpak install org.gnome.Sdk/x86_64
~$ flatpak install org.gnome.Platform
** build vimix flatpak
~$ cd vimix/flatpak
~$ flatpak-builder --user --install --force-clean build io.github.brunoherbelin.Vimix.json
NB: might need to run this to enable local git clone during build
~$ git config --global --add protocol.file.allow always
run vimix flatpak
~$ flatpak run io.github.brunoherbelin.Vimix
uninstall vimix
~$ flatpak uninstall vimix
** Change io.github.brunoherbelin.Vimix.json
"finish-args": [
"--socket=wayland",
"--socket=fallback-x11",
"--share=ipc",
"--share=network",
"--device=shm",
"--device=all",
"--device=dri",
"--filesystem=host",
"--filesystem=/tmp",
"--talk-name=org.gtk.vfs.*",
"--env=FREI0R_PATH=/app/lib/frei0r-1"
],
"cleanup": [
"/include",
"/share/gdb",
"/share/info",
"/share/man",
"/lib/debug"
],
compile vimix with code from local folder (debug)
{
"name": "vimix",
"buildsystem": "cmake",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release"
],
"sources": [
{
"type":"dir",
"path": "/home/bhbn/Development/vimix",
}
]
}
for packaging
{
"name": "vimix",
"buildsystem": "cmake",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release"
],
"sources": [
{
"type": "git",
"url": "https://github.com/brunoherbelin/vimix.git",
"tag": "0.7.2"
}
]
}
** Declare flatpak on flathub :
https://github.com/brunoherbelin/flathub

91
flatpak/README.md Normal file
View File

@@ -0,0 +1,91 @@
Linux Flatpak package of vimix
================================
## Prerequirement: install flatpak
Instructions are at https://flatpak.org/setup/
e.g. for Ubuntu:
sudo apt install flatpak
## Install vimix releases from Flathub
If you followed all instructions of the [flatpak setup](https://flatpak.org/setup/), vimix should be in the list of packages.
flatpak install --user vimix
## Build local beta flatpack package of vimix
If you want to have the latest developper version of vimix (before releases), you can build a vimix flatpak yourself.
This way, the application vimix is still sandboxed (i.e. not installing libs in your system), removable (entirely free space after remove) and updatable (just re-compile to update).
### 1. Install flatpak build environments
If not already installed, install the builder and the flathub repository:
sudo apt install flatpak-builder
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Install the runtime environments:
flatpak install org.gnome.Sdk/x86_64
flatpak install org.gnome.Platform
_Select version **47** in the list of proposed versions_
### 2. Build vimix flatpak
These settings of git are needed to enable clone of local repos during build:
git config --global --add protocol.file.allow always
Get the flatpak manifest for vimix:
curl -O https://raw.githubusercontent.com/brunoherbelin/vimix/master/flatpak/io.github.brunoherbelin.Vimix.json
Launch the build of the flatpak:
flatpak-builder --user --install --force-clean build io.github.brunoherbelin.Vimix.json
The build will be quite long as some dependencies are also re-build from source. However, the build of dependencies is kept in cache; rebuilding vimix will subsequently be much faster.
## Run vimix flatpak
If all goes well, the package will have been generated and be able to run. The vimix app icon should be available.
To run from command line:
flatpak run io.github.brunoherbelin.Vimix
## Uninstall vimix flatpak
flatpak uninstall vimix
# Developper information
The flatpak manifest for flathub is at https://github.com/flathub/io.github.brunoherbelin.Vimix
To build the vimix flatpak with code from local folder (debugging), change the following:
{
"name": "vimix",
"buildsystem": "cmake",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release"
],
"sources": [
{
"type":"dir",
"path": "/home/bhbn/Development/vimix",
}
]
}

View File

@@ -1,14 +1,15 @@
{
"app-id": "io.github.brunoherbelin.Vimix",
"runtime": "org.gnome.Platform",
"runtime-version": "43",
"runtime-version": "47",
"sdk": "org.gnome.Sdk",
"command": "vimix",
"command": "launch_vimix.sh",
"rename-desktop-file": "vimix.desktop",
"rename-icon": "vimix",
"finish-args": [
"--socket=wayland",
"--socket=fallback-x11",
"--socket=pulseaudio",
"--share=ipc",
"--share=network",
"--device=dri",
@@ -26,13 +27,12 @@
"/share/man",
"/share/doc",
"/lib/pkgconfig",
"/lib/debug",
"*.a"
],
"modules": [
{
"name": "glfw",
"buildsystem": "cmake",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DBUILD_SHARED_LIBS=ON",
@@ -41,11 +41,12 @@
"-DGLFW_BUILD_DOCS=OFF"
],
"sources": [
{
"type": "archive",
"url": "https://github.com/glfw/glfw/releases/download/3.3.8/glfw-3.3.8.zip",
"sha256": "4d025083cc4a3dd1f91ab9b9ba4f5807193823e565a5bcf4be202669d9911ea6"
}
{
"type": "git",
"tag": "3.4",
"commit": "7b6aead9fb88b3623e3b3725ebb42670cbe4c579",
"url": "https://github.com/glfw/glfw.git"
}
]
},
{
@@ -56,14 +57,31 @@
"sources": [
{
"type": "git",
"commit": "baee400fa9ced6f5481a728138fed6e867b0ff7f",
"commit": "373697b467f7cd0af88f1e9e32d4f10540df4687",
"url": "https://code.videolan.org/videolan/x264.git"
}
]
},
{
"name": "x265",
"buildsystem": "cmake-ninja",
"subdir": "source",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
],
"sources": [
{
"type": "git",
"tag": "4.1",
"commit": "1d117bed4747758b51bd2c124d738527e30392cb",
"url": "https://bitbucket.org/multicoreware/x265_git.git"
}
]
},
{
"name": "srt",
"buildsystem": "cmake",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DENABLE_APPS=OFF",
@@ -72,23 +90,23 @@
"sources": [
{
"type": "git",
"tag": "v1.5.1",
"commit": "0bc3b03202b3159fc9b085b3ae6d66ec071c25d6",
"tag": "v1.5.4",
"commit": "a8c6b65520f814c5bd8f801be48c33ceece7c4a6",
"url": "https://github.com/Haivision/srt.git"
}
]
},
{
"name": "frei0r",
"buildsystem": "cmake",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release"
],
"sources": [
{
"type": "git",
"tag": "v1.8.0",
"commit": "c11beecfaad5c29350127515795295a13d53e956",
"tag": "v2.3.3",
"commit": "cdeddc7553bbfdc446c61d1bfa6a51bcc029b4a8",
"url": "https://github.com/dyne/frei0r.git"
}
]
@@ -101,21 +119,29 @@
"-Ddoc=disabled",
"-Dpython=disabled",
"-Dges=disabled",
"-Drs=disabled",
"-Dgst-examples=disabled",
"-Drtsp_server=disabled",
"-Ddevtools=disabled",
"-Dgpl=enabled",
"-Dqt5=disabled",
"-Dlibav=enabled",
"-Dbase=enabled",
"-Dgood=enabled",
"-Dgst-plugins-good:v4l2=enabled",
"-Dgpl=enabled",
"-Dbad=enabled",
"-Dgst-plugins-bad:x265=enabled",
"-Dgst-plugins-bad:srt=enabled",
"-Dgst-plugins-bad:shm=enabled",
"-Dugly=enabled",
"-Dgst-plugins-ugly:x264=enabled"
"-Dgst-plugins-ugly:x264=enabled",
"-Dvaapi=enabled"
],
"sources": [
{
"type": "git",
"tag": "1.20.4",
"commit": "642730bd67d3c23ac68bd328fbddd191a7a43f25",
"tag": "1.24.10",
"commit": "5be4b6f03689ab438822f6cfcd13f1f300afe203",
"url": "https://gitlab.freedesktop.org/gstreamer/gstreamer.git",
"disable-submodules": false
}
@@ -123,9 +149,9 @@
},
{
"name": "shmdata",
"buildsystem": "cmake",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DCMAKE_BUILD_TYPE=RelWithDebInfo",
"-DWITH_PYTHON=OFF",
"-DWITH_SDFLOW=OFF",
"-DWITH_SDCRASH=OFF",
@@ -134,22 +160,23 @@
"sources": [
{
"type": "git",
"tag": "1.3.72",
"commit": "96e044d1c6330e5fc9993cda2abc695a1dbc656e",
"tag": "1.3.74",
"commit": "43d2fe1b133cc9ded823fde6bd10560721a36e98",
"url": "https://gitlab.com/sat-mtl/tools/shmdata.git"
}
]
},
{
"name": "vimix",
"buildsystem": "cmake",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release"
],
"sources": [
{
"type":"dir",
"path": "/home/bhbn/Development/vimix"
"type": "git",
"branch": "beta",
"url": "https://github.com/brunoherbelin/vimix.git"
}
]
}

View File

@@ -7,6 +7,11 @@
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>mix</string>
<string>MIX</string>
</array>
<key>CFBundleTypeName</key>
<string>vimix session</string>
<key>CFBundleTypeRole</key>
@@ -17,14 +22,14 @@
<true/>
<key>LSItemContentTypes</key>
<array>
<string>com.bhbn.mix</string>
<string>com.bhbn.vimix</string>
</array>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>vimix</string>
<key>CFBundleGetInfoString</key>
<string>vimix - Video Live Mix</string>
<string>vimix - Video Live Mixer</string>
<key>CFBundleIconFile</key>
<string>vimix.icns</string>
<key>CFBundleIdentifier</key>
@@ -32,15 +37,15 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string>0.7.0</string>
<string>version ${VIMIX_VERSION_MAJOR}.${VIMIX_VERSION_MINOR}.${VIMIX_VERSION_PATCH}</string>
<key>CFBundleName</key>
<string>vimix</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.7</string>
<key>CFBundleVersion</key>
<string>0.7.0</string>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>${VIMIX_VERSION_MAJOR}.${VIMIX_VERSION_MINOR}</string>
<key>CFBundleVersion</key>
<string>${VIMIX_VERSION_MAJOR}.${VIMIX_VERSION_MINOR}.${VIMIX_VERSION_PATCH}</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSAppNapIsDisabled</key>
@@ -48,7 +53,7 @@
<key>LSApplicationCategoryType</key>
<string>public.app-category.video</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
@@ -61,7 +66,7 @@
<key>NSMicrophoneUsageDescription</key>
<string>vimix needs to access the microphone to enable sound sources.</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2022 Bruno Herbelin. All rights reserved.</string>
<string>Copyright © 2023 Bruno Herbelin. All rights reserved.</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>

Binary file not shown.

Binary file not shown.

57
rsc/images/logo.vmx Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
width="1024"
height="1024"
id="svg3744"
sodipodi:version="0.32"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
version="1.0"
sodipodi:docname="vimix.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/bhbn/Developments/v-mix/rsc/images/vimix_256x256.png"
inkscape:export-xdpi="405.16815"
inkscape:export-ydpi="405.16815">
inkscape:export-ydpi="405.16815"
viewBox="0 0 64 64"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
@@ -27,9 +27,9 @@
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="35.082716"
inkscape:cy="31.811389"
inkscape:zoom="0.70710681"
inkscape:cx="988.53524"
inkscape:cy="297.69194"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:document-units="px"
@@ -39,17 +39,21 @@
showborder="true"
objecttolerance="1"
guidetolerance="10000"
inkscape:window-width="2890"
inkscape:window-height="1885"
inkscape:window-x="817"
inkscape:window-y="89"
inkscape:window-width="2631"
inkscape:window-height="1696"
inkscape:window-x="2867"
inkscape:window-y="252"
inkscape:window-maximized="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:showpageshadow="false"
inkscape:document-rotation="0">
inkscape:document-rotation="0"
inkscape:pagecheckerboard="true"
viewbox-height="64"
inkscape:deskcolor="#d1d1d1"
showguides="false">
<inkscape:grid
type="xygrid"
id="grid3754"
@@ -80,7 +84,7 @@
</pattern>
<linearGradient
id="linearGradient5756"
osb:paint="gradient">
inkscape:swatch="gradient">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
@@ -125,10 +129,10 @@
</pattern>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 8 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="16 : 8 : 1"
inkscape:persp3d-origin="8 : 5.3333333 : 1"
inkscape:vp_x="0 : 60.5 : 1"
inkscape:vp_y="0 : 62.5 : 0"
inkscape:vp_z="1 : 60.5 : 1"
inkscape:persp3d-origin="0.5 : 60.333333 : 1"
id="perspective20" />
<linearGradient
id="linearGradient3237-580">
@@ -163,17 +167,6 @@
r="6.75"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.7382429,-0.11091491,0.10548406,3.5552029,1.2501838,4.445696)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3237-580"
id="radialGradient855"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(4.0147937,-0.11912026,0.11328765,3.8182126,-0.22443818,-46.542095)"
cx="8"
cy="8"
fx="8"
fy="8"
r="6.75" />
</defs>
<metadata
id="metadata3749">
@@ -183,7 +176,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -192,41 +184,33 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(-0.8,48.8)"
style="opacity:0.89674699">
<ellipse
style="fill:#0c0c0c;fill-opacity:0.477137;stroke:none;stroke-width:0.862179;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="path854"
cx="32.799999"
cy="-16.91748"
rx="27.470198"
ry="27.375973" />
style="opacity:0.896747">
<path
id="path4090"
d="m 32.8,-48.060406 c -17.255744,0 -31.2604061,14.004662 -31.2604061,31.260406 0,17.25574393 14.0046621,31.260406 31.2604061,31.260406 17.255744,0 31.260406,-14.00466207 31.260406,-31.260406 0,-17.255744 -14.004662,-31.260406 -31.260406,-31.260406 z m 0,3.907551 c 15.098776,0 27.352855,12.254079 27.352855,27.352855 0,15.0987763 -12.254079,27.352856 -27.352855,27.352856 -15.098776,0 -27.3528552,-12.2540797 -27.3528552,-27.352856 0,-15.098776 12.2540792,-27.352855 27.3528552,-27.352855 z"
style="display:inline;overflow:visible;visibility:visible;opacity:0.2;fill:#848484;fill-opacity:0.654019;fill-rule:nonzero;stroke:none;stroke-width:4.34172;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.6;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
inkscape:connector-curvature="0"
inkscape:export-xdpi="405"
inkscape:export-ydpi="405" />
id="path1377"
style="fill:#fefefe;fill-opacity:1;stroke:none;stroke-width:13.7949;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 506.37891 46.853516 A 35.386253 35.876232 0 0 0 471.56641 83.111328 A 35.386253 35.876232 0 0 0 507.14062 118.60156 A 35.386253 35.876232 0 0 0 542.33594 82.724609 L 542.32812 81.955078 A 35.386253 35.876232 0 0 0 506.37891 46.853516 z M 557.91602 75.181641 A 51.20705 51.916088 0 0 1 558.61523 82.310547 L 558.62695 83.425781 A 51.20705 51.916088 0 0 1 507.69531 135.3418 A 51.20705 51.916088 0 0 1 456.2168 83.984375 A 51.20705 51.916088 0 0 1 456.77148 76.261719 A 439.52317 438.01557 0 0 0 72.476562 510.80078 A 439.52317 438.01557 0 0 0 512 948.81641 A 439.52317 438.01557 0 0 0 951.52344 510.80078 A 439.52317 438.01557 0 0 0 557.91602 75.181641 z M 574.2207 99.355469 C 775.58118 129.89032 925.01736 302.04578 926.93945 505.69922 C 928.5511 701.76412 795.55034 871.15959 604.06445 913.31641 C 602.4825 911.15636 601.65232 909.64698 600.7832 907.26172 L 552.5332 776.79297 C 645.75044 749.49787 713.9082 663.49594 713.9082 561.44922 L 713.9082 467.88672 L 826.18945 449.19922 C 826.18945 407.85896 775.9127 374.35547 713.9082 374.35547 L 694.7832 374.35547 C 677.70917 351.76158 650.85682 336.91797 620.3457 336.91797 C 568.67908 336.91797 526.81445 378.81392 526.81445 430.48047 L 526.81445 455.04297 L 166.18945 738.73047 C 123.39892 674.21627 99.509132 599.01809 97.220703 521.63672 C 91.255639 315.82456 237.11206 136.76632 439.87695 100.98047 C 445.47492 134.24906 473.99533 158.52507 507.2832 158.35547 C 540.91197 158.16473 569.35778 133.09206 574.2207 99.355469 z M 621.07227 391.29102 A 25.160138 25.508518 0 0 1 646.63281 416.24805 L 646.63867 416.79688 A 25.160138 25.508518 0 0 1 621.61328 442.30469 A 25.160138 25.508518 0 0 1 596.32031 417.07227 A 25.160138 25.508518 0 0 1 621.07227 391.29102 z M 496.00195 785.66797 L 546.7832 923.01172 C 537.86356 923.78004 528.92138 924.25946 519.9707 924.44922 C 507.72051 924.61642 508.61151 924.94414 496.39453 924.02734 C 493.88434 919.46995 490.72197 913.35439 488.50195 907.26172 L 443.68945 785.98047 L 489.37695 785.98047 C 491.61065 785.98047 493.77992 785.73837 496.00195 785.66797 z M 271.00195 785.98047 L 383.81445 785.98047 L 432.12695 916.54297 C 354.22406 901.2289 282.34979 863.88725 225.0332 808.94922 L 271.00195 785.98047 z "
transform="matrix(0.0625,0,0,0.0625,0.8,-48.8)" />
<g
id="g858">
id="g858-7"
style="fill:#000000;fill-opacity:0.72336751;stroke:none;stroke-opacity:1"
transform="translate(13.206572,4.8349528)">
<path
id="path4096"
style="display:inline;overflow:visible;visibility:visible;opacity:0.801;fill:url(#radialGradient855);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:stroke fill markers;enable-background:accumulate"
d="m 36.688849,-42.590063 c -0.303933,2.108537 -2.081796,3.675579 -4.183594,3.6875 -2.080492,0.0106 -3.863017,-1.50665 -4.21289,-3.585937 -12.672805,2.236616 -21.7888326,13.427755 -21.4160161,26.291015 0.1430268,4.836336 1.636139,9.5362214 4.3105471,13.5683594 L 33.725958,-20.359594 v -1.535156 c 0,-3.229159 2.616539,-5.847657 5.845703,-5.847657 1.906945,0 3.585217,0.927726 4.652344,2.339844 h 1.195313 c 3.875281,0 7.017578,2.093968 7.017578,4.677734 l -7.017578,1.167969 v 5.847656 c 0,6.3779194 -4.259861,11.7530414 -10.085938,13.45898538 l 3.015625,8.15429682 c 0.05432,0.149079 0.106204,0.243515 0.205076,0.378518 C 50.521949,5.6477954 58.834499,-4.9395226 58.733771,-17.193579 58.61364,-29.921919 49.273879,-40.681635 36.688849,-42.590063 Z m 2.769317,19.244586 c -0.764292,0 -1.38415,0.619286 -1.38415,1.384151 0,0.764288 0.619858,1.385691 1.38415,1.385691 0.764291,0 1.385692,-0.621403 1.385692,-1.385691 0,-0.764865 -0.621402,-1.384151 -1.385692,-1.384151 z M 31.800177,0.30446838 c -0.138877,0.0044 -0.274456,0.01953 -0.414062,0.01953 h -2.855469 l 2.800781,7.58007782 c 0.138751,0.380792 0.336318,0.7630677 0.493205,1.0479047 0.763561,0.0573 0.707955,0.03676 1.473592,0.02631 0.559417,-0.01186 1.118303,-0.04182 1.675781,-0.08984 z m -14.0625,0.01953 -2.873047,1.43554602 c 3.582287,3.433627 8.074429,5.76748 12.943359,6.7246095 L 24.788458,0.32399838 Z"
sodipodi:nodetypes="ccccccsscsccscccccssssscsccccccccccc" />
style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:0.72336751;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:stroke fill markers;enable-background:accumulate"
d="m 23.48228,-47.425279 c -0.303933,2.108537 -2.081796,3.675579 -4.183594,3.6875 -2.080492,0.0106 -3.863017,-1.50665 -4.21289,-3.585937 -12.6728055,2.236616 -21.7888331,13.427755 -21.4160166,26.291015 0.1430268,4.836336 1.636139,9.536222 4.3105471,13.5683597 L 20.519389,-25.19481 v -1.535156 c 0,-3.229159 2.616539,-5.847657 5.845703,-5.847657 1.906945,0 3.585217,0.927726 4.652344,2.339844 h 1.195313 c 3.875281,0 7.017578,2.093968 7.017578,4.677734 l -7.017578,1.167969 v 5.847656 c 0,6.37792 -4.259861,11.7530417 -10.085938,13.4589856 l 3.015625,8.1542969 c 0.05432,0.149079 0.106204,0.243515 0.205076,0.378518 C 37.31538,0.81257966 45.62793,-9.7747383 45.527202,-22.028795 45.407071,-34.757135 36.06731,-45.516851 23.48228,-47.425279 Z m -4.888672,42.8945316 c -0.138877,0.0044 -0.274456,0.01953 -0.414062,0.01953 h -2.855469 l 2.800781,7.5800779 c 0.138751,0.380792 0.336318,0.7630677 0.493205,1.0479047 0.763561,0.0573 0.707955,0.03676 1.473592,0.02631 0.559417,-0.01186 1.118303,-0.04182 1.675781,-0.08984 z m -14.0625005,0.01953 -2.873047,1.4355461 c 3.582287,3.43362696 8.074429,5.76748 12.9433595,6.7246095 l -3.019531,-8.1601556 z"
sodipodi:nodetypes="ccccccsscsccsccccccsccccccccccc"
inkscape:label="path4096" />
</g>
<path
style="opacity:0.809083;fill:#888888;fill-opacity:1;stroke:#ffffff;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="path859"
sodipodi:type="arc"
sodipodi:cx="32.47654"
sodipodi:cy="-43.181934"
sodipodi:rx="2.0615652"
sodipodi:ry="2.0901108"
sodipodi:start="0"
sodipodi:end="6.2616827"
sodipodi:arc-type="chord"
d="m 34.538105,-43.181934 a 2.0615652,2.0901108 0 0 1 -2.050483,2.09008 2.0615652,2.0901108 0 0 1 -2.072528,-2.067609 2.0615652,2.0901108 0 0 1 2.0282,-2.11231 2.0615652,2.0901108 0 0 1 2.094334,2.044899 z"
sodipodi:open="true" />
<g
id="g858"
style="opacity:1;fill:#fff00a;fill-opacity:1;stroke:none;stroke-opacity:1"
transform="translate(5.3409804,4.084558)" />
<ellipse
style="fill:#000000;fill-opacity:0.723367;stroke-width:0.069792;stroke-linecap:round;stroke-linejoin:round"
id="path7237"
cx="39.646275"
cy="-22.757227"
rx="1.5637991"
ry="1.6013628" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 22 KiB

19
rsc/launch_vimix.sh Normal file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
# Test if running under wayland
if [ -z "$WAYLAND_DISPLAY" ]; then
# not Wayland, nothing special
vimix "$@"
else
# Wayland: test if there is an nvidia GPU
gpu=$(lspci | grep -i '.* vga .* nvidia .*')
shopt -s nocasematch
if [[ $gpu == *' nvidia '* ]]; then
# with nvidia, request Wayland render offload
printf 'Nvidia GPU present: %s\n' "$gpu"
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia vimix "$@"
else
# otherwise, nothing special
vimix "$@"
fi
fi

View File

@@ -0,0 +1,21 @@
ply
format ascii 1.0
comment Created by Blender 3.6.2 - www.blender.org
element vertex 6
property float x
property float y
property float z
property float nx
property float ny
property float nz
element face 2
property list uchar uint vertex_indices
end_header
-0.022692 -0.057385 0.709939 0.000000 0.000000 1.000000
-0.022692 0.057385 0.709939 0.000000 0.000000 1.000000
-0.080077 -0.000000 0.709939 0.000000 0.000000 1.000000
0.023614 0.057385 0.709939 0.000000 0.000000 1.000000
0.023614 -0.057385 0.709939 0.000000 0.000000 1.000000
0.080999 0.000000 0.709939 0.000000 0.000000 1.000000
3 0 1 2
3 3 4 5

View File

@@ -0,0 +1,375 @@
ply
format ascii 1.0
comment Created by Blender 3.6.2 - www.blender.org
element vertex 181
property float x
property float y
property float z
property float nx
property float ny
property float nz
element face 181
property list uchar uint vertex_indices
end_header
-0.023240 0.055797 0.000000 0.000000 0.000000 1.000000
-0.017343 0.056143 0.000000 0.000000 0.000000 1.000000
-0.018053 0.056143 0.000000 0.000000 0.000000 1.000000
-0.015379 0.056143 0.000000 0.000000 0.000000 1.000000
-0.012413 0.056143 0.000000 0.000000 0.000000 1.000000
-0.008694 0.056143 0.000000 0.000000 0.000000 1.000000
-0.004474 0.056143 0.000000 0.000000 0.000000 1.000000
-0.000004 0.056143 0.000000 0.000000 0.000000 1.000000
0.004467 0.056143 0.000000 0.000000 0.000000 1.000000
0.008687 0.056143 0.000000 0.000000 0.000000 1.000000
0.012405 0.056143 0.000000 0.000000 0.000000 1.000000
0.015372 0.056143 0.000000 0.000000 0.000000 1.000000
0.017336 0.056143 0.000000 0.000000 0.000000 1.000000
0.018046 0.056143 0.000000 0.000000 0.000000 1.000000
0.023232 0.055797 0.000000 0.000000 0.000000 1.000000
-0.028210 0.054786 0.000000 0.000000 0.000000 1.000000
0.028202 0.054786 0.000000 0.000000 0.000000 1.000000
-0.032919 0.053157 0.000000 0.000000 0.000000 1.000000
0.032912 0.053157 0.000000 0.000000 0.000000 1.000000
-0.037323 0.050954 0.000000 0.000000 0.000000 1.000000
0.037315 0.050954 0.000000 0.000000 0.000000 1.000000
-0.041376 0.048221 0.000000 0.000000 0.000000 1.000000
0.041368 0.048221 0.000000 0.000000 0.000000 1.000000
-0.045034 0.045004 0.000000 0.000000 0.000000 1.000000
0.045026 0.045004 0.000000 0.000000 0.000000 1.000000
-0.048252 0.041347 0.000000 0.000000 0.000000 1.000000
0.048244 0.041347 0.000000 0.000000 0.000000 1.000000
-0.050985 0.037295 0.000000 0.000000 0.000000 1.000000
0.050977 0.037295 0.000000 0.000000 0.000000 1.000000
-0.053188 0.032892 0.000000 0.000000 0.000000 1.000000
0.053181 0.032892 0.000000 0.000000 0.000000 1.000000
-0.054818 0.028184 0.000000 0.000000 0.000000 1.000000
0.054810 0.028184 0.000000 0.000000 0.000000 1.000000
-0.055828 0.023215 0.000000 0.000000 0.000000 1.000000
0.055821 0.023215 0.000000 0.000000 0.000000 1.000000
-0.056175 0.018030 0.000000 0.000000 0.000000 1.000000
-0.007559 0.019518 0.000000 0.000000 0.000000 1.000000
0.007552 0.019518 0.000000 0.000000 0.000000 1.000000
0.056167 0.018030 0.000000 0.000000 0.000000 1.000000
-0.009190 0.019409 0.000000 0.000000 0.000000 1.000000
0.009182 0.019409 0.000000 0.000000 0.000000 1.000000
-0.010752 0.019091 0.000000 0.000000 0.000000 1.000000
0.010745 0.019091 0.000000 0.000000 0.000000 1.000000
-0.012232 0.018579 0.000000 0.000000 0.000000 1.000000
0.012225 0.018579 0.000000 0.000000 0.000000 1.000000
-0.013617 0.017887 0.000000 0.000000 0.000000 1.000000
0.013609 0.017887 0.000000 0.000000 0.000000 1.000000
-0.056175 0.017319 0.000000 0.000000 0.000000 1.000000
0.056167 0.017319 0.000000 0.000000 0.000000 1.000000
-0.014891 0.017028 0.000000 0.000000 0.000000 1.000000
0.014883 0.017028 0.000000 0.000000 0.000000 1.000000
0.056167 0.015356 0.000000 0.000000 0.000000 1.000000
-0.056175 0.015356 0.000000 0.000000 0.000000 1.000000
-0.016040 0.016017 0.000000 0.000000 0.000000 1.000000
0.016033 0.016017 0.000000 0.000000 0.000000 1.000000
-0.017052 0.014867 0.000000 0.000000 0.000000 1.000000
0.017044 0.014867 0.000000 0.000000 0.000000 1.000000
0.056167 0.012390 0.000000 0.000000 0.000000 1.000000
-0.056175 0.012390 0.000000 0.000000 0.000000 1.000000
-0.017910 0.013594 0.000000 0.000000 0.000000 1.000000
0.017903 0.013594 0.000000 0.000000 0.000000 1.000000
-0.018603 0.012210 0.000000 0.000000 0.000000 1.000000
0.018595 0.012210 0.000000 0.000000 0.000000 1.000000
0.056167 0.008673 0.000000 0.000000 0.000000 1.000000
-0.056175 0.008673 0.000000 0.000000 0.000000 1.000000
-0.019115 0.010730 0.000000 0.000000 0.000000 1.000000
0.019108 0.010730 0.000000 0.000000 0.000000 1.000000
-0.019433 0.009168 0.000000 0.000000 0.000000 1.000000
0.019425 0.009168 0.000000 0.000000 0.000000 1.000000
-0.019542 0.007538 0.000000 0.000000 0.000000 1.000000
0.019534 0.007538 0.000000 0.000000 0.000000 1.000000
0.056167 0.004453 0.000000 0.000000 0.000000 1.000000
-0.056175 0.004453 0.000000 0.000000 0.000000 1.000000
-0.019542 0.007241 0.000000 0.000000 0.000000 1.000000
0.019534 0.007241 0.000000 0.000000 0.000000 1.000000
-0.019542 0.006419 0.000000 0.000000 0.000000 1.000000
0.019534 0.006419 0.000000 0.000000 0.000000 1.000000
-0.019542 0.005177 0.000000 0.000000 0.000000 1.000000
0.019534 0.005177 0.000000 0.000000 0.000000 1.000000
-0.019542 0.003621 0.000000 0.000000 0.000000 1.000000
0.019534 0.003621 0.000000 0.000000 0.000000 1.000000
0.056167 -0.000016 0.000000 0.000000 0.000000 1.000000
-0.056175 -0.000016 0.000000 0.000000 0.000000 1.000000
-0.019542 0.001855 0.000000 0.000000 0.000000 1.000000
0.019534 0.001855 0.000000 0.000000 0.000000 1.000000
-0.019542 -0.000016 0.000000 0.000000 0.000000 1.000000
0.019534 -0.000016 0.000000 0.000000 0.000000 1.000000
0.056167 -0.004486 0.000000 0.000000 0.000000 1.000000
-0.019542 -0.001887 0.000000 0.000000 0.000000 1.000000
0.019534 -0.001887 0.000000 0.000000 0.000000 1.000000
-0.056175 -0.004486 0.000000 0.000000 0.000000 1.000000
-0.019542 -0.003653 0.000000 0.000000 0.000000 1.000000
0.019534 -0.003653 0.000000 0.000000 0.000000 1.000000
-0.019542 -0.005210 0.000000 0.000000 0.000000 1.000000
0.019534 -0.005210 0.000000 0.000000 0.000000 1.000000
0.056167 -0.008705 0.000000 0.000000 0.000000 1.000000
-0.056175 -0.008705 0.000000 0.000000 0.000000 1.000000
-0.019542 -0.006451 0.000000 0.000000 0.000000 1.000000
0.019534 -0.006451 0.000000 0.000000 0.000000 1.000000
-0.019542 -0.007273 0.000000 0.000000 0.000000 1.000000
0.019534 -0.007273 0.000000 0.000000 0.000000 1.000000
-0.019542 -0.007570 0.000000 0.000000 0.000000 1.000000
0.019534 -0.007570 0.000000 0.000000 0.000000 1.000000
-0.019433 -0.009200 0.000000 0.000000 0.000000 1.000000
0.019425 -0.009200 0.000000 0.000000 0.000000 1.000000
0.056167 -0.012423 0.000000 0.000000 0.000000 1.000000
-0.056175 -0.012423 0.000000 0.000000 0.000000 1.000000
-0.019115 -0.010762 0.000000 0.000000 0.000000 1.000000
0.019108 -0.010762 0.000000 0.000000 0.000000 1.000000
-0.018603 -0.012242 0.000000 0.000000 0.000000 1.000000
0.018595 -0.012242 0.000000 0.000000 0.000000 1.000000
-0.017910 -0.013626 0.000000 0.000000 0.000000 1.000000
0.017903 -0.013626 0.000000 0.000000 0.000000 1.000000
0.056167 -0.015389 0.000000 0.000000 0.000000 1.000000
-0.056175 -0.015389 0.000000 0.000000 0.000000 1.000000
-0.017051 -0.014900 0.000000 0.000000 0.000000 1.000000
0.017044 -0.014900 0.000000 0.000000 0.000000 1.000000
-0.016040 -0.016049 0.000000 0.000000 0.000000 1.000000
0.016033 -0.016049 0.000000 0.000000 0.000000 1.000000
0.056167 -0.017352 0.000000 0.000000 0.000000 1.000000
-0.056175 -0.017352 0.000000 0.000000 0.000000 1.000000
-0.014891 -0.017060 0.000000 0.000000 0.000000 1.000000
0.014883 -0.017060 0.000000 0.000000 0.000000 1.000000
-0.013617 -0.017919 0.000000 0.000000 0.000000 1.000000
0.013609 -0.017919 0.000000 0.000000 0.000000 1.000000
0.056167 -0.018062 0.000000 0.000000 0.000000 1.000000
-0.056175 -0.018062 0.000000 0.000000 0.000000 1.000000
-0.012232 -0.018611 0.000000 0.000000 0.000000 1.000000
0.012225 -0.018611 0.000000 0.000000 0.000000 1.000000
-0.055828 -0.023247 0.000000 0.000000 0.000000 1.000000
0.055821 -0.023247 0.000000 0.000000 0.000000 1.000000
-0.010752 -0.019123 0.000000 0.000000 0.000000 1.000000
0.010745 -0.019123 0.000000 0.000000 0.000000 1.000000
-0.009190 -0.019441 0.000000 0.000000 0.000000 1.000000
0.009182 -0.019441 0.000000 0.000000 0.000000 1.000000
-0.007559 -0.019550 0.000000 0.000000 0.000000 1.000000
0.007552 -0.019550 0.000000 0.000000 0.000000 1.000000
-0.007262 -0.019550 0.000000 0.000000 0.000000 1.000000
-0.006440 -0.019550 0.000000 0.000000 0.000000 1.000000
-0.005198 -0.019550 0.000000 0.000000 0.000000 1.000000
-0.003642 -0.019550 0.000000 0.000000 0.000000 1.000000
-0.001875 -0.019550 0.000000 0.000000 0.000000 1.000000
-0.000004 -0.019550 0.000000 0.000000 0.000000 1.000000
0.001868 -0.019550 0.000000 0.000000 0.000000 1.000000
0.003634 -0.019550 0.000000 0.000000 0.000000 1.000000
0.005191 -0.019550 0.000000 0.000000 0.000000 1.000000
0.006432 -0.019550 0.000000 0.000000 0.000000 1.000000
0.007255 -0.019550 0.000000 0.000000 0.000000 1.000000
-0.054818 -0.028216 0.000000 0.000000 0.000000 1.000000
0.054810 -0.028216 0.000000 0.000000 0.000000 1.000000
-0.053188 -0.032925 0.000000 0.000000 0.000000 1.000000
0.053181 -0.032925 0.000000 0.000000 0.000000 1.000000
-0.050985 -0.037327 0.000000 0.000000 0.000000 1.000000
0.050977 -0.037327 0.000000 0.000000 0.000000 1.000000
-0.048252 -0.041380 0.000000 0.000000 0.000000 1.000000
0.048244 -0.041380 0.000000 0.000000 0.000000 1.000000
-0.045034 -0.045037 0.000000 0.000000 0.000000 1.000000
0.045026 -0.045037 0.000000 0.000000 0.000000 1.000000
-0.041376 -0.048254 0.000000 0.000000 0.000000 1.000000
0.041368 -0.048254 0.000000 0.000000 0.000000 1.000000
-0.037323 -0.050986 0.000000 0.000000 0.000000 1.000000
0.037315 -0.050986 0.000000 0.000000 0.000000 1.000000
-0.032919 -0.053190 0.000000 0.000000 0.000000 1.000000
0.032912 -0.053190 0.000000 0.000000 0.000000 1.000000
-0.028210 -0.054819 0.000000 0.000000 0.000000 1.000000
0.028202 -0.054819 0.000000 0.000000 0.000000 1.000000
-0.023240 -0.055829 0.000000 0.000000 0.000000 1.000000
0.023232 -0.055829 0.000000 0.000000 0.000000 1.000000
-0.018053 -0.056176 0.000000 0.000000 0.000000 1.000000
0.018046 -0.056176 0.000000 0.000000 0.000000 1.000000
-0.017343 -0.056176 0.000000 -0.294992 -0.955500 0.000000
-0.015379 -0.056176 0.000000 -0.264056 -0.964507 0.000000
-0.012413 -0.056176 0.000000 -0.215761 -0.976446 0.000000
-0.008694 -0.056176 0.000000 -0.152950 -0.988234 0.000000
-0.004474 -0.056176 0.000000 -0.079399 -0.996843 0.000000
-0.000004 -0.056176 0.000000 -0.000068 -1.000000 0.000000
0.004467 -0.056176 0.000000 0.079265 -0.996854 0.000000
0.008687 -0.056176 0.000000 0.152819 -0.988254 0.000000
0.012405 -0.056176 0.000000 0.215635 -0.976474 0.000000
0.015372 -0.056176 0.000000 0.263935 -0.964540 0.000000
0.017336 -0.056176 0.000000 0.294874 -0.955536 0.000000
3 0 1 2
3 0 3 1
3 0 4 3
3 0 5 4
3 0 6 5
3 0 7 6
3 0 8 7
3 0 9 8
3 0 10 9
3 0 11 10
3 0 12 11
3 0 13 12
3 0 14 13
3 15 14 0
3 15 16 14
3 17 16 15
3 17 18 16
3 19 18 17
3 19 20 18
3 21 20 19
3 21 22 20
3 23 22 21
3 23 24 22
3 25 24 23
3 25 26 24
3 27 26 25
3 27 28 26
3 29 28 27
3 29 30 28
3 31 30 29
3 31 32 30
3 33 32 31
3 33 34 32
3 35 34 33
3 35 36 34
3 36 37 34
3 37 38 34
3 35 39 36
3 40 38 37
3 35 41 39
3 42 38 40
3 35 43 41
3 44 38 42
3 35 45 43
3 46 38 44
3 47 45 35
3 46 48 38
3 47 49 45
3 50 48 46
3 50 51 48
3 52 49 47
3 52 53 49
3 54 51 50
3 52 55 53
3 56 51 54
3 56 57 51
3 58 55 52
3 58 59 55
3 60 57 56
3 58 61 59
3 62 57 60
3 62 63 57
3 64 61 58
3 64 65 61
3 66 63 62
3 64 67 65
3 68 63 66
3 64 69 67
3 70 63 68
3 70 71 63
3 72 69 64
3 72 73 69
3 74 71 70
3 72 75 73
3 76 71 74
3 72 77 75
3 78 71 76
3 72 79 77
3 80 71 78
3 80 81 71
3 82 79 72
3 82 83 79
3 84 81 80
3 82 85 83
3 86 81 84
3 86 87 81
3 82 88 85
3 89 87 86
3 90 88 82
3 90 91 88
3 92 87 89
3 90 93 91
3 94 87 92
3 94 95 87
3 96 93 90
3 96 97 93
3 98 95 94
3 96 99 97
3 100 95 98
3 96 101 99
3 102 95 100
3 96 103 101
3 104 95 102
3 104 105 95
3 106 103 96
3 106 107 103
3 108 105 104
3 106 109 107
3 110 105 108
3 106 111 109
3 112 105 110
3 112 113 105
3 114 111 106
3 114 115 111
3 116 113 112
3 114 117 115
3 118 113 116
3 118 119 113
3 120 117 114
3 120 121 117
3 122 119 118
3 120 123 121
3 124 119 122
3 124 125 119
3 126 123 120
3 126 127 123
3 128 125 124
3 129 127 126
3 128 130 125
3 129 131 127
3 132 130 128
3 129 133 131
3 134 130 132
3 129 135 133
3 136 130 134
3 129 137 135
3 129 138 137
3 129 139 138
3 129 140 139
3 129 141 140
3 129 142 141
3 129 143 142
3 129 144 143
3 129 145 144
3 129 146 145
3 129 147 146
3 129 136 147
3 129 130 136
3 148 130 129
3 148 149 130
3 150 149 148
3 150 151 149
3 152 151 150
3 152 153 151
3 154 153 152
3 154 155 153
3 156 155 154
3 156 157 155
3 158 157 156
3 158 159 157
3 160 159 158
3 160 161 159
3 162 161 160
3 162 163 161
3 164 163 162
3 164 165 163
3 166 165 164
3 166 167 165
3 168 167 166
3 168 169 167
3 170 169 168
3 171 169 170
3 172 169 171
3 173 169 172
3 174 169 173
3 175 169 174
3 176 169 175
3 177 169 176
3 178 169 177
3 179 169 178
3 180 169 179

View File

@@ -0,0 +1,836 @@
ply
format ascii 1.0
comment Created by Blender 3.6.2 - www.blender.org
element vertex 408
property float x
property float y
property float z
property float s
property float t
element face 416
property list uchar uint vertex_indices
end_header
-0.061080 0.071828 0.000000 0.002457 0.000000
-0.059392 0.071909 0.000000 0.705160 0.000000
-0.059904 0.071909 0.000000 0.000000 0.000000
-0.057977 0.071909 0.000000 0.702703 0.000000
-0.055840 0.071909 0.000000 0.700246 0.000000
-0.053161 0.071909 0.000000 0.697789 0.000000
-0.050120 0.071909 0.000000 0.695332 0.000000
-0.046899 0.071909 0.000000 0.692875 0.000000
-0.043678 0.071909 0.000000 0.690418 0.000000
-0.040638 0.071909 0.000000 0.687961 0.000000
-0.037958 0.071909 0.000000 0.685504 0.000000
-0.035821 0.071909 0.000000 0.683047 0.000000
-0.034406 0.071909 0.000000 0.680590 0.000000
-0.033895 0.071909 0.000000 0.678133 0.000000
-0.032718 0.071828 0.000000 0.675676 0.000000
0.034287 0.071828 0.000000 0.592138 0.000000
0.035975 0.071909 0.000000 0.587224 0.000000
0.035463 0.071909 0.000000 0.589681 0.000000
0.037389 0.071909 0.000000 0.584767 0.000000
0.039527 0.071909 0.000000 0.582310 0.000000
0.042206 0.071909 0.000000 0.579853 0.000000
0.045246 0.071909 0.000000 0.577396 0.000000
0.048467 0.071909 0.000000 0.574939 0.000000
0.051688 0.071909 0.000000 0.572482 0.000000
0.054729 0.071909 0.000000 0.570025 0.000000
0.057408 0.071909 0.000000 0.567568 0.000000
0.059545 0.071909 0.000000 0.565111 0.000000
0.060960 0.071909 0.000000 0.562654 0.000000
0.061472 0.071909 0.000000 0.560197 0.000000
0.062648 0.071828 0.000000 0.557740 0.000000
-0.062208 0.071595 0.000000 0.004914 0.000000
0.033158 0.071595 0.000000 0.594595 0.000000
-0.031590 0.071595 0.000000 0.673219 0.000000
0.063776 0.071595 0.000000 0.555283 0.000000
-0.063278 0.071219 0.000000 0.007371 0.000000
0.032089 0.071219 0.000000 0.597052 0.000000
-0.030520 0.071219 0.000000 0.670762 0.000000
0.064846 0.071219 0.000000 0.552826 0.000000
-0.064279 0.070711 0.000000 0.009828 0.000000
0.031087 0.070711 0.000000 0.599509 0.000000
-0.029519 0.070711 0.000000 0.668305 0.000000
0.065847 0.070711 0.000000 0.550369 0.000000
-0.065201 0.070081 0.000000 0.012285 0.000000
0.030165 0.070081 0.000000 0.601966 0.000000
-0.028597 0.070081 0.000000 0.665848 0.000000
0.066769 0.070081 0.000000 0.547912 0.000000
-0.066034 0.069339 0.000000 0.014742 0.000000
0.029333 0.069339 0.000000 0.604423 0.000000
-0.027765 0.069339 0.000000 0.663391 0.000000
0.067602 0.069339 0.000000 0.545455 0.000000
-0.066767 0.068497 0.000000 0.017199 0.000000
0.028600 0.068497 0.000000 0.606880 0.000000
-0.027032 0.068497 0.000000 0.660934 0.000000
0.068335 0.068497 0.000000 0.542998 0.000000
-0.067389 0.067564 0.000000 0.019656 0.000000
0.027977 0.067564 0.000000 0.609337 0.000000
-0.026409 0.067564 0.000000 0.658477 0.000000
0.068958 0.067564 0.000000 0.540541 0.000000
-0.067892 0.066551 0.000000 0.022113 0.000000
0.027475 0.066551 0.000000 0.611794 0.000000
-0.025906 0.066551 0.000000 0.656020 0.000000
0.069460 0.066551 0.000000 0.538084 0.000000
-0.068263 0.065469 0.000000 0.024570 0.000000
0.027103 0.065469 0.000000 0.614251 0.000000
-0.025535 0.065469 0.000000 0.653563 0.000000
0.069832 0.065469 0.000000 0.535627 0.000000
-0.068494 0.064327 0.000000 0.027027 0.000000
0.026872 0.064327 0.000000 0.616708 0.000000
-0.025304 0.064327 0.000000 0.651106 0.000000
0.070062 0.064327 0.000000 0.533170 0.000000
-0.068573 0.063137 0.000000 0.029484 0.000000
0.026793 0.063137 0.000000 0.619165 0.000000
-0.025225 0.063137 0.000000 0.648649 0.000000
0.070141 0.063137 0.000000 0.530713 0.000000
-0.068573 0.062620 0.000000 0.031941 0.000000
-0.024201 0.063137 0.000000 0.646192 0.000000
-0.021372 0.063137 0.000000 0.643735 0.000000
-0.017097 0.063137 0.000000 0.641278 0.000000
-0.011739 0.063137 0.000000 0.638821 0.000000
-0.005658 0.063137 0.000000 0.636364 0.000000
0.000784 0.063137 0.000000 0.633907 0.000000
0.007226 0.063137 0.000000 0.631450 0.000000
0.013307 0.063137 0.000000 0.628993 0.000000
0.018665 0.063137 0.000000 0.626536 0.000000
0.022940 0.063137 0.000000 0.624079 0.000000
0.025770 0.063137 0.000000 0.621622 0.000000
0.070141 0.062620 0.000000 0.528256 0.000000
0.070141 0.061188 0.000000 0.525798 0.000000
-0.068573 0.061188 0.000000 0.034398 0.000000
0.059807 0.060915 0.000000 0.719902 0.000000
0.070141 0.059026 0.000000 0.523342 0.000000
-0.068573 0.059026 0.000000 0.036855 0.000000
-0.057876 0.060915 0.000000 0.707617 0.000000
-0.057876 0.039359 0.000000 0.714988 0.000000
-0.036289 0.060915 0.000000 0.710074 0.000000
-0.036289 0.039359 0.000000 0.712531 0.000000
-0.025225 0.045595 0.000000 0.727273 0.000000
0.038220 0.060915 0.000000 0.717445 0.000000
0.026793 0.045595 0.000000 0.729730 0.000000
0.038220 0.039359 0.000000 0.724816 0.000000
0.059807 0.039359 0.000000 0.722359 0.000000
0.070141 0.056315 0.000000 0.520885 0.000000
-0.068573 0.056315 0.000000 0.039312 0.000000
0.070141 0.053239 0.000000 0.518427 0.000000
-0.068573 0.053239 0.000000 0.041769 0.000000
0.070141 0.049981 0.000000 0.515971 0.000000
-0.068573 0.049981 0.000000 0.044226 0.000000
0.070141 0.046722 0.000000 0.513514 0.000000
-0.068573 0.046722 0.000000 0.046683 0.000000
0.070141 0.043646 0.000000 0.511056 0.000000
-0.068573 0.043646 0.000000 0.049140 0.000000
-0.025225 0.045422 0.000000 0.980344 0.000000
0.026793 0.036824 0.000000 0.732187 0.000000
-0.025225 0.044945 0.000000 0.977887 0.000000
-0.025225 0.044225 0.000000 0.975430 0.000000
-0.025225 0.043321 0.000000 0.972973 0.000000
0.070141 0.040935 0.000000 0.508600 0.000000
-0.068573 0.040935 0.000000 0.051597 0.000000
-0.025225 0.042296 0.000000 0.970516 0.000000
-0.025225 0.041209 0.000000 0.968059 0.000000
-0.025225 0.040123 0.000000 0.965602 0.000000
0.070141 0.038773 0.000000 0.506142 0.000000
-0.068573 0.038773 0.000000 0.054054 0.000000
-0.025225 0.039098 0.000000 0.963145 0.000000
-0.025225 0.038194 0.000000 0.960688 0.000000
0.070141 0.037342 0.000000 0.503685 0.000000
-0.068573 0.037342 0.000000 0.056511 0.000000
-0.025225 0.037474 0.000000 0.958231 0.000000
-0.025225 0.036996 0.000000 0.955774 0.000000
0.070141 0.036824 0.000000 0.501229 0.000000
-0.068573 0.036824 0.000000 0.058968 0.000000
-0.025225 0.036824 0.000000 0.953317 0.000000
-0.068494 0.035634 0.000000 0.061425 0.000000
-0.025304 0.035634 0.000000 0.950860 0.000000
0.026872 0.035634 0.000000 0.734644 0.000000
0.070062 0.035634 0.000000 0.498771 0.000000
-0.025535 0.034492 0.000000 0.948403 0.000000
0.069832 0.034492 0.000000 0.496314 0.000000
-0.068264 0.034492 0.000000 0.063882 0.000000
0.027103 0.034492 0.000000 0.737101 0.000000
-0.025906 0.033410 0.000000 0.945946 0.000000
0.069460 0.033410 0.000000 0.493858 0.000000
-0.067892 0.033410 0.000000 0.066339 0.000000
0.027475 0.033410 0.000000 0.739558 0.000000
-0.026409 0.032397 0.000000 0.943489 0.000000
0.068958 0.032397 0.000000 0.491400 0.000000
-0.067389 0.032397 0.000000 0.068796 0.000000
0.027977 0.032397 0.000000 0.742015 0.000000
-0.027032 0.031464 0.000000 0.941032 0.000000
0.068335 0.031464 0.000000 0.488943 0.000000
-0.066767 0.031464 0.000000 0.071253 0.000000
0.028600 0.031464 0.000000 0.744472 0.000000
-0.027765 0.030622 0.000000 0.938575 0.000000
0.067602 0.030622 0.000000 0.486486 0.000000
-0.066034 0.030622 0.000000 0.073710 0.000000
0.029333 0.030622 0.000000 0.746929 0.000000
-0.028597 0.029881 0.000000 0.936118 0.000000
0.066769 0.029881 0.000000 0.484029 0.000000
-0.065201 0.029881 0.000000 0.076167 0.000000
0.030165 0.029881 0.000000 0.749386 0.000000
-0.029519 0.029250 0.000000 0.933661 0.000000
0.065847 0.029250 0.000000 0.481572 0.000000
-0.064279 0.029250 0.000000 0.078624 0.000000
0.031087 0.029250 0.000000 0.751843 0.000000
-0.030520 0.028742 0.000000 0.931204 0.000000
0.064846 0.028742 0.000000 0.479115 0.000000
-0.063278 0.028742 0.000000 0.081081 0.000000
0.032089 0.028742 0.000000 0.754300 0.000000
-0.031590 0.028366 0.000000 0.928747 0.000000
0.063776 0.028366 0.000000 0.476658 0.000000
-0.062208 0.028366 0.000000 0.083538 0.000000
0.033158 0.028366 0.000000 0.756757 0.000000
-0.032718 0.028133 0.000000 0.926290 0.000000
0.062648 0.028133 0.000000 0.474201 0.000000
-0.061080 0.028133 0.000000 0.085995 0.000000
0.034287 0.028133 0.000000 0.759214 0.000000
-0.033895 0.028053 0.000000 0.923833 0.000000
0.061472 0.028053 0.000000 0.471744 0.000000
-0.059904 0.028053 0.000000 0.088452 0.000000
0.035463 0.028053 0.000000 0.761671 0.000000
-0.059904 0.027017 0.000000 0.090909 0.000000
-0.042564 0.028053 0.000000 0.921376 0.000000
-0.042564 -0.024574 0.000000 0.918919 0.000000
0.035633 0.028053 0.000000 0.764128 0.000000
0.036105 0.028053 0.000000 0.766585 0.000000
0.036817 0.028053 0.000000 0.769042 0.000000
0.037710 0.028053 0.000000 0.771499 0.000000
0.038724 0.028053 0.000000 0.773956 0.000000
0.039798 0.028053 0.000000 0.776413 0.000000
0.040871 0.028053 0.000000 0.778870 0.000000
0.041885 0.028053 0.000000 0.781327 0.000000
0.042778 0.028053 0.000000 0.783784 0.000000
0.043490 0.028053 0.000000 0.786241 0.000000
0.043962 0.028053 0.000000 0.788698 0.000000
0.044132 0.028053 0.000000 0.791155 0.000000
0.044132 -0.024574 0.000000 0.793612 0.000000
0.061472 0.027017 0.000000 0.469287 0.000000
0.061472 0.024154 0.000000 0.466830 0.000000
-0.059904 0.024154 0.000000 0.093366 0.000000
0.061472 0.019830 0.000000 0.464373 0.000000
-0.059904 0.019830 0.000000 0.095823 0.000000
0.061472 0.014409 0.000000 0.461916 0.000000
-0.059904 0.014409 0.000000 0.098280 0.000000
0.061472 0.008257 0.000000 0.459459 0.000000
-0.059904 0.008257 0.000000 0.100737 0.000000
0.061472 0.001739 0.000000 0.457002 0.000000
-0.059904 0.001739 0.000000 0.103194 0.000000
0.061472 -0.004778 0.000000 0.454545 0.000000
-0.059904 -0.004778 0.000000 0.105651 0.000000
0.061472 -0.010930 0.000000 0.452088 0.000000
-0.059904 -0.010930 0.000000 0.108108 0.000000
0.061472 -0.016351 0.000000 0.449631 0.000000
-0.059904 -0.016351 0.000000 0.110565 0.000000
0.061472 -0.020676 0.000000 0.447174 0.000000
-0.059904 -0.020676 0.000000 0.113022 0.000000
0.061472 -0.023539 0.000000 0.444717 0.000000
-0.059904 -0.023539 0.000000 0.115479 0.000000
0.061472 -0.024574 0.000000 0.442260 0.000000
-0.059904 -0.024574 0.000000 0.117936 0.000000
-0.061080 -0.024654 0.000000 0.120393 0.000000
-0.042394 -0.024574 0.000000 0.916462 0.000000
-0.041922 -0.024574 0.000000 0.914005 0.000000
-0.041210 -0.024574 0.000000 0.911548 0.000000
-0.040317 -0.024574 0.000000 0.909091 0.000000
-0.039303 -0.024574 0.000000 0.906634 0.000000
-0.038229 -0.024574 0.000000 0.904177 0.000000
-0.037156 -0.024574 0.000000 0.901720 0.000000
-0.036142 -0.024574 0.000000 0.899263 0.000000
-0.035249 -0.024574 0.000000 0.896806 0.000000
-0.034537 -0.024574 0.000000 0.894349 0.000000
-0.034065 -0.024574 0.000000 0.891892 0.000000
-0.033895 -0.024574 0.000000 0.889435 0.000000
-0.032718 -0.024654 0.000000 0.886978 0.000000
0.034287 -0.024654 0.000000 0.798526 0.000000
0.035463 -0.024574 0.000000 0.796069 0.000000
0.062648 -0.024654 0.000000 0.439803 0.000000
-0.031590 -0.024888 0.000000 0.884521 0.000000
0.063776 -0.024888 0.000000 0.437346 0.000000
-0.062208 -0.024888 0.000000 0.122850 0.000000
0.033158 -0.024888 0.000000 0.800983 0.000000
-0.030520 -0.025264 0.000000 0.882064 0.000000
0.064846 -0.025264 0.000000 0.434889 0.000000
-0.063278 -0.025264 0.000000 0.125307 0.000000
0.032089 -0.025264 0.000000 0.803440 0.000000
-0.029519 -0.025772 0.000000 0.879607 0.000000
0.065847 -0.025772 0.000000 0.432432 0.000000
-0.064279 -0.025772 0.000000 0.127764 0.000000
0.031087 -0.025772 0.000000 0.805897 0.000000
-0.028597 -0.026402 0.000000 0.877150 0.000000
0.066769 -0.026402 0.000000 0.429975 0.000000
-0.065201 -0.026402 0.000000 0.130221 0.000000
0.030165 -0.026402 0.000000 0.808354 0.000000
-0.027765 -0.027144 0.000000 0.874693 0.000000
0.067602 -0.027144 0.000000 0.427518 0.000000
-0.066034 -0.027144 0.000000 0.132678 0.000000
0.029333 -0.027144 0.000000 0.810811 0.000000
-0.027032 -0.027986 0.000000 0.872236 0.000000
0.068335 -0.027986 0.000000 0.425061 0.000000
-0.066767 -0.027986 0.000000 0.135135 0.000000
0.028600 -0.027986 0.000000 0.813268 0.000000
-0.067389 -0.028919 0.000000 0.137592 0.000000
-0.026409 -0.028919 0.000000 0.869779 0.000000
0.027977 -0.028919 0.000000 0.815725 0.000000
0.068958 -0.028919 0.000000 0.422604 0.000000
-0.067892 -0.029932 0.000000 0.140049 0.000000
-0.025906 -0.029932 0.000000 0.867322 0.000000
0.027475 -0.029932 0.000000 0.818182 0.000000
0.069460 -0.029932 0.000000 0.420147 0.000000
-0.068263 -0.031014 0.000000 0.142506 0.000000
-0.025535 -0.031014 0.000000 0.864865 0.000000
0.027103 -0.031014 0.000000 0.820639 0.000000
0.069832 -0.031014 0.000000 0.417690 0.000000
-0.068494 -0.032156 0.000000 0.144963 0.000000
-0.025304 -0.032156 0.000000 0.862408 0.000000
0.026872 -0.032156 0.000000 0.823096 0.000000
0.070062 -0.032156 0.000000 0.415233 0.000000
-0.068573 -0.033346 0.000000 0.147420 0.000000
-0.025225 -0.033346 0.000000 0.859951 0.000000
0.026793 -0.033346 0.000000 0.825553 0.000000
0.070141 -0.033346 0.000000 0.412776 0.000000
-0.068573 -0.033863 0.000000 0.149877 0.000000
-0.036289 -0.036815 0.000000 0.985258 0.000000
-0.025225 -0.042117 0.000000 0.857494 0.000000
0.026793 -0.033518 0.000000 0.828010 0.000000
0.070141 -0.033863 0.000000 0.410319 0.000000
0.026793 -0.033995 0.000000 0.830467 0.000000
0.070141 -0.035295 0.000000 0.407862 0.000000
-0.068573 -0.035295 0.000000 0.152334 0.000000
0.026793 -0.034716 0.000000 0.832924 0.000000
0.026793 -0.035620 0.000000 0.835381 0.000000
0.059807 -0.036815 0.000000 0.995086 0.000000
0.070141 -0.037457 0.000000 0.405405 0.000000
-0.068573 -0.037457 0.000000 0.154791 0.000000
-0.057876 -0.036815 0.000000 0.982801 0.000000
0.026793 -0.036645 0.000000 0.837838 0.000000
0.026793 -0.037731 0.000000 0.840295 0.000000
0.038220 -0.036815 0.000000 0.992629 0.000000
-0.057876 -0.058370 0.000000 0.990172 0.000000
-0.036289 -0.058370 0.000000 0.987715 0.000000
0.038220 -0.058370 0.000000 1.000000 0.000000
0.059807 -0.058370 0.000000 0.997543 0.000000
0.070141 -0.040168 0.000000 0.402948 0.000000
-0.068573 -0.040168 0.000000 0.157248 0.000000
0.026793 -0.038817 0.000000 0.842752 0.000000
0.026793 -0.039843 0.000000 0.845209 0.000000
0.026793 -0.040746 0.000000 0.847666 0.000000
0.070141 -0.043244 0.000000 0.400491 0.000000
-0.068573 -0.043244 0.000000 0.159705 0.000000
0.026793 -0.041467 0.000000 0.850123 0.000000
0.026793 -0.041944 0.000000 0.852580 0.000000
0.026793 -0.042117 0.000000 0.855037 0.000000
0.070141 -0.046502 0.000000 0.398034 0.000000
-0.068573 -0.046502 0.000000 0.162162 0.000000
0.070141 -0.049761 0.000000 0.395577 0.000000
-0.068573 -0.049761 0.000000 0.164619 0.000000
0.070141 -0.052837 0.000000 0.393120 0.000000
-0.068573 -0.052837 0.000000 0.167076 0.000000
0.070141 -0.055548 0.000000 0.390663 0.000000
-0.068573 -0.055548 0.000000 0.169533 0.000000
0.070141 -0.057710 0.000000 0.388206 0.000000
-0.068573 -0.057710 0.000000 0.171990 0.000000
0.070141 -0.059141 0.000000 0.385749 0.000000
-0.068573 -0.059141 0.000000 0.174447 0.000000
-0.068573 -0.059659 0.000000 0.176904 0.000000
0.070141 -0.059659 0.000000 0.383292 0.000000
-0.068494 -0.060849 0.000000 0.179361 0.000000
-0.025225 -0.059659 0.000000 0.265356 0.000000
-0.025304 -0.060849 0.000000 0.262899 0.000000
-0.024201 -0.059659 0.000000 0.267813 0.000000
-0.021372 -0.059659 0.000000 0.270270 0.000000
-0.017097 -0.059659 0.000000 0.272727 0.000000
-0.011739 -0.059659 0.000000 0.275184 0.000000
-0.005658 -0.059659 0.000000 0.277641 0.000000
0.000784 -0.059659 0.000000 0.280098 0.000000
0.007226 -0.059659 0.000000 0.282555 0.000000
0.013307 -0.059659 0.000000 0.285012 0.000000
0.018665 -0.059659 0.000000 0.287469 0.000000
0.022940 -0.059659 0.000000 0.289926 0.000000
0.025770 -0.059659 0.000000 0.292383 0.000000
0.026793 -0.059659 0.000000 0.294840 0.000000
0.026872 -0.060849 0.000000 0.297297 0.000000
0.070062 -0.060849 0.000000 0.380835 0.000000
-0.068264 -0.061991 0.000000 0.181818 0.000000
0.027103 -0.061991 0.000000 0.299754 0.000000
-0.025535 -0.061991 0.000000 0.260442 0.000000
0.069832 -0.061991 0.000000 0.378378 0.000000
-0.067892 -0.063073 0.000000 0.184275 0.000000
0.027475 -0.063073 0.000000 0.302211 0.000000
-0.025906 -0.063073 0.000000 0.257985 0.000000
0.069460 -0.063073 0.000000 0.375921 0.000000
-0.067389 -0.064086 0.000000 0.186732 0.000000
0.027977 -0.064086 0.000000 0.304668 0.000000
-0.026409 -0.064086 0.000000 0.255528 0.000000
0.068958 -0.064086 0.000000 0.373464 0.000000
-0.066767 -0.065019 0.000000 0.189189 0.000000
0.028600 -0.065019 0.000000 0.307125 0.000000
-0.027032 -0.065019 0.000000 0.253071 0.000000
0.068335 -0.065019 0.000000 0.371007 0.000000
-0.066034 -0.065861 0.000000 0.191646 0.000000
0.029333 -0.065861 0.000000 0.309582 0.000000
-0.027765 -0.065861 0.000000 0.250614 0.000000
0.067602 -0.065861 0.000000 0.368550 0.000000
-0.065201 -0.066602 0.000000 0.194103 0.000000
0.030165 -0.066602 0.000000 0.312039 0.000000
-0.028597 -0.066602 0.000000 0.248157 0.000000
0.066769 -0.066602 0.000000 0.366093 0.000000
-0.064279 -0.067233 0.000000 0.196560 0.000000
0.031087 -0.067233 0.000000 0.314496 0.000000
-0.029519 -0.067233 0.000000 0.245700 0.000000
0.065847 -0.067233 0.000000 0.363636 0.000000
-0.063278 -0.067741 0.000000 0.199017 0.000000
0.032089 -0.067741 0.000000 0.316953 0.000000
-0.030520 -0.067741 0.000000 0.243243 0.000000
0.064846 -0.067741 0.000000 0.361179 0.000000
-0.062208 -0.068117 0.000000 0.201474 0.000000
0.033158 -0.068117 0.000000 0.319410 0.000000
-0.031590 -0.068117 0.000000 0.240786 0.000000
0.063776 -0.068117 0.000000 0.358722 0.000000
-0.061080 -0.068350 0.000000 0.203931 0.000000
0.034287 -0.068350 0.000000 0.321867 0.000000
-0.032718 -0.068350 0.000000 0.238329 0.000000
0.062648 -0.068350 0.000000 0.356265 0.000000
-0.059904 -0.068430 0.000000 0.206388 0.000000
0.035463 -0.068430 0.000000 0.324324 0.000000
-0.033895 -0.068430 0.000000 0.235872 0.000000
0.061472 -0.068430 0.000000 0.353808 0.000000
-0.059392 -0.068430 0.000000 0.208845 0.000000
-0.057977 -0.068430 0.000000 0.211302 0.000000
-0.055840 -0.068430 0.000000 0.213759 0.000000
-0.053161 -0.068430 0.000000 0.216216 0.000000
-0.050120 -0.068430 0.000000 0.218673 0.000000
-0.046899 -0.068430 0.000000 0.221130 0.000000
-0.043678 -0.068430 0.000000 0.223587 0.000000
-0.040638 -0.068430 0.000000 0.226044 0.000000
-0.037958 -0.068430 0.000000 0.228501 0.000000
-0.035821 -0.068430 0.000000 0.230958 0.000000
-0.034406 -0.068430 0.000000 0.233415 0.000000
0.035975 -0.068430 0.000000 0.326781 0.000000
0.037389 -0.068430 0.000000 0.329238 0.000000
0.039527 -0.068430 0.000000 0.331695 0.000000
0.042206 -0.068430 0.000000 0.334152 0.000000
0.045246 -0.068430 0.000000 0.336609 0.000000
0.048467 -0.068430 0.000000 0.339066 0.000000
0.051688 -0.068430 0.000000 0.341523 0.000000
0.054729 -0.068430 0.000000 0.343980 0.000000
0.057408 -0.068430 0.000000 0.346437 0.000000
0.059545 -0.068430 0.000000 0.348894 0.000000
0.060960 -0.068430 0.000000 0.351351 0.000000
3 0 1 2
3 0 3 1
3 0 4 3
3 0 5 4
3 0 6 5
3 0 7 6
3 0 8 7
3 0 9 8
3 0 10 9
3 0 11 10
3 0 12 11
3 0 13 12
3 0 14 13
3 15 16 17
3 15 18 16
3 15 19 18
3 15 20 19
3 15 21 20
3 15 22 21
3 15 23 22
3 15 24 23
3 15 25 24
3 15 26 25
3 15 27 26
3 15 28 27
3 15 29 28
3 30 14 0
3 31 29 15
3 30 32 14
3 31 33 29
3 34 32 30
3 35 33 31
3 34 36 32
3 35 37 33
3 38 36 34
3 39 37 35
3 38 40 36
3 39 41 37
3 42 40 38
3 43 41 39
3 42 44 40
3 43 45 41
3 46 44 42
3 47 45 43
3 46 48 44
3 47 49 45
3 50 48 46
3 51 49 47
3 50 52 48
3 51 53 49
3 54 52 50
3 55 53 51
3 54 56 52
3 55 57 53
3 58 56 54
3 59 57 55
3 58 60 56
3 59 61 57
3 62 60 58
3 63 61 59
3 62 64 60
3 63 65 61
3 66 64 62
3 67 65 63
3 66 68 64
3 67 69 65
3 70 68 66
3 71 69 67
3 70 72 68
3 71 73 69
3 74 72 70
3 74 75 72
3 74 76 75
3 74 77 76
3 74 78 77
3 74 79 78
3 74 80 79
3 74 81 80
3 74 82 81
3 74 83 82
3 74 84 83
3 74 85 84
3 74 71 85
3 74 73 71
3 74 86 73
3 74 87 86
3 88 87 74
3 88 89 87
3 89 90 87
3 91 92 88
3 92 89 88
3 91 93 92
3 94 89 92
3 95 96 94
3 96 97 94
3 97 89 94
3 96 98 97
3 98 99 97
3 100 90 89
3 100 101 90
3 102 93 91
3 100 103 101
3 104 93 102
3 100 105 103
3 106 93 104
3 100 107 105
3 108 93 106
3 100 109 107
3 110 93 108
3 95 111 96
3 112 99 98
3 95 113 111
3 95 114 113
3 95 115 114
3 100 116 109
3 117 93 110
3 95 118 115
3 95 119 118
3 95 120 119
3 100 121 116
3 122 93 117
3 95 123 120
3 122 95 93
3 122 123 95
3 112 100 99
3 112 121 100
3 122 124 123
3 112 125 121
3 126 124 122
3 126 127 124
3 126 128 127
3 112 129 125
3 130 128 126
3 130 131 128
3 132 131 130
3 132 133 131
3 134 129 112
3 134 135 129
3 132 136 133
3 134 137 135
3 138 136 132
3 139 137 134
3 138 140 136
3 139 141 137
3 142 140 138
3 143 141 139
3 142 144 140
3 143 145 141
3 146 144 142
3 147 145 143
3 146 148 144
3 147 149 145
3 150 148 146
3 151 149 147
3 150 152 148
3 151 153 149
3 154 152 150
3 155 153 151
3 154 156 152
3 155 157 153
3 158 156 154
3 159 157 155
3 158 160 156
3 159 161 157
3 162 160 158
3 163 161 159
3 162 164 160
3 163 165 161
3 166 164 162
3 167 165 163
3 166 168 164
3 167 169 165
3 170 168 166
3 171 169 167
3 170 172 168
3 171 173 169
3 174 172 170
3 175 173 171
3 174 176 172
3 175 177 173
3 178 176 174
3 179 177 175
3 180 181 178
3 181 176 178
3 180 182 181
3 183 177 179
3 184 177 183
3 185 177 184
3 186 177 185
3 187 177 186
3 188 177 187
3 189 177 188
3 190 177 189
3 191 177 190
3 192 177 191
3 193 177 192
3 194 177 193
3 195 177 194
3 195 196 177
3 195 197 196
3 198 182 180
3 195 199 197
3 200 182 198
3 195 201 199
3 202 182 200
3 195 203 201
3 204 182 202
3 195 205 203
3 206 182 204
3 195 207 205
3 208 182 206
3 195 209 207
3 210 182 208
3 195 211 209
3 212 182 210
3 195 213 211
3 214 182 212
3 195 215 213
3 216 182 214
3 195 217 215
3 218 182 216
3 219 182 218
3 219 220 182
3 219 221 220
3 219 222 221
3 219 223 222
3 219 224 223
3 219 225 224
3 219 226 225
3 219 227 226
3 219 228 227
3 219 229 228
3 219 230 229
3 219 231 230
3 219 232 231
3 233 195 234
3 233 217 195
3 233 235 217
3 219 236 232
3 233 237 235
3 238 236 219
3 239 237 233
3 238 240 236
3 239 241 237
3 242 240 238
3 243 241 239
3 242 244 240
3 243 245 241
3 246 244 242
3 247 245 243
3 246 248 244
3 247 249 245
3 250 248 246
3 251 249 247
3 250 252 248
3 251 253 249
3 254 252 250
3 255 253 251
3 254 256 252
3 255 257 253
3 258 256 254
3 259 257 255
3 260 256 258
3 260 261 256
3 262 257 259
3 262 263 257
3 264 261 260
3 264 265 261
3 266 263 262
3 266 267 263
3 268 265 264
3 268 269 265
3 270 267 266
3 270 271 267
3 272 269 268
3 272 273 269
3 274 271 270
3 274 275 271
3 276 273 272
3 276 277 273
3 278 275 274
3 278 279 275
3 280 277 276
3 280 281 277
3 281 282 277
3 283 279 278
3 283 284 279
3 285 284 283
3 285 286 284
3 287 281 280
3 288 286 285
3 289 286 288
3 289 290 286
3 290 291 286
3 292 293 287
3 293 281 287
3 294 290 289
3 295 296 294
3 296 290 294
3 292 297 293
3 298 282 281
3 295 299 296
3 300 291 290
3 300 301 291
3 302 297 292
3 303 299 295
3 304 299 303
3 305 299 304
3 300 306 301
3 307 297 302
3 308 299 305
3 309 299 308
3 310 299 309
3 298 310 282
3 298 299 310
3 300 311 306
3 312 297 307
3 300 313 311
3 314 297 312
3 300 315 313
3 316 297 314
3 300 317 315
3 318 297 316
3 300 319 317
3 320 297 318
3 300 321 319
3 322 297 320
3 322 298 297
3 322 299 298
3 322 300 299
3 322 321 300
3 323 321 322
3 323 324 321
3 325 326 323
3 326 324 323
3 325 327 326
3 328 324 326
3 329 324 328
3 330 324 329
3 331 324 330
3 332 324 331
3 333 324 332
3 334 324 333
3 335 324 334
3 336 324 335
3 337 324 336
3 338 324 337
3 339 324 338
3 340 324 339
3 340 341 324
3 342 327 325
3 343 341 340
3 342 344 327
3 343 345 341
3 346 344 342
3 347 345 343
3 346 348 344
3 347 349 345
3 350 348 346
3 351 349 347
3 350 352 348
3 351 353 349
3 354 352 350
3 355 353 351
3 354 356 352
3 355 357 353
3 358 356 354
3 359 357 355
3 358 360 356
3 359 361 357
3 362 360 358
3 363 361 359
3 362 364 360
3 363 365 361
3 366 364 362
3 367 365 363
3 366 368 364
3 367 369 365
3 370 368 366
3 371 369 367
3 370 372 368
3 371 373 369
3 374 372 370
3 375 373 371
3 374 376 372
3 375 377 373
3 378 376 374
3 379 377 375
3 378 380 376
3 379 381 377
3 382 380 378
3 383 381 379
3 382 384 380
3 383 385 381
3 386 384 382
3 387 384 386
3 388 384 387
3 389 384 388
3 390 384 389
3 391 384 390
3 392 384 391
3 393 384 392
3 394 384 393
3 395 384 394
3 396 384 395
3 397 385 383
3 398 385 397
3 399 385 398
3 400 385 399
3 401 385 400
3 402 385 401
3 403 385 402
3 404 385 403
3 405 385 404
3 406 385 405
3 407 385 406

View File

@@ -1,21 +1,24 @@
ply
format ascii 1.0
comment Created by Blender 2.82 (sub 7) - www.blender.org, source file: 'border_large_sharp_2.blend'
comment Created by Blender 3.6.2 - www.blender.org
element vertex 8
property float x
property float y
property float z
property float nx
property float ny
property float nz
element face 8
property list uchar uint vertex_indices
end_header
0.994343 0.997469 0.000000
0.795365 -0.793329 0.000000
0.994343 -0.992306 0.000000
-0.796455 -0.793329 0.000000
-0.995432 -0.992306 0.000000
-0.995432 0.997469 0.000000
-0.796454 0.798491 0.000000
0.795366 0.798491 0.000000
0.000033 -0.077635 0.000000 0.000000 0.000000 1.000000
-0.061729 -0.000433 0.000000 0.000000 0.000000 1.000000
-0.077169 -0.000433 0.000000 0.000000 0.000000 1.000000
0.000033 0.061329 0.000000 0.000000 0.000000 1.000000
0.000033 0.076770 0.000000 0.000000 0.000000 1.000000
0.077235 -0.000433 0.000000 0.000000 0.000000 1.000000
0.061795 -0.000433 0.000000 0.000000 0.000000 1.000000
0.000033 -0.062195 0.000000 0.000000 0.000000 1.000000
3 0 1 2
3 2 3 4
3 3 5 4

View File

@@ -0,0 +1,54 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 22
property float x
property float y
property float z
property float s
property float t
element face 20
property list uchar uint vertex_indices
end_header
-0.072711065 0.091354586 0 0.04761905 0
0.11023354 0.109645195 0 0.23809524 0
-0.072711065 0.109645195 0 0 0
0.091939084 0.091354586 0 0.0952381 0
0.11023354 -0.07326077 0 0.1904762 0
0.091939084 -0.07326077 0 0.14285715 0
-0.10929998 -0.109841965 0 0.33333334 0
-0.0544166 -0.0092436895 0 0.95238096 0
-0.10929998 0.07306399 0 0.2857143 0
-0.026974909 0.01819221 0 0.47619048 0
0.073644616 0.07306399 0 0.42857143 0
-0.008680448 0.01819221 0 0.52380955 0
0.01876124 -0.0092436895 0 0.61904764 0
0.073644616 -0.109841965 0 0.3809524 0
-0.026974909 -0.0092436895 0 1 0
-0.008680448 -0.0092436895 0 0.5714286 0
-0.0544166 -0.027534284 0 0.9047619 0
0.01876124 -0.027534284 0 0.6666667 0
-0.026974909 -0.027534284 0 0.85714287 0
-0.026974909 -0.054970175 0 0.8095238 0
-0.008680448 -0.054970175 0 0.7619048 0
-0.008680448 -0.027534284 0 0.71428573 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 9 10 8
3 9 11 10
3 11 12 10
3 12 13 10
3 7 14 9
3 15 12 11
3 6 16 7
3 17 13 12
3 6 18 16
3 6 19 18
3 20 17 21
3 20 13 17
3 6 20 19
3 6 13 20

View File

@@ -0,0 +1,222 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 106
property float x
property float y
property float z
property float s
property float t
element face 104
property list uchar uint vertex_indices
end_header
-0.07268818 0.09148041 0 0.00952381 0
0.11037082 0.109782435 0 0.04761905 0
-0.07268818 0.109782435 0 0 0
0.092064925 0.09148041 0 0.01904762 0
0.11037082 -0.073237896 0 0.03809524 0
0.092064925 -0.073237896 0 0.028571429 0
-0.10929998 -0.109841965 0 0.06666667 0
-0.06168455 -0.00045199692 0 0.83809525 0
-0.10929998 0.07317837 0 0.057142857 0
-0.060415167 0.0023493767 0 0.84761906 0
-0.05896481 0.005064994 0 0.85714287 0
-0.057337295 0.0076856837 0 0.8666667 0
-0.055536423 0.010202259 0 0.8761905 0
-0.053566005 0.012605518 0 0.8857143 0
-0.051429853 0.0148862675 0 0.8952381 0
-0.049147803 0.017021112 0 0.9047619 0
-0.046743296 0.018990196 0 0.9142857 0
-0.044225514 0.020789735 0 0.9238095 0
-0.041603655 0.022415929 0 0.93333334 0
-0.038886912 0.023864947 0 0.94285715 0
-0.036084473 0.025133006 0 0.95238096 0
0.07375901 0.07317837 0 0.08571429 0
-0.03320553 0.026216306 0 0.96190476 0
-0.030259289 0.027111016 0 0.9714286 0
-0.027254917 0.027813353 0 0.9809524 0
-0.024201617 0.028319515 0 0.9904762 0
-0.021108583 0.02862569 0 1 0
-0.017985001 0.02872803 0 0.0952381 0
-0.014862224 0.028624527 0 0.104761906 0
-0.011770047 0.02831734 0 0.114285715 0
-0.008717656 0.027810268 0 0.123809524 0
-0.0057142302 0.027107142 0 0.13333334 0
-0.0027689561 0.026211746 0 0.14285715 0
0.00010898709 0.02512788 0 0.15238096 0
0.0029104128 0.023859344 0 0.16190477 0
0.005626127 0.022409968 0 0.17142858 0
0.008246966 0.020783536 0 0.18095239 0
0.01076372 0.018983863 0 0.1904762 0
0.013167232 0.01701472 0 0.2 0
0.015448287 0.014879957 0 0.20952381 0
0.017583512 0.012599371 0 0.21904762 0
0.019553058 0.010196373 0 0.22857143 0
0.021353118 0.0076801404 0 0.23809524 0
0.022979893 0.005059868 0 0.24761905 0
0.024429597 0.00234472 0 0.25714287 0
0.025698386 -0.00045610964 0 0.26666668 0
0.07375901 -0.109841965 0 0.07619048 0
-0.062769145 -0.0033299178 0 0.82857144 0
0.026782475 -0.003333442 0 0.2761905 0
-0.06366517 -0.006275207 0 0.81904763 0
0.027678065 -0.0062780976 0 0.2857143 0
-0.06436878 -0.009278677 0 0.8095238 0
0.02838134 -0.00928089 0 0.2952381 0
-0.06487619 -0.012331136 0 0.8 0
0.028888516 -0.012332641 0 0.30476192 0
-0.06518359 -0.01542341 0 0.7904762 0
0.029195763 -0.01542417 0 0.31428573 0
-0.06528716 -0.01854629 0 0.7809524 0
0.029299282 -0.01854629 0 0.32380953 0
-0.06518472 -0.021669969 0 0.7714286 0
0.029196896 -0.021669209 0 0.33333334 0
0.028890662 -0.02476158 0 0.34285715 0
-0.064878345 -0.024763092 0 0.7619048 0
0.028384395 -0.027814232 0 0.35238096 0
-0.06437184 -0.02781646 0 0.75238097 0
0.027681924 -0.030817963 0 0.36190477 0
-0.063669026 -0.030820876 0 0.74285716 0
0.026787005 -0.033763595 0 0.37142858 0
-0.0627737 -0.033767134 0 0.73333335 0
0.025703497 -0.036641926 0 0.3809524 0
-0.06168968 -0.036646053 0 0.72380954 0
0.024435185 -0.03944377 0 0.3904762 0
-0.06042077 -0.039448433 0 0.71428573 0
0.022985853 -0.042159945 0 0.4 0
-0.058970775 -0.04216508 0 0.7047619 0
0.021359317 -0.044781245 0 0.40952381 0
-0.05734351 -0.04478679 0 0.6952381 0
0.019559406 -0.04729849 0 0.41904762 0
-0.055542786 -0.04730437 0 0.6857143 0
0.01758989 -0.0497025 0 0.42857143 0
-0.0535724 -0.049708635 0 0.6761905 0
0.015454605 -0.051984064 0 0.43809524 0
-0.05143617 -0.05199038 0 0.6666667 0
0.013173364 -0.05411977 0 0.44761905 0
-0.04915395 -0.05412616 0 0.6571429 0
0.010769598 -0.056089774 0 0.45714286 0
-0.046749182 -0.056096125 0 0.64761907 0
0.008252494 -0.057890262 0 0.46666667 0
-0.044231065 -0.057896476 0 0.63809526 0
0.005631253 -0.059517436 0 0.47619048 0
-0.041608796 -0.059523392 0 0.62857145 0
0.002915062 -0.06096748 0 0.4857143 0
-0.038891576 -0.060973078 0 0.61904764 0
0.00011309981 -0.062236592 0 0.4952381 0
-0.03608861 -0.062241722 0 0.60952383 0
-0.002765432 -0.063320965 0 0.50476193 0
-0.033209078 -0.06332551 0 0.6 0
-0.0057113394 -0.064216785 0 0.51428574 0
-0.030262187 -0.064220645 0 0.5904762 0
-0.008715443 -0.064920254 0 0.52380955 0
-0.027257137 -0.064923316 0 0.5809524 0
-0.011768557 -0.06542756 0 0.53333336 0
-0.02420313 -0.0654297 0 0.5714286 0
-0.014861472 -0.06573489 0 0.54285717 0
-0.02110935 -0.06573602 0 0.5619048 0
-0.017985001 -0.06583844 0 0.552381 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 9 10 8
3 10 11 8
3 11 12 8
3 12 13 8
3 13 14 8
3 14 15 8
3 15 16 8
3 16 17 8
3 17 18 8
3 18 19 8
3 19 20 8
3 20 21 8
3 20 22 21
3 22 23 21
3 23 24 21
3 24 25 21
3 25 26 21
3 26 27 21
3 27 28 21
3 28 29 21
3 29 30 21
3 30 31 21
3 31 32 21
3 32 33 21
3 33 34 21
3 34 35 21
3 35 36 21
3 36 37 21
3 37 38 21
3 38 39 21
3 39 40 21
3 40 41 21
3 41 42 21
3 42 43 21
3 43 44 21
3 44 45 21
3 45 46 21
3 6 47 7
3 48 46 45
3 6 49 47
3 50 46 48
3 6 51 49
3 52 46 50
3 6 53 51
3 54 46 52
3 6 55 53
3 56 46 54
3 6 57 55
3 58 46 56
3 6 59 57
3 60 46 58
3 61 46 60
3 6 62 59
3 63 46 61
3 6 64 62
3 65 46 63
3 6 66 64
3 67 46 65
3 6 68 66
3 69 46 67
3 6 70 68
3 71 46 69
3 6 72 70
3 73 46 71
3 6 74 72
3 75 46 73
3 6 76 74
3 77 46 75
3 6 78 76
3 79 46 77
3 6 80 78
3 81 46 79
3 6 82 80
3 83 46 81
3 6 84 82
3 85 46 83
3 6 86 84
3 87 46 85
3 6 88 86
3 89 46 87
3 6 90 88
3 91 46 89
3 6 92 90
3 93 46 91
3 6 94 92
3 95 46 93
3 6 96 94
3 97 46 95
3 6 98 96
3 99 46 97
3 6 100 98
3 101 46 99
3 6 102 100
3 103 46 101
3 6 104 102
3 105 46 103
3 6 105 104
3 6 46 105

View File

@@ -0,0 +1,44 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 17
property float x
property float y
property float z
property float s
property float t
element face 15
property list uchar uint vertex_indices
end_header
-0.07285437 0.09114095 0 0.0625 0
0.10981976 0.109412126 0 0.3125 0
-0.07285437 0.109412126 0 0 0
0.091544725 0.09114095 0 0.125 0
0.10981976 -0.07322149 0 0.25 0
0.091544725 -0.07322149 0 0.1875 0
-0.10948064 -0.109841965 0 0.4375 0
-0.058492586 0.025407545 0 0.625 0
-0.10948064 0.07286977 0 0.375 0
0.07326969 0.07286977 0 0.5625 0
0.028688602 -0.0070309266 0 0.6875 0
0.07326969 -0.109841965 0 0.5 0
-0.058492586 0.0056197196 0 1 0
-0.058492586 -0.04143212 0 0.875 0
0.009610474 -0.017736696 0 0.9375 0
0.028688602 -0.02860304 0 0.75 0
-0.058492586 -0.060863078 0 0.8125 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 7 10 9
3 10 11 9
3 6 12 7
3 6 13 12
3 13 14 12
3 15 11 10
3 16 11 15
3 6 16 13
3 6 11 16

View File

@@ -0,0 +1,54 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 22
property float x
property float y
property float z
property float s
property float t
element face 20
property list uchar uint vertex_indices
end_header
-0.073128715 0.0914061 0 0.04761905 0
0.109534174 0.10966853 0 0.23809524 0
-0.073128715 0.10966853 0 0 0
0.091267884 0.0914061 0 0.0952381 0
0.109534174 -0.07295578 0 0.1904762 0
0.091267884 -0.07295578 0 0.14285715 0
-0.109661296 -0.10948064 0 0.33333334 0
-0.054309446 0.006318152 0 1 0
-0.109661296 0.07314367 0 0.2857143 0
-0.042411387 0.018338539 0 0.47619048 0
0.07300159 0.07314367 0 0.42857143 0
0.006108448 0.018071033 0 0.5714286 0
0.017935157 0.0060684755 0 0.61904764 0
0.07300159 -0.10948064 0 0.3809524 0
-0.018329851 -0.0065226182 0 0.52380955 0
-0.0547554 -0.042191423 0 0.9047619 0
-0.030263595 -0.018168487 0 0.95238096 0
-0.0063782707 -0.018168487 0 0.6666667 0
0.018060029 -0.042690784 0 0.71428573 0
-0.04273247 -0.05408698 0 0.85714287 0
0.0060549304 -0.054515004 0 0.7619048 0
-0.018329851 -0.030402884 0 0.8095238 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 9 10 8
3 9 11 10
3 11 12 10
3 12 13 10
3 14 11 9
3 6 15 7
3 15 16 7
3 17 18 12
3 18 13 12
3 19 20 21
3 6 19 15
3 20 13 18
3 6 20 19
3 6 13 20

View File

@@ -0,0 +1,28 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 10
property float x
property float y
property float z
property float s
property float t
element face 6
property list uchar uint vertex_indices
end_header
-0.07297526 0.09135432 0 0.11111111 0
0.11032981 0.10968094 0 0.5555556 0
-0.07297526 0.10968094 0 0 0
0.09199931 0.09135432 0 0.22222222 0
0.11032981 -0.073585406 0 0.44444445 0
0.09199931 -0.073585406 0 0.33333334 0
-0.10963628 -0.11023868 0 0.7777778 0
0.07366879 0.07302768 0 1 0
-0.10963628 0.07302768 0 0.6666667 0
0.07366879 -0.11023868 0 0.8888889 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 6 9 7

View File

@@ -0,0 +1,174 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 83
property float x
property float y
property float z
property float s
property float t
element face 79
property list uchar uint vertex_indices
end_header
-0.07290316 0.09147241 0 0.0121951215 0
0.1099843 0.10975728 0 0.06097561 0
-0.07290316 0.10975728 0 0 0
0.091695555 0.09147241 0 0.024390243 0
0.1099843 -0.07309154 0 0.048780486 0
0.091695555 -0.07309154 0 0.036585364 0
-0.10948064 -0.1096613 0 0.085365854 0
-0.05822414 -0.00053750724 0 0.597561 0
-0.10948064 0.07318752 0 0.07317073 0
-0.055750687 0.004383467 0 0.6097561 0
-0.05268512 0.00891722 0 0.6219512 0
-0.04907864 0.013012551 0 0.63414633 0
-0.04498244 0.016618274 0 0.64634144 0
-0.040447734 0.019683175 0 0.6585366 0
-0.035525717 0.022156127 0 0.6707317 0
0.07340681 0.07318752 0 0.1097561 0
-0.030267581 0.023985885 0 0.68292683 0
-0.024724536 0.025121279 0 0.69512194 0
-0.01894778 0.025511123 0 0.12195122 0
-0.013171017 0.025121279 0 0.13414635 0
-0.0076279715 0.023985885 0 0.14634146 0
-0.002369836 0.022156127 0 0.15853658 0
0.0025521815 0.019683175 0 0.17073171 0
0.007086888 0.01661826 0 0.18292683 0
0.011183083 0.013012543 0 0.19512194 0
0.014789559 0.0089172125 0 0.20731707 0
0.01785513 0.0043834597 0 0.2195122 0
0.020328574 -0.0005375147 0 0.23170732 0
0.07340681 -0.1096613 0 0.09756097 0
-0.01676885 -0.05068185 0 0.7195122 0
-0.012085743 0.015836112 0 1 0
-0.016340211 0.016440101 0 0.70731705 0
-0.008017488 0.014717221 0 0.9878049 0
-0.0041704625 0.0131183565 0 0.9756098 0
-0.000579685 0.011074416 0 0.9634146 0
0.0027198046 0.008620292 0 0.9512195 0
0.005692996 0.0057908893 0 0.9390244 0
0.008304864 0.0026211068 0 0.9268293 0
0.010520384 -0.00085414946 0 0.91463417 0
-0.060054287 -0.0057945326 0 0.58536583 0
0.02215872 -0.0057945326 0 0.24390244 0
0.01230453 -0.0045999885 0 0.902439 0
0.013622284 -0.008581497 0 0.8902439 0
-0.061189923 -0.011336409 0 0.5731707 0
0.023294352 -0.011336409 0 0.25609756 0
0.014438622 -0.012763783 0 0.8780488 0
-0.061579846 -0.01711195 0 0.5609756 0
0.023684286 -0.01711195 0 0.2682927 0
0.01471851 -0.01711195 0 0.86585367 0
-0.06118993 -0.02288749 0 0.5487805 0
0.014434196 -0.021496154 0 0.85365856 0
0.023294352 -0.02288749 0 0.2804878 0
0.013605081 -0.025710896 0 0.8414634 0
-0.060054295 -0.02842936 0 0.5365854 0
0.02215872 -0.02842936 0 0.29268292 0
0.012267001 -0.02972044 0 0.8292683 0
-0.05822415 -0.033686385 0 0.5243902 0
0.020328574 -0.033686377 0 0.30487806 0
0.010455765 -0.033489108 0 0.81707317 0
0.008207209 -0.03698118 0 0.80487806 0
0.01785513 -0.03860736 0 0.31707317 0
-0.055750694 -0.038607366 0 0.5121951 0
0.005557157 -0.040160954 0 0.79268295 0
0.0147895515 -0.043141104 0 0.3292683 0
-0.052685127 -0.04314111 0 0.5 0
0.0025414154 -0.042992726 0 0.7804878 0
-0.0008041933 -0.045440786 0 0.76829267 0
0.011183076 -0.047236435 0 0.34146342 0
-0.049078647 -0.047236446 0 0.4878049 0
-0.004443839 -0.047469437 0 0.75609756 0
0.0070868805 -0.050842155 0 0.35365853 0
-0.04498245 -0.050842166 0 0.47560975 0
-0.008341715 -0.04904297 0 0.74390244 0
-0.01246199 -0.050125673 0 0.73170733 0
0.002552174 -0.053907074 0 0.36585367 0
-0.04044774 -0.053907085 0 0.46341464 0
-0.0023698434 -0.056380007 0 0.37804878 0
-0.035525724 -0.05638002 0 0.4512195 0
-0.007627979 -0.058209766 0 0.3902439 0
-0.030267589 -0.058209777 0 0.4390244 0
-0.013171025 -0.05934516 0 0.40243903 0
-0.024724536 -0.059345167 0 0.42682928 0
-0.01894778 -0.059735004 0 0.41463414 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 9 10 8
3 10 11 8
3 11 12 8
3 12 13 8
3 13 14 8
3 14 15 8
3 14 16 15
3 16 17 15
3 17 18 15
3 18 19 15
3 19 20 15
3 20 21 15
3 21 22 15
3 22 23 15
3 23 24 15
3 24 25 15
3 25 26 15
3 26 27 15
3 27 28 15
3 29 30 31
3 29 32 30
3 29 33 32
3 29 34 33
3 29 35 34
3 29 36 35
3 29 37 36
3 29 38 37
3 6 39 7
3 40 28 27
3 29 41 38
3 29 42 41
3 6 43 39
3 44 28 40
3 29 45 42
3 6 46 43
3 47 28 44
3 29 48 45
3 6 49 46
3 29 50 48
3 51 28 47
3 29 52 50
3 6 53 49
3 54 28 51
3 29 55 52
3 6 56 53
3 57 28 54
3 29 58 55
3 29 59 58
3 60 28 57
3 6 61 56
3 29 62 59
3 63 28 60
3 6 64 61
3 29 65 62
3 29 66 65
3 67 28 63
3 6 68 64
3 29 69 66
3 70 28 67
3 6 71 68
3 29 72 69
3 29 73 72
3 74 28 70
3 6 75 71
3 76 28 74
3 6 77 75
3 78 28 76
3 6 79 77
3 80 28 78
3 6 81 79
3 82 28 80
3 6 82 81
3 6 28 82

View File

@@ -0,0 +1,206 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 98
property float x
property float y
property float z
property float s
property float t
element face 96
property list uchar uint vertex_indices
end_header
-0.07283364 0.09149335 0 0.2 0
0.11040141 0.10981299 0 1 0
-0.07283364 0.10981299 0 0 0
0.092077896 0.09149335 0 0.4 0
0.11040141 -0.07338336 0 0.8 0
0.092077896 -0.07338336 0 0.6 0
-0.023650885 0.023889855 0 0.012048192 0
-0.012075409 0.02388984 0 0.56626505 0
-0.017863132 0.024280444 0 0 0
-0.02920451 0.022752255 0 0.024096385 0
-0.0065217763 0.02275224 0 0.55421686 0
-0.03447271 0.02091895 0 0.036144577 0
-0.0012535825 0.020918936 0 0.5421687 0
-0.039404176 0.018441245 0 0.04819277 0
0.0036778823 0.01844123 0 0.5301205 0
-0.0439476 0.015370399 0 0.060240965 0
0.008221306 0.015370384 0 0.5180723 0
-0.04805168 0.011757717 0 0.072289154 0
-0.015240908 0.015183553 0 0.57831323 0
0.012325391 0.011757709 0 0.5060241 0
-0.01524961 0.01386039 0 1 0
-0.010978632 0.014578551 0 0.5903614 0
-0.00690341 0.013457961 0 0.60240966 0
-0.015273668 0.010202244 0 0.9879518 0
-0.0030502453 0.011856705 0 0.61445785 0
0.00054587424 0.00980968 0 0.62650603 0
-0.05166512 0.007654503 0 0.084337346 0
0.015938833 0.0076544955 0 0.4939759 0
-0.015310019 0.004676111 0 0.97590363 0
0.0038499683 0.007351801 0 0.6385542 0
-0.054736618 0.0031120405 0 0.09638554 0
0.01901032 0.003112033 0 0.48192772 0
0.0068270415 0.004517995 0 0.6506024 0
-0.01535558 -0.002251014 0 0.96385545 0
0.009442098 0.0013431534 0 0.6626506 0
-0.05721486 -0.0018183812 0 0.10843374 0
0.021488577 -0.0018183887 0 0.4698795 0
0.011660151 -0.0021378025 0 0.67469877 0
-0.059048552 -0.0070854574 0 0.12048193 0
0.02332227 -0.0070854723 0 0.45783132 0
0.013446212 -0.005889952 0 0.686747 0
-0.015407287 -0.010112137 0 0.9518072 0
0.014765292 -0.009878382 0 0.6987952 0
-0.06018639 -0.012637913 0 0.13253012 0
0.024460107 -0.012637928 0 0.44578314 0
0.015582398 -0.014068201 0 0.7108434 0
-0.015462056 -0.018440254 0 0.939759 0
-0.060577072 -0.018424459 0 0.14457831 0
0.0248508 -0.018424459 0 0.43373495 0
0.01586257 -0.018424459 0 0.72289157 0
-0.06018639 -0.024210997 0 0.15662651 0
0.015577719 -0.02281712 0 0.73493975 0
0.024460122 -0.024210997 0 0.42168674 0
-0.0155168325 -0.026768379 0 0.92771083 0
0.014747098 -0.027040191 0 0.74698794 0
-0.059048552 -0.029763453 0 0.16867469 0
0.023322284 -0.029763453 0 0.40963855 0
-0.0155685395 -0.0346295 0 0.91566265 0
0.01340659 -0.031057857 0 0.7590361 0
-0.05721486 -0.035030536 0 0.18072289 0
0.021488592 -0.035030536 0 0.39759037 0
0.011592075 -0.034834288 0 0.7710843 0
-0.0156141 -0.04155662 0 0.90361446 0
0.009339415 -0.03833369 0 0.78313255 0
-0.054736618 -0.039960958 0 0.19277108 0
0.01901035 -0.039960958 0 0.38554215 0
0.006684497 -0.041520238 0 0.79518074 0
-0.05166512 -0.04450342 0 0.20481928 0
0.015938848 -0.04450342 0 0.37349397 0
0.0036632046 -0.044358127 0 0.8072289 0
-0.015650444 -0.04708276 0 0.8915663 0
0.00031141192 -0.04681153 0 0.8192771 0
-0.04805168 -0.048606638 0 0.21686748 0
0.0123254135 -0.048606638 0 0.36144578 0
-0.0033350065 -0.04884464 0 0.8313253 0
-0.015674502 -0.0507409 0 0.8795181 0
-0.0439476 -0.052219316 0 0.22891566 0
0.008221328 -0.052219316 0 0.3493976 0
-0.0072401613 -0.050421644 0 0.8433735 0
-0.011368185 -0.05150672 0 0.85542166 0
-0.015683204 -0.05206406 0 0.8674699 0
-0.039404176 -0.055290163 0 0.24096386 0
0.0036779046 -0.055290163 0 0.33734939 0
-0.03447271 -0.057767883 0 0.25301206 0
-0.0012535602 -0.057767883 0 0.3253012 0
-0.02920451 -0.05960119 0 0.26506025 0
-0.006521754 -0.05960119 0 0.31325302 0
-0.023650885 -0.060738787 0 0.27710843 0
-0.0120753795 -0.060738787 0 0.30120483 0
-0.017863132 -0.061129384 0 0.28915662 0
-0.10948065 -0.110022634 0 0.14285715 0
-0.091157146 0.05485408 0 0.5714286 0
-0.10948065 0.07317372 0 0 0
0.0737544 0.07317372 0 0.42857143 0
0.05543089 0.05485408 0 0.71428573 0
0.0737544 -0.110022634 0 0.2857143 0
-0.091157146 -0.091703 0 1 0
0.05543089 -0.091703 0 0.85714287 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 9 7 6
3 9 10 7
3 11 10 9
3 11 12 10
3 13 12 11
3 13 14 12
3 15 14 13
3 15 16 14
3 17 18 15
3 18 16 15
3 18 19 16
3 17 20 18
3 21 19 18
3 22 19 21
3 17 23 20
3 24 19 22
3 25 19 24
3 26 23 17
3 25 27 19
3 26 28 23
3 29 27 25
3 30 28 26
3 29 31 27
3 32 31 29
3 30 33 28
3 34 31 32
3 35 33 30
3 34 36 31
3 37 36 34
3 38 33 35
3 37 39 36
3 40 39 37
3 38 41 33
3 42 39 40
3 43 41 38
3 42 44 39
3 45 44 42
3 43 46 41
3 47 46 43
3 45 48 44
3 49 48 45
3 50 46 47
3 51 48 49
3 51 52 48
3 50 53 46
3 54 52 51
3 55 53 50
3 54 56 52
3 55 57 53
3 58 56 54
3 59 57 55
3 58 60 56
3 61 60 58
3 59 62 57
3 63 60 61
3 64 62 59
3 63 65 60
3 66 65 63
3 67 62 64
3 66 68 65
3 69 68 66
3 67 70 62
3 71 68 69
3 72 70 67
3 71 73 68
3 74 73 71
3 72 75 70
3 76 75 72
3 74 77 73
3 78 77 74
3 79 77 78
3 76 80 75
3 80 77 79
3 76 77 80
3 81 77 76
3 81 82 77
3 83 82 81
3 83 84 82
3 85 84 83
3 85 86 84
3 87 86 85
3 87 88 86
3 89 88 87
3 90 91 92
3 91 93 92
3 91 94 93
3 94 95 93
3 90 96 91
3 97 95 94
3 90 97 96
3 90 95 97

View File

@@ -0,0 +1,44 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 18
property float x
property float y
property float z
property float s
property float t
element face 14
property list uchar uint vertex_indices
end_header
-0.073069215 0.09155264 0 0.7058824 0
0.10989119 0.10984481 0 0.47058824 0
-0.073069215 0.10984481 0 0.7647059 0
0.09159514 0.09155264 0 0.64705884 0
0.10989119 -0.07307695 0 0.5294118 0
0.09159514 -0.07307695 0 0.5882353 0
-0.109661296 -0.1096613 0 0.4117647 0
-0.091365255 0.05496829 0 0 0
-0.109661296 0.073260464 0 0.23529412 0
0.07329911 0.073260464 0 0.29411766 0
0.055003062 0.05496829 0 0.1764706 0
0.07329911 -0.1096613 0 0.3529412 0
-0.091365255 -0.09136913 0 0.05882353 0
0.055003062 -0.09136913 0 0.11764706 0
-0.054773174 -0.027346507 0 1 0
0.01841098 -0.009054333 0 0.88235295 0
-0.054773174 -0.009054333 0 0.8235294 0
0.01841098 -0.027346507 0 0.9411765 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 7 10 9
3 10 11 9
3 6 12 7
3 13 11 10
3 14 15 16
3 14 17 15
3 6 13 12
3 6 11 13

View File

@@ -1,20 +1,23 @@
ply
format ascii 1.0
comment Created by Blender 2.90.0 - www.blender.org
element vertex 4
comment Created by Blender 3.4.1 - www.blender.org
element vertex 6
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
property uchar alpha
element face 2
property float nx
property float ny
property float nz
element face 4
property list uchar uint vertex_indices
end_header
0.864086 -0.043969 0.000000 255 255 255 255
1.229462 0.040299 0.000000 255 255 255 255
0.864086 0.040300 0.000000 255 255 255 255
1.229462 -0.043970 0.000000 255 255 255 255
0.864086 -0.043969 0.000000 0.000000 0.000000 1.000000
2.903103 0.040299 0.000000 0.000000 0.000000 1.000000
0.864086 0.040300 0.000000 0.000000 0.000000 1.000000
2.903103 -0.043970 0.000000 0.000000 0.000000 1.000000
2.998506 0.005674 0.000000 0.000000 0.000000 1.000000
2.998506 -0.009345 0.000000 0.000000 0.000000 1.000000
3 0 1 2
3 0 3 1
3 3 4 1
3 3 5 4

View File

@@ -1,40 +1,32 @@
ply
format ascii 1.0
comment Created by Blender 2.91.2 - www.blender.org
element vertex 14
comment Created by Blender 2.90.1 - www.blender.org
element vertex 12
property float x
property float y
property float z
element face 16
element face 10
property list uchar uint vertex_indices
end_header
-0.100035 0.057779 0.000000
-0.002114 0.090894 0.000000
-0.002069 0.111204 0.000000
0.095897 0.057200 0.000000
-0.072133 0.052704 0.000000
0.068377 0.052027 0.000000
-0.100035 -0.050237 0.000000
0.078085 0.037024 0.000000
0.095897 -0.050237 0.000000
-0.002025 0.014469 0.000000
0.006837 -0.000988 0.000000
0.078085 -0.039552 0.000000
0.006837 -0.077564 0.000000
-0.002069 -0.102495 0.000000
-0.120212 -0.072047 0.000000
-0.101239 0.089191 0.000000
-0.120212 0.108160 0.000000
0.119230 0.108160 0.000000
0.100257 0.089191 0.000000
0.119230 -0.072047 0.000000
-0.101239 -0.053078 0.000000
0.100257 -0.053078 0.000000
-0.057945 -0.110557 0.000000
0.031238 -0.082104 0.000000
-0.033289 -0.082104 0.000000
0.055894 -0.110557 0.000000
3 0 1 2
3 1 3 2
3 0 4 1
3 5 3 1
3 6 4 0
3 5 7 3
3 7 8 3
3 6 9 4
3 9 7 5
3 9 10 7
3 11 8 7
3 6 10 9
3 6 12 10
3 12 8 11
3 13 12 6
3 12 13 8
3 1 4 3
3 4 5 3
3 0 6 1
3 7 5 4
3 0 7 6
3 0 5 7
3 8 9 10
3 8 11 9

View File

@@ -1,296 +0,0 @@
ply
format ascii 1.0
comment Created by Blender 2.83.2 - www.blender.org, source file: 'icons.blend'
element vertex 144
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
property uchar alpha
element face 138
property list uchar uint vertex_indices
end_header
-0.100451 0.019553 0.000000 255 255 255 255
-0.095145 0.019553 0.000000 255 255 255 255
-0.097798 0.019732 0.000000 255 255 255 255
-0.102996 0.019033 0.000000 255 255 255 255
-0.092601 0.019033 0.000000 255 255 255 255
-0.105409 0.018194 0.000000 255 255 255 255
-0.090187 0.018194 0.000000 255 255 255 255
-0.107668 0.017061 0.000000 255 255 255 255
-0.087929 0.017061 0.000000 255 255 255 255
-0.109748 0.015656 0.000000 255 255 255 255
-0.085848 0.015655 0.000000 255 255 255 255
-0.111627 0.014002 0.000000 255 255 255 255
-0.083970 0.014002 0.000000 255 255 255 255
-0.113281 0.012124 0.000000 255 255 255 255
-0.082316 0.012124 0.000000 255 255 255 255
-0.080911 0.010044 0.000000 255 255 255 255
-0.114686 0.010044 0.000000 255 255 255 255
-0.079777 0.007786 0.000000 255 255 255 255
-0.115820 0.007786 0.000000 255 255 255 255
-0.078938 0.005373 0.000000 255 255 255 255
-0.116659 0.005373 0.000000 255 255 255 255
-0.078418 0.002829 0.000000 255 255 255 255
-0.117179 0.002829 0.000000 255 255 255 255
-0.078239 0.000176 0.000000 255 255 255 255
-0.117358 0.000176 0.000000 255 255 255 255
-0.117179 -0.002478 0.000000 255 255 255 255
-0.078418 -0.002478 0.000000 255 255 255 255
-0.078938 -0.005024 0.000000 255 255 255 255
-0.116659 -0.005024 0.000000 255 255 255 255
-0.079777 -0.007437 0.000000 255 255 255 255
-0.115820 -0.007437 0.000000 255 255 255 255
-0.080911 -0.009695 0.000000 255 255 255 255
-0.114686 -0.009695 0.000000 255 255 255 255
-0.082316 -0.011775 0.000000 255 255 255 255
-0.113281 -0.011775 0.000000 255 255 255 255
-0.083970 -0.013653 0.000000 255 255 255 255
-0.111627 -0.013653 0.000000 255 255 255 255
-0.085848 -0.015306 0.000000 255 255 255 255
-0.109748 -0.015306 0.000000 255 255 255 255
-0.087929 -0.016710 0.000000 255 255 255 255
-0.107668 -0.016710 0.000000 255 255 255 255
-0.090187 -0.017843 0.000000 255 255 255 255
-0.105409 -0.017843 0.000000 255 255 255 255
-0.092601 -0.018681 0.000000 255 255 255 255
-0.102996 -0.018681 0.000000 255 255 255 255
-0.095145 -0.019200 0.000000 255 255 255 255
-0.100451 -0.019200 0.000000 255 255 255 255
-0.097798 -0.019379 0.000000 255 255 255 255
0.092979 0.018972 0.000000 255 255 255 255
0.098284 0.018972 0.000000 255 255 255 255
0.095631 0.019150 0.000000 255 255 255 255
0.090434 0.018452 0.000000 255 255 255 255
0.100829 0.018452 0.000000 255 255 255 255
0.088020 0.017614 0.000000 255 255 255 255
0.103243 0.017613 0.000000 255 255 255 255
0.085762 0.016482 0.000000 255 255 255 255
0.105501 0.016479 0.000000 255 255 255 255
0.083682 0.015077 0.000000 255 255 255 255
0.107581 0.015074 0.000000 255 255 255 255
0.081803 0.013424 0.000000 255 255 255 255
0.109460 0.013421 0.000000 255 255 255 255
0.080149 0.011547 0.000000 255 255 255 255
0.111114 0.011542 0.000000 255 255 255 255
0.078744 0.009467 0.000000 255 255 255 255
0.112519 0.009463 0.000000 255 255 255 255
0.077610 0.007209 0.000000 255 255 255 255
0.113653 0.007205 0.000000 255 255 255 255
0.076771 0.004795 0.000000 255 255 255 255
0.114492 0.004792 0.000000 255 255 255 255
0.076251 0.002250 0.000000 255 255 255 255
0.115012 0.002247 0.000000 255 255 255 255
0.076072 -0.000405 0.000000 255 255 255 255
0.115191 -0.000405 0.000000 255 255 255 255
0.076251 -0.003059 0.000000 255 255 255 255
0.115012 -0.003057 0.000000 255 255 255 255
0.114492 -0.005602 0.000000 255 255 255 255
0.076771 -0.005605 0.000000 255 255 255 255
0.113653 -0.008014 0.000000 255 255 255 255
0.077610 -0.008018 0.000000 255 255 255 255
0.112519 -0.010272 0.000000 255 255 255 255
0.078743 -0.010277 0.000000 255 255 255 255
0.111113 -0.012352 0.000000 255 255 255 255
0.080148 -0.012356 0.000000 255 255 255 255
0.109459 -0.014231 0.000000 255 255 255 255
0.081802 -0.014234 0.000000 255 255 255 255
0.107579 -0.015884 0.000000 255 255 255 255
0.083680 -0.015887 0.000000 255 255 255 255
0.105498 -0.017289 0.000000 255 255 255 255
0.085759 -0.017291 0.000000 255 255 255 255
0.103238 -0.018423 0.000000 255 255 255 255
0.088016 -0.018424 0.000000 255 255 255 255
0.100824 -0.019261 0.000000 255 255 255 255
0.090428 -0.019262 0.000000 255 255 255 255
0.098277 -0.019782 0.000000 255 255 255 255
0.092971 -0.019782 0.000000 255 255 255 255
0.095622 -0.019960 0.000000 255 255 255 255
-0.002654 0.019054 0.000000 255 255 255 255
0.002652 0.019054 0.000000 255 255 255 255
-0.000001 0.019233 0.000000 255 255 255 255
-0.005199 0.018534 0.000000 255 255 255 255
0.005197 0.018534 0.000000 255 255 255 255
-0.007612 0.017695 0.000000 255 255 255 255
0.007610 0.017695 0.000000 255 255 255 255
-0.009871 0.016561 0.000000 255 255 255 255
0.009869 0.016561 0.000000 255 255 255 255
-0.011951 0.015156 0.000000 255 255 255 255
0.011949 0.015156 0.000000 255 255 255 255
-0.013829 0.013503 0.000000 255 255 255 255
0.013828 0.013503 0.000000 255 255 255 255
-0.015483 0.011625 0.000000 255 255 255 255
0.015481 0.011625 0.000000 255 255 255 255
-0.016889 0.009545 0.000000 255 255 255 255
0.016887 0.009545 0.000000 255 255 255 255
-0.018023 0.007287 0.000000 255 255 255 255
0.018021 0.007287 0.000000 255 255 255 255
-0.018861 0.004874 0.000000 255 255 255 255
0.018859 0.004874 0.000000 255 255 255 255
-0.019382 0.002330 0.000000 255 255 255 255
0.019380 0.002330 0.000000 255 255 255 255
-0.019560 -0.000323 0.000000 255 255 255 255
0.019559 -0.000323 0.000000 255 255 255 255
-0.019382 -0.002975 0.000000 255 255 255 255
0.019380 -0.002975 0.000000 255 255 255 255
-0.018861 -0.005519 0.000000 255 255 255 255
0.018859 -0.005519 0.000000 255 255 255 255
-0.018023 -0.007932 0.000000 255 255 255 255
0.018021 -0.007932 0.000000 255 255 255 255
-0.016889 -0.010190 0.000000 255 255 255 255
0.016887 -0.010190 0.000000 255 255 255 255
-0.015483 -0.012270 0.000000 255 255 255 255
0.015481 -0.012270 0.000000 255 255 255 255
-0.013829 -0.014148 0.000000 255 255 255 255
0.013828 -0.014148 0.000000 255 255 255 255
-0.011951 -0.015802 0.000000 255 255 255 255
0.011949 -0.015802 0.000000 255 255 255 255
-0.009871 -0.017207 0.000000 255 255 255 255
0.009869 -0.017207 0.000000 255 255 255 255
-0.007612 -0.018341 0.000000 255 255 255 255
0.007610 -0.018341 0.000000 255 255 255 255
-0.005199 -0.019179 0.000000 255 255 255 255
0.005197 -0.019179 0.000000 255 255 255 255
-0.002654 -0.019700 0.000000 255 255 255 255
0.002652 -0.019700 0.000000 255 255 255 255
-0.000001 -0.019878 0.000000 255 255 255 255
3 0 1 2
3 3 1 0
3 3 4 1
3 5 4 3
3 5 6 4
3 7 6 5
3 7 8 6
3 9 8 7
3 9 10 8
3 11 10 9
3 11 12 10
3 13 12 11
3 13 14 12
3 13 15 14
3 16 15 13
3 16 17 15
3 18 17 16
3 18 19 17
3 20 19 18
3 20 21 19
3 22 21 20
3 22 23 21
3 24 23 22
3 25 23 24
3 25 26 23
3 25 27 26
3 28 27 25
3 28 29 27
3 30 29 28
3 30 31 29
3 32 31 30
3 32 33 31
3 34 33 32
3 34 35 33
3 36 35 34
3 36 37 35
3 38 37 36
3 38 39 37
3 40 39 38
3 40 41 39
3 42 41 40
3 42 43 41
3 44 43 42
3 44 45 43
3 46 45 44
3 46 47 45
3 48 49 50
3 51 49 48
3 51 52 49
3 53 52 51
3 53 54 52
3 55 54 53
3 55 56 54
3 57 56 55
3 57 58 56
3 59 58 57
3 59 60 58
3 61 60 59
3 61 62 60
3 63 62 61
3 63 64 62
3 65 64 63
3 65 66 64
3 67 66 65
3 67 68 66
3 69 68 67
3 69 70 68
3 71 70 69
3 71 72 70
3 73 72 71
3 73 74 72
3 73 75 74
3 76 75 73
3 76 77 75
3 78 77 76
3 78 79 77
3 80 79 78
3 80 81 79
3 82 81 80
3 82 83 81
3 84 83 82
3 84 85 83
3 86 85 84
3 86 87 85
3 88 87 86
3 88 89 87
3 90 89 88
3 90 91 89
3 92 91 90
3 92 93 91
3 94 93 92
3 94 95 93
3 96 97 98
3 99 97 96
3 99 100 97
3 101 100 99
3 101 102 100
3 103 102 101
3 103 104 102
3 105 104 103
3 105 106 104
3 107 106 105
3 107 108 106
3 109 108 107
3 109 110 108
3 111 110 109
3 111 112 110
3 113 112 111
3 113 114 112
3 115 114 113
3 115 116 114
3 117 116 115
3 117 118 116
3 119 118 117
3 119 120 118
3 121 120 119
3 121 122 120
3 123 122 121
3 123 124 122
3 125 124 123
3 125 126 124
3 127 126 125
3 127 128 126
3 129 128 127
3 129 130 128
3 131 130 129
3 131 132 130
3 133 132 131
3 133 134 132
3 135 134 133
3 135 136 134
3 137 136 135
3 137 138 136
3 139 138 137
3 139 140 138
3 141 140 139
3 141 142 140
3 143 142 141

View File

@@ -0,0 +1,383 @@
ply
format ascii 1.0
comment Created by Blender 3.6.2 - www.blender.org
element vertex 185
property float x
property float y
property float z
property float nx
property float ny
property float nz
property float s
property float t
element face 183
property list uchar uint vertex_indices
end_header
0.244805 0.237729 0.000000 0.000000 0.000000 1.000000 0.869565 0.000000
0.247792 0.237865 0.000000 0.000000 0.000000 1.000000 0.880435 0.000000
0.246816 0.237865 0.000000 0.000000 0.000000 1.000000 0.875000 0.000000
0.250490 0.237865 0.000000 0.000000 0.000000 1.000000 0.885870 0.000000
0.254565 0.237865 0.000000 0.000000 0.000000 1.000000 0.891304 0.000000
0.259673 0.237865 0.000000 0.000000 0.000000 1.000000 0.896739 0.000000
0.265470 0.237865 0.000000 0.000000 0.000000 1.000000 0.902174 0.000000
0.271612 0.237865 0.000000 0.000000 0.000000 1.000000 0.907609 0.000000
0.277753 0.237865 0.000000 0.000000 0.000000 1.000000 0.913043 0.000000
0.283550 0.237865 0.000000 0.000000 0.000000 1.000000 0.918478 0.000000
0.288658 0.237865 0.000000 0.000000 0.000000 1.000000 0.923913 0.000000
0.292733 0.237865 0.000000 0.000000 0.000000 1.000000 0.929348 0.000000
0.295431 0.237865 0.000000 0.000000 0.000000 1.000000 0.934783 0.000000
0.296407 0.237865 0.000000 0.000000 0.000000 1.000000 0.940217 0.000000
0.298418 0.237729 0.000000 0.000000 0.000000 1.000000 0.945652 0.000000
-0.293734 0.236557 0.000000 0.000000 0.000000 1.000000 0.576087 0.000000
-0.279332 0.237646 0.000000 0.000000 0.000000 1.000000 0.586957 0.000000
-0.286613 0.237755 0.000000 0.000000 0.000000 1.000000 0.581522 0.000000
-0.016027 0.236557 0.000000 0.000000 0.000000 1.000000 0.711957 0.000000
-0.001625 0.237646 0.000000 0.000000 0.000000 1.000000 0.722826 0.000000
-0.008906 0.237755 0.000000 0.000000 0.000000 1.000000 0.717391 0.000000
0.242873 0.237332 0.000000 0.000000 0.000000 1.000000 0.864130 0.000000
0.300350 0.237332 0.000000 0.000000 0.000000 1.000000 0.951087 0.000000
-0.272077 0.236152 0.000000 0.000000 0.000000 1.000000 0.592391 0.000000
0.005630 0.236152 0.000000 0.000000 0.000000 1.000000 0.728261 0.000000
0.241040 0.236692 0.000000 0.000000 0.000000 1.000000 0.858696 0.000000
0.302183 0.236692 0.000000 0.000000 0.000000 1.000000 0.956522 0.000000
0.239323 0.235827 0.000000 0.000000 0.000000 1.000000 0.853261 0.000000
0.303901 0.235827 0.000000 0.000000 0.000000 1.000000 0.961957 0.000000
-0.300509 0.234131 0.000000 0.000000 0.000000 1.000000 0.570652 0.000000
-0.022801 0.234131 0.000000 0.000000 0.000000 1.000000 0.706522 0.000000
-0.265033 0.233194 0.000000 0.000000 0.000000 1.000000 0.597826 0.000000
0.012674 0.233194 0.000000 0.000000 0.000000 1.000000 0.733696 0.000000
0.237740 0.234756 0.000000 0.000000 0.000000 1.000000 0.847826 0.000000
0.305483 0.234756 0.000000 0.000000 0.000000 1.000000 0.967391 0.000000
0.236309 0.233496 0.000000 0.000000 0.000000 1.000000 0.842391 0.000000
0.306914 0.233496 0.000000 0.000000 0.000000 1.000000 0.972826 0.000000
-0.306751 0.230556 0.000000 0.000000 0.000000 1.000000 0.565217 0.000000
-0.029044 0.230556 0.000000 0.000000 0.000000 1.000000 0.701087 0.000000
0.235049 0.232066 0.000000 0.000000 0.000000 1.000000 0.836957 0.000000
0.308174 0.232066 0.000000 0.000000 0.000000 1.000000 0.978261 0.000000
-0.258388 0.228693 0.000000 0.000000 0.000000 1.000000 0.603261 0.000000
0.019320 0.228693 0.000000 0.000000 0.000000 1.000000 0.739130 0.000000
0.233978 0.230483 0.000000 0.000000 0.000000 1.000000 0.831522 0.000000
0.309245 0.230483 0.000000 0.000000 0.000000 1.000000 0.983696 0.000000
-0.312276 0.225911 0.000000 0.000000 0.000000 1.000000 0.559783 0.000000
-0.034569 0.225911 0.000000 0.000000 0.000000 1.000000 0.695652 0.000000
0.233113 0.228767 0.000000 0.000000 0.000000 1.000000 0.826087 0.000000
0.310110 0.228767 0.000000 0.000000 0.000000 1.000000 0.989130 0.000000
0.232473 0.226934 0.000000 0.000000 0.000000 1.000000 0.820652 0.000000
0.310750 0.226934 0.000000 0.000000 0.000000 1.000000 0.994565 0.000000
-0.254204 0.224903 0.000000 0.000000 0.000000 1.000000 0.608696 0.000000
0.023503 0.224903 0.000000 0.000000 0.000000 1.000000 0.744565 0.000000
0.232076 0.225002 0.000000 0.000000 0.000000 1.000000 0.815217 0.000000
0.311148 0.225002 0.000000 0.000000 0.000000 1.000000 1.000000 0.000000
-0.316897 0.220274 0.000000 0.000000 0.000000 1.000000 0.554348 0.000000
-0.039190 0.220274 0.000000 0.000000 0.000000 1.000000 0.690217 0.000000
0.231939 0.222991 0.000000 0.000000 0.000000 1.000000 0.809783 0.000000
0.311284 0.222991 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000
-0.242638 0.214425 0.000000 0.000000 0.000000 1.000000 0.614130 0.000000
0.035069 0.214425 0.000000 0.000000 0.000000 1.000000 0.750000 0.000000
0.231939 0.036074 0.000000 0.000000 0.000000 1.000000 0.804348 0.000000
0.311284 -0.223230 0.000000 0.000000 0.000000 1.000000 0.005435 0.000000
-0.320428 0.213724 0.000000 0.000000 0.000000 1.000000 0.548913 0.000000
-0.042720 0.213724 0.000000 0.000000 0.000000 1.000000 0.684783 0.000000
-0.225166 0.198596 0.000000 0.000000 0.000000 1.000000 0.619565 0.000000
0.052541 0.198596 0.000000 0.000000 0.000000 1.000000 0.755435 0.000000
-0.322682 0.206340 0.000000 0.000000 0.000000 1.000000 0.543478 0.000000
-0.044975 0.206340 0.000000 0.000000 0.000000 1.000000 0.679348 0.000000
-0.323475 0.198201 0.000000 0.000000 0.000000 1.000000 0.538043 0.000000
-0.045768 0.198201 0.000000 0.000000 0.000000 1.000000 0.673913 0.000000
-0.203264 0.178755 0.000000 0.000000 0.000000 1.000000 0.625000 0.000000
0.074443 0.178755 0.000000 0.000000 0.000000 1.000000 0.760870 0.000000
-0.323475 0.190397 0.000000 0.000000 0.000000 1.000000 0.532609 0.000000
-0.045768 0.036074 0.000000 0.000000 0.000000 1.000000 0.668478 0.000000
-0.323475 0.168820 0.000000 0.000000 0.000000 1.000000 0.527174 0.000000
-0.178409 0.156238 0.000000 0.000000 0.000000 1.000000 0.630435 0.000000
0.099298 0.156238 0.000000 0.000000 0.000000 1.000000 0.766304 0.000000
-0.323475 0.136226 0.000000 0.000000 0.000000 1.000000 0.521739 0.000000
-0.152078 0.132384 0.000000 0.000000 0.000000 1.000000 0.635870 0.000000
0.125629 0.132384 0.000000 0.000000 0.000000 1.000000 0.771739 0.000000
-0.323475 0.095368 0.000000 0.000000 0.000000 1.000000 0.516304 0.000000
-0.125747 0.108529 0.000000 0.000000 0.000000 1.000000 0.641304 0.000000
0.151961 0.108529 0.000000 0.000000 0.000000 1.000000 0.777174 0.000000
-0.100892 0.086012 0.000000 0.000000 0.000000 1.000000 0.646739 0.000000
0.176815 0.086012 0.000000 0.000000 0.000000 1.000000 0.782609 0.000000
-0.323475 0.049002 0.000000 0.000000 0.000000 1.000000 0.510870 0.000000
-0.078990 0.066171 0.000000 0.000000 0.000000 1.000000 0.652174 0.000000
0.198717 0.066171 0.000000 0.000000 0.000000 1.000000 0.788043 0.000000
-0.061518 0.050342 0.000000 0.000000 0.000000 1.000000 0.657609 0.000000
0.216189 0.050342 0.000000 0.000000 0.000000 1.000000 0.793478 0.000000
-0.049952 0.039864 0.000000 0.000000 0.000000 1.000000 0.663043 0.000000
0.227756 0.039864 0.000000 0.000000 0.000000 1.000000 0.798913 0.000000
-0.323475 -0.000119 0.000000 0.000000 0.000000 1.000000 0.505435 0.000000
0.231939 -0.034949 0.000000 0.000000 0.000000 1.000000 0.266304 0.000000
-0.323475 -0.049240 0.000000 0.000000 0.000000 1.000000 0.500000 0.000000
-0.045768 -0.034949 0.000000 0.000000 0.000000 1.000000 0.402174 0.000000
-0.258388 -0.228931 0.000000 0.000000 0.000000 1.000000 0.407609 0.000000
-0.045768 -0.038166 0.000000 0.000000 0.000000 1.000000 0.396739 0.000000
0.019320 -0.228931 0.000000 0.000000 0.000000 1.000000 0.271739 0.000000
0.231939 -0.038654 0.000000 0.000000 0.000000 1.000000 0.260870 0.000000
-0.045768 -0.047060 0.000000 0.000000 0.000000 1.000000 0.391304 0.000000
0.231939 -0.048896 0.000000 0.000000 0.000000 1.000000 0.255435 0.000000
-0.045768 -0.060495 0.000000 0.000000 0.000000 1.000000 0.385870 0.000000
0.231939 -0.064368 0.000000 0.000000 0.000000 1.000000 0.250000 0.000000
-0.323475 -0.095607 0.000000 0.000000 0.000000 1.000000 0.494565 0.000000
-0.045768 -0.077336 0.000000 0.000000 0.000000 1.000000 0.380435 0.000000
0.231939 -0.083763 0.000000 0.000000 0.000000 1.000000 0.244565 0.000000
-0.045768 -0.096447 0.000000 0.000000 0.000000 1.000000 0.375000 0.000000
0.231939 -0.105772 0.000000 0.000000 0.000000 1.000000 0.239130 0.000000
-0.323475 -0.136464 0.000000 0.000000 0.000000 1.000000 0.489130 0.000000
-0.045768 -0.116694 0.000000 0.000000 0.000000 1.000000 0.369565 0.000000
0.231939 -0.129089 0.000000 0.000000 0.000000 1.000000 0.233696 0.000000
-0.045768 -0.136941 0.000000 0.000000 0.000000 1.000000 0.364130 0.000000
0.231939 -0.152407 0.000000 0.000000 0.000000 1.000000 0.228261 0.000000
-0.323475 -0.169059 0.000000 0.000000 0.000000 1.000000 0.483696 0.000000
-0.045768 -0.156053 0.000000 0.000000 0.000000 1.000000 0.358696 0.000000
0.231939 -0.174416 0.000000 0.000000 0.000000 1.000000 0.222826 0.000000
-0.045768 -0.172894 0.000000 0.000000 0.000000 1.000000 0.353261 0.000000
-0.323475 -0.190635 0.000000 0.000000 0.000000 1.000000 0.478261 0.000000
-0.045768 -0.186329 0.000000 0.000000 0.000000 1.000000 0.347826 0.000000
0.231939 -0.193811 0.000000 0.000000 0.000000 1.000000 0.217391 0.000000
-0.045768 -0.195223 0.000000 0.000000 0.000000 1.000000 0.342391 0.000000
-0.323475 -0.198440 0.000000 0.000000 0.000000 1.000000 0.472826 0.000000
0.231939 -0.209283 0.000000 0.000000 0.000000 1.000000 0.211957 0.000000
-0.045768 -0.198440 0.000000 0.000000 0.000000 1.000000 0.336957 0.000000
-0.322682 -0.206581 0.000000 0.000000 0.000000 1.000000 0.467391 0.000000
-0.044975 -0.206581 0.000000 0.000000 0.000000 1.000000 0.331522 0.000000
-0.320428 -0.213971 0.000000 0.000000 0.000000 1.000000 0.461957 0.000000
-0.042720 -0.213971 0.000000 0.000000 0.000000 1.000000 0.326087 0.000000
0.231939 -0.219525 0.000000 0.000000 0.000000 1.000000 0.206522 0.000000
-0.316897 -0.220530 0.000000 0.000000 0.000000 1.000000 0.456522 0.000000
-0.039190 -0.220530 0.000000 0.000000 0.000000 1.000000 0.320652 0.000000
0.231939 -0.223230 0.000000 0.000000 0.000000 1.000000 0.201087 0.000000
-0.312276 -0.226177 0.000000 0.000000 0.000000 1.000000 0.451087 0.000000
-0.034569 -0.226177 0.000000 0.000000 0.000000 1.000000 0.315217 0.000000
0.232076 -0.225241 0.000000 0.000000 0.000000 1.000000 0.195652 0.000000
0.311148 -0.225241 0.000000 0.000000 0.000000 1.000000 0.010870 0.000000
0.232473 -0.227172 0.000000 0.000000 0.000000 1.000000 0.190217 0.000000
0.310750 -0.227172 0.000000 0.000000 0.000000 1.000000 0.016304 0.000000
-0.306751 -0.230832 0.000000 0.000000 0.000000 1.000000 0.445652 0.000000
-0.029044 -0.230832 0.000000 0.000000 0.000000 1.000000 0.309783 0.000000
0.233113 -0.229005 0.000000 0.000000 0.000000 1.000000 0.184783 0.000000
0.310110 -0.229005 0.000000 0.000000 0.000000 1.000000 0.021739 0.000000
-0.265033 -0.233459 0.000000 0.000000 0.000000 1.000000 0.413043 0.000000
0.012674 -0.233459 0.000000 0.000000 0.000000 1.000000 0.277174 0.000000
0.233978 -0.230722 0.000000 0.000000 0.000000 1.000000 0.179348 0.000000
0.309245 -0.230722 0.000000 0.000000 0.000000 1.000000 0.027174 0.000000
0.235049 -0.232304 0.000000 0.000000 0.000000 1.000000 0.173913 0.000000
0.308174 -0.232304 0.000000 0.000000 0.000000 1.000000 0.032609 0.000000
-0.300509 -0.234416 0.000000 0.000000 0.000000 1.000000 0.440217 0.000000
-0.022801 -0.234416 0.000000 0.000000 0.000000 1.000000 0.304348 0.000000
0.236309 -0.233734 0.000000 0.000000 0.000000 1.000000 0.168478 0.000000
0.306914 -0.233734 0.000000 0.000000 0.000000 1.000000 0.038043 0.000000
-0.272077 -0.236434 0.000000 0.000000 0.000000 1.000000 0.418478 0.000000
0.005630 -0.236434 0.000000 0.000000 0.000000 1.000000 0.282609 0.000000
0.237740 -0.234994 0.000000 0.000000 0.000000 1.000000 0.163043 0.000000
0.305483 -0.234994 0.000000 0.000000 0.000000 1.000000 0.043478 0.000000
-0.293734 -0.236848 0.000000 0.000000 0.000000 1.000000 0.434783 0.000000
-0.016027 -0.236848 0.000000 0.000000 0.000000 1.000000 0.298913 0.000000
0.239323 -0.236065 0.000000 0.000000 0.000000 1.000000 0.157609 0.000000
0.303901 -0.236065 0.000000 0.000000 0.000000 1.000000 0.048913 0.000000
0.241040 -0.236930 0.000000 0.000000 0.000000 1.000000 0.152174 0.000000
0.302183 -0.236930 0.000000 0.000000 0.000000 1.000000 0.054348 0.000000
-0.279332 -0.237937 0.000000 0.000000 0.000000 1.000000 0.423913 0.000000
-0.001625 -0.237937 0.000000 0.000000 0.000000 1.000000 0.288043 0.000000
-0.286613 -0.238049 0.000000 0.000000 0.000000 1.000000 0.429348 0.000000
-0.008906 -0.238049 0.000000 0.000000 0.000000 1.000000 0.293478 0.000000
0.242873 -0.237570 0.000000 0.000000 0.000000 1.000000 0.146739 0.000000
0.300350 -0.237570 0.000000 0.000000 0.000000 1.000000 0.059783 0.000000
0.244805 -0.237967 0.000000 0.000000 0.000000 1.000000 0.141304 0.000000
0.298418 -0.237967 0.000000 0.000000 0.000000 1.000000 0.065217 0.000000
0.246816 -0.238104 0.000000 0.000000 0.000000 1.000000 0.135870 0.000000
0.296407 -0.238104 0.000000 0.000000 0.000000 1.000000 0.070652 0.000000
0.247792 -0.238104 0.000000 0.721063 -0.692870 0.000000 0.130435 0.000000
0.250490 -0.238104 0.000000 0.724799 -0.688960 0.000000 0.125000 0.000000
0.254565 -0.238104 0.000000 0.730325 -0.683100 0.000000 0.119565 0.000000
0.259673 -0.238104 0.000000 0.737055 -0.675833 0.000000 0.114130 0.000000
0.265470 -0.238104 0.000000 0.744436 -0.667694 0.000000 0.108696 0.000000
0.271611 -0.238104 0.000000 0.751968 -0.659200 0.000000 0.103261 0.000000
0.277753 -0.238104 0.000000 0.759216 -0.650838 0.000000 0.097826 0.000000
0.283550 -0.238104 0.000000 0.765809 -0.643068 0.000000 0.092391 0.000000
0.288658 -0.238104 0.000000 0.771425 -0.636320 0.000000 0.086957 0.000000
0.292733 -0.238104 0.000000 0.775780 -0.631004 0.000000 0.081522 0.000000
0.295431 -0.238104 0.000000 0.778603 -0.627517 0.000000 0.076087 0.000000
3 0 1 2
3 0 3 1
3 0 4 3
3 0 5 4
3 0 6 5
3 0 7 6
3 0 8 7
3 0 9 8
3 0 10 9
3 0 11 10
3 0 12 11
3 0 13 12
3 0 14 13
3 15 16 17
3 18 19 20
3 21 14 0
3 21 22 14
3 15 23 16
3 18 24 19
3 25 22 21
3 25 26 22
3 27 26 25
3 27 28 26
3 29 23 15
3 30 24 18
3 29 31 23
3 30 32 24
3 33 28 27
3 33 34 28
3 35 34 33
3 35 36 34
3 37 31 29
3 38 32 30
3 39 36 35
3 39 40 36
3 37 41 31
3 38 42 32
3 43 40 39
3 43 44 40
3 45 41 37
3 46 42 38
3 47 44 43
3 47 48 44
3 49 48 47
3 49 50 48
3 45 51 41
3 46 52 42
3 53 50 49
3 53 54 50
3 55 51 45
3 56 52 46
3 57 54 53
3 57 58 54
3 55 59 51
3 56 60 52
3 61 58 57
3 61 62 58
3 63 59 55
3 64 60 56
3 63 65 59
3 64 66 60
3 67 65 63
3 68 66 64
3 69 65 67
3 70 66 68
3 69 71 65
3 70 72 66
3 73 71 69
3 74 72 70
3 75 71 73
3 75 76 71
3 74 77 72
3 78 76 75
3 78 79 76
3 74 80 77
3 81 79 78
3 81 82 79
3 74 83 80
3 81 84 82
3 74 85 83
3 86 84 81
3 86 87 84
3 74 88 85
3 86 89 87
3 74 90 88
3 86 91 89
3 74 92 90
3 93 91 86
3 93 74 91
3 74 61 92
3 93 61 74
3 93 94 61
3 94 62 61
3 95 96 93
3 96 94 93
3 95 97 96
3 98 94 96
3 98 99 94
3 100 62 94
3 101 99 98
3 102 62 100
3 103 99 101
3 104 62 102
3 105 97 95
3 106 99 103
3 107 62 104
3 108 99 106
3 109 62 107
3 110 97 105
3 111 99 108
3 112 62 109
3 113 99 111
3 114 62 112
3 115 97 110
3 116 99 113
3 117 62 114
3 118 99 116
3 119 97 115
3 120 99 118
3 121 62 117
3 122 99 120
3 123 97 119
3 124 62 121
3 125 99 122
3 126 97 123
3 127 99 125
3 128 97 126
3 129 99 127
3 130 62 124
3 131 97 128
3 132 99 129
3 133 62 130
3 134 97 131
3 135 99 132
3 136 62 133
3 136 137 62
3 138 137 136
3 138 139 137
3 140 97 134
3 141 99 135
3 142 139 138
3 142 143 139
3 140 144 97
3 141 145 99
3 146 143 142
3 146 147 143
3 148 147 146
3 148 149 147
3 150 144 140
3 151 145 141
3 152 149 148
3 152 153 149
3 150 154 144
3 151 155 145
3 156 153 152
3 156 157 153
3 158 154 150
3 159 155 151
3 160 157 156
3 160 161 157
3 162 161 160
3 162 163 161
3 158 164 154
3 159 165 155
3 166 164 158
3 167 165 159
3 168 163 162
3 168 169 163
3 170 169 168
3 170 171 169
3 172 171 170
3 172 173 171
3 174 173 172
3 175 173 174
3 176 173 175
3 177 173 176
3 178 173 177
3 179 173 178
3 180 173 179
3 181 173 180
3 182 173 181
3 183 173 182
3 184 173 183

View File

@@ -1,648 +1,50 @@
ply
format ascii 1.0
comment Created by Blender 2.91.2 - www.blender.org
element vertex 320
comment Created in Blender version 4.2.2 LTS
element vertex 18
property float x
property float y
property float z
element face 318
property float s
property float t
element face 20
property list uchar uint vertex_indices
end_header
-0.075364 0.080724 0.001667
0.096283 0.097068 0.001667
-0.075364 0.097068 0.001667
0.079936 0.080724 0.001667
0.096283 -0.074543 0.001667
0.079936 -0.074543 0.001667
-0.099885 -0.099059 0.001667
-0.083538 0.048037 0.001667
-0.099885 0.064381 0.001667
0.063589 0.064381 0.001667
0.047241 0.048037 0.001667
0.063589 -0.099059 0.001667
-0.083538 -0.082715 0.001667
0.047241 -0.082715 0.001667
0.002248 0.021272 0.001667
0.005256 0.021354 0.001667
0.004134 0.021399 0.001667
0.006351 0.021220 0.001667
0.000438 0.020903 0.001667
0.007418 0.021002 0.001667
0.008452 0.020704 0.001667
-0.001277 0.020307 0.001667
0.009452 0.020328 0.001667
0.010412 0.019878 0.001667
-0.002882 0.019501 0.001667
0.011331 0.019358 0.001667
-0.004361 0.018503 0.001667
0.012206 0.018773 0.001667
0.013032 0.018124 0.001667
-0.005696 0.017328 0.001667
0.013808 0.017417 0.001667
0.014529 0.016654 0.001667
-0.006871 0.015993 0.001667
0.015193 0.015839 0.001667
-0.007870 0.014515 0.001667
0.018036 0.015840 0.001667
0.020300 0.015738 0.001667
0.018036 0.015840 0.001667
0.018036 0.015840 0.001667
0.018036 0.015840 0.001667
0.018036 0.015840 0.001667
0.018036 0.015840 0.001667
0.018036 0.015840 0.001667
0.018036 0.015840 0.001667
0.018036 0.015839 0.001667
0.018036 0.015839 0.001667
0.018036 0.015839 0.001667
0.018036 0.015839 0.001667
0.018036 0.015839 0.001667
0.022471 0.015443 0.001667
0.024530 0.014966 0.001667
0.026456 0.014322 0.001667
-0.008676 0.012910 0.001667
0.028230 0.013523 0.001667
0.029832 0.012583 0.001667
-0.009271 0.011195 0.001667
0.004134 0.011670 0.001667
0.031243 0.011515 0.001667
0.003568 0.011632 0.001667
0.004700 0.011632 0.001667
0.003026 0.011521 0.001667
0.005242 0.011521 0.001667
0.002511 0.011342 0.001667
0.005757 0.011342 0.001667
0.032441 0.010333 0.001667
0.002029 0.011101 0.001667
0.006239 0.011101 0.001667
-0.009641 0.009386 0.001667
0.001586 0.010801 0.001667
0.006682 0.010801 0.001667
0.001185 0.010449 0.001667
0.007083 0.010449 0.001667
0.000833 0.010048 0.001667
0.007435 0.010048 0.001667
0.033408 0.009049 0.001667
0.000533 0.009605 0.001667
0.007735 0.009605 0.001667
0.000291 0.009123 0.001667
0.007977 0.009123 0.001667
-0.009768 0.007500 0.001667
0.000112 0.008609 0.001667
0.008156 0.008609 0.001667
0.034123 0.007677 0.001667
0.000001 0.008066 0.001667
0.008267 0.008066 0.001667
-0.000037 0.007500 0.001667
0.008305 0.007500 0.001667
0.034566 0.006229 0.001667
-0.009768 0.007428 0.001667
0.000001 0.006934 0.001667
0.008267 0.006934 0.001667
-0.009768 0.007230 0.001667
-0.009768 0.006930 0.001667
0.008156 0.006392 0.001667
0.000112 0.006392 0.001667
-0.009768 0.006555 0.001667
-0.009768 0.006129 0.001667
0.007977 0.005877 0.001667
0.000291 0.005877 0.001667
0.034719 0.004720 0.001667
-0.009768 0.005677 0.001667
0.007735 0.005396 0.001667
0.000533 0.005396 0.001667
-0.009768 0.005226 0.001667
0.007435 0.004952 0.001667
0.000833 0.004952 0.001667
-0.009768 0.004800 0.001667
0.007083 0.004552 0.001667
0.001185 0.004552 0.001667
-0.009768 0.004424 0.001667
0.018036 0.001941 0.001667
0.006682 0.004199 0.001667
0.001586 0.004199 0.001667
-0.009768 0.004125 0.001667
0.006239 0.003900 0.001667
0.002029 0.003900 0.001667
-0.009768 0.003927 0.001667
-0.009768 0.003855 0.001667
0.005757 0.003658 0.001667
0.002511 0.003658 0.001667
-0.074397 -0.046979 0.001667
0.005242 0.003479 0.001667
0.003026 0.003479 0.001667
0.004700 0.003368 0.001667
0.003568 0.003368 0.001667
0.004134 0.003330 0.001667
0.018036 0.001667 0.001667
0.018036 0.000911 0.001667
0.018036 -0.000231 0.001667
0.018036 -0.001663 0.001667
0.018036 -0.003288 0.001667
0.018036 -0.005009 0.001667
0.018036 -0.006730 0.001667
0.018036 -0.008355 0.001667
0.018036 -0.009787 0.001667
0.018036 -0.010929 0.001667
0.018036 -0.011685 0.001667
0.018036 -0.011959 0.001667
0.017829 -0.015695 0.001667
0.017222 -0.019311 0.001667
0.016238 -0.022783 0.001667
0.014898 -0.026090 0.001667
0.013226 -0.029209 0.001667
0.011243 -0.032119 0.001667
0.008971 -0.034798 0.001667
0.006432 -0.037223 0.001667
0.003650 -0.039373 0.001667
0.000646 -0.041226 0.001667
-0.047778 -0.045317 0.001667
-0.002558 -0.042759 0.001667
-0.005940 -0.043951 0.001667
-0.005799 -0.044332 0.001667
-0.014345 -0.045266 0.001667
-0.005409 -0.045386 0.001667
-0.014428 -0.045269 0.001667
-0.014193 -0.045678 0.001667
-0.014510 -0.045274 0.001667
-0.014592 -0.045279 0.001667
-0.014673 -0.045284 0.001667
-0.014755 -0.045290 0.001667
-0.014836 -0.045295 0.001667
-0.014918 -0.045301 0.001667
-0.015000 -0.045306 0.001667
-0.015082 -0.045310 0.001667
-0.015164 -0.045314 0.001667
-0.015246 -0.045316 0.001667
-0.015329 -0.045317 0.001667
-0.048194 -0.045525 0.001667
-0.031010 -0.045317 0.001667
-0.023293 -0.066183 0.001667
-0.022117 -0.045317 0.001667
-0.021986 -0.045671 0.001667
-0.004820 -0.046979 0.001667
-0.049343 -0.046099 0.001667
-0.021623 -0.046651 0.001667
-0.013772 -0.046815 0.001667
-0.051078 -0.046967 0.001667
-0.021076 -0.048131 0.001667
-0.013137 -0.048534 0.001667
-0.053254 -0.048054 0.001667
-0.004082 -0.048975 0.001667
-0.074558 -0.047105 0.001667
-0.074713 -0.047236 0.001667
-0.074863 -0.047373 0.001667
-0.075007 -0.047515 0.001667
-0.075145 -0.047663 0.001667
-0.075278 -0.047815 0.001667
-0.075405 -0.047973 0.001667
-0.075525 -0.048136 0.001667
-0.055723 -0.049288 0.001667
-0.020390 -0.049987 0.001667
-0.075640 -0.048303 0.001667
-0.075747 -0.048475 0.001667
-0.075849 -0.048651 0.001667
-0.012340 -0.050688 0.001667
-0.075943 -0.048831 0.001667
-0.076031 -0.049015 0.001667
-0.003244 -0.051240 0.001667
-0.076111 -0.049202 0.001667
-0.076184 -0.049391 0.001667
-0.058338 -0.050596 0.001667
-0.076249 -0.049583 0.001667
-0.076307 -0.049777 0.001667
-0.076357 -0.049973 0.001667
-0.076400 -0.050171 0.001667
-0.019611 -0.052093 0.001667
-0.076435 -0.050370 0.001667
-0.076463 -0.050571 0.001667
-0.076482 -0.050773 0.001667
-0.060954 -0.051903 0.001667
-0.011436 -0.053133 0.001667
-0.076494 -0.050975 0.001667
-0.076498 -0.051179 0.001667
-0.076415 -0.052124 0.001667
-0.002357 -0.053640 0.001667
-0.063423 -0.053138 0.001667
-0.018786 -0.054323 0.001667
-0.076178 -0.053003 0.001667
-0.075802 -0.053804 0.001667
-0.010478 -0.055724 0.001667
-0.065599 -0.054225 0.001667
-0.001469 -0.056039 0.001667
-0.075304 -0.054518 0.001667
-0.067334 -0.055093 0.001667
-0.017961 -0.056554 0.001667
-0.074700 -0.055135 0.001667
-0.068483 -0.055667 0.001667
-0.074008 -0.055644 0.001667
-0.073242 -0.056036 0.001667
-0.068899 -0.055875 0.001667
-0.009520 -0.058314 0.001667
-0.069782 -0.056223 0.001667
-0.072421 -0.056300 0.001667
-0.000631 -0.058304 0.001667
-0.070674 -0.056404 0.001667
-0.071559 -0.056426 0.001667
-0.017183 -0.058660 0.001667
0.000107 -0.060300 0.001667
-0.008616 -0.060759 0.001667
-0.016497 -0.060516 0.001667
0.000696 -0.061893 0.001667
-0.015949 -0.061996 0.001667
-0.007819 -0.062913 0.001667
0.001086 -0.062947 0.001667
-0.015587 -0.062976 0.001667
-0.007184 -0.064632 0.001667
0.001227 -0.063328 0.001667
-0.015456 -0.063330 0.001667
0.001306 -0.063600 0.001667
-0.015377 -0.063602 0.001667
0.001347 -0.063874 0.001667
-0.015336 -0.063876 0.001667
0.001351 -0.064147 0.001667
-0.015332 -0.064149 0.001667
0.001320 -0.064414 0.001667
-0.015363 -0.064416 0.001667
0.001255 -0.064674 0.001667
-0.015428 -0.064676 0.001667
-0.006763 -0.065769 0.001667
0.001158 -0.064922 0.001667
-0.015525 -0.064924 0.001667
0.001030 -0.065156 0.001667
-0.015653 -0.065158 0.001667
0.000873 -0.065373 0.001667
-0.015810 -0.065375 0.001667
0.000688 -0.065568 0.001667
-0.015995 -0.065571 0.001667
0.000476 -0.065740 0.001667
-0.016206 -0.065742 0.001667
0.000240 -0.065885 0.001667
-0.016442 -0.065887 0.001667
-0.006611 -0.066181 0.001667
-0.000019 -0.066000 0.001667
-0.016702 -0.066002 0.001667
-0.000096 -0.066028 0.001667
-0.016779 -0.066030 0.001667
-0.000310 -0.066106 0.001667
-0.016992 -0.066108 0.001667
-0.000632 -0.066223 0.001667
-0.017314 -0.066225 0.001667
-0.006496 -0.066440 0.001667
-0.023178 -0.066442 0.001667
-0.001035 -0.066370 0.001667
-0.017718 -0.066372 0.001667
-0.001493 -0.066537 0.001667
-0.018176 -0.066539 0.001667
-0.006351 -0.066676 0.001667
-0.023033 -0.066678 0.001667
-0.001979 -0.066713 0.001667
-0.018661 -0.066715 0.001667
-0.006179 -0.066888 0.001667
-0.022861 -0.066890 0.001667
-0.002464 -0.066890 0.001667
-0.019146 -0.066892 0.001667
-0.005983 -0.067073 0.001667
-0.022665 -0.067075 0.001667
-0.002922 -0.067057 0.001667
-0.019604 -0.067059 0.001667
-0.003326 -0.067204 0.001667
-0.020008 -0.067206 0.001667
-0.005766 -0.067230 0.001667
-0.022449 -0.067232 0.001667
-0.003648 -0.067321 0.001667
-0.020330 -0.067323 0.001667
-0.005532 -0.067358 0.001667
-0.022215 -0.067360 0.001667
-0.003861 -0.067399 0.001667
-0.020543 -0.067401 0.001667
-0.005284 -0.067455 0.001667
-0.021966 -0.067457 0.001667
-0.003938 -0.067427 0.001667
-0.020620 -0.067429 0.001667
-0.004210 -0.067506 0.001667
-0.020893 -0.067508 0.001667
-0.005024 -0.067519 0.001667
-0.021707 -0.067521 0.001667
-0.004484 -0.067546 0.001667
-0.021167 -0.067548 0.001667
-0.004757 -0.067551 0.001667
-0.021439 -0.067553 0.001667
-0.11977417 0.06797172 0 0.05882353 0
-0.08921936 0.08527437 0 0.47058824 0
-0.09253149 0.091741174 0 0 0
0.118126765 0.091741174 0 0.4117647 0
0.11171061 0.08527437 0 0.5294118 0
0.118126765 -0.07195778 0 0.3529412 0
-0.10799964 0.06797172 0 0.7647059 0
0.11171061 -0.06849031 0 0.5882353 0
-0.1199129 -0.09180902 0 0.1764706 0
-0.1199129 0.06797172 0 0.11764706 0
-0.10215573 0.050218314 0 0.8235294 0
0.0931731 0.06797172 0 0.7058824 0
0.075415924 0.050218314 0 0.88235295 0
0.0931731 -0.08281095 0 0.64705884 0
-0.10215573 -0.0740556 0 1 0
0.075415924 -0.0740556 0 0.9411765 0
0.0931731 -0.091652974 0 0.29411766 0
0.0931731 -0.09180902 0 0.23529412 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 7 10 9
3 10 11 9
3 6 12 7
3 13 11 10
3 6 13 12
3 6 11 13
3 14 15 16
3 14 17 15
3 18 17 14
3 18 19 17
3 18 20 19
3 21 20 18
3 21 22 20
3 21 23 22
3 24 23 21
3 24 25 23
3 26 25 24
3 26 27 25
3 26 28 27
3 29 28 26
3 29 30 28
3 29 31 30
3 32 31 29
3 32 33 31
3 34 33 32
3 35 36 37
3 38 36 35
3 39 36 38
3 40 36 39
3 41 36 40
3 42 36 41
3 43 36 42
3 44 36 43
3 45 36 44
3 46 36 45
3 47 36 46
3 48 36 47
3 34 48 33
3 34 36 48
3 34 49 36
3 34 50 49
3 34 51 50
3 52 51 34
3 52 53 51
3 52 54 53
3 55 54 52
3 55 56 54
3 56 57 54
3 55 58 56
3 59 57 56
3 55 60 58
3 61 57 59
3 55 62 60
3 63 57 61
3 63 64 57
3 55 65 62
3 66 64 63
3 67 65 55
3 67 68 65
3 69 64 66
3 67 70 68
3 71 64 69
3 67 72 70
3 73 64 71
3 73 74 64
3 67 75 72
3 76 74 73
3 67 77 75
3 78 74 76
3 79 77 67
3 79 80 77
3 81 74 78
3 81 82 74
3 79 83 80
3 84 82 81
3 79 85 83
3 86 82 84
3 86 87 82
3 88 85 79
3 88 89 85
3 90 87 86
3 91 89 88
3 92 89 91
3 93 87 90
3 92 94 89
3 95 94 92
3 96 94 95
3 97 87 93
3 96 98 94
3 97 99 87
3 100 98 96
3 101 99 97
3 100 102 98
3 103 102 100
3 104 99 101
3 103 105 102
3 106 105 103
3 107 99 104
3 106 108 105
3 109 108 106
3 107 110 99
3 111 110 107
3 109 112 108
3 113 112 109
3 114 110 111
3 113 115 112
3 116 115 113
3 117 115 116
3 118 110 114
3 117 119 115
3 120 119 117
3 121 110 118
3 120 122 119
3 123 110 121
3 120 124 122
3 125 110 123
3 120 125 124
3 120 110 125
3 120 126 110
3 120 127 126
3 120 128 127
3 120 129 128
3 120 130 129
3 120 131 130
3 120 132 131
3 120 133 132
3 120 134 133
3 120 135 134
3 120 136 135
3 120 137 136
3 120 138 137
3 120 139 138
3 120 140 139
3 120 141 140
3 120 142 141
3 120 143 142
3 120 144 143
3 120 145 144
3 120 146 145
3 120 147 146
3 120 148 147
3 148 149 147
3 148 150 149
3 148 151 150
3 148 152 151
3 152 153 151
3 148 154 152
3 155 153 152
3 148 156 154
3 148 157 156
3 148 158 157
3 148 159 158
3 148 160 159
3 148 161 160
3 148 162 161
3 148 163 162
3 148 164 163
3 148 165 164
3 148 166 165
3 120 167 148
3 168 166 148
3 169 170 168
3 170 166 168
3 169 171 170
3 155 172 153
3 120 173 167
3 169 174 171
3 175 172 155
3 120 176 173
3 169 177 174
3 178 172 175
3 120 179 176
3 178 180 172
3 181 179 120
3 182 179 181
3 183 179 182
3 184 179 183
3 185 179 184
3 186 179 185
3 187 179 186
3 188 179 187
3 188 189 179
3 169 190 177
3 191 189 188
3 192 189 191
3 193 189 192
3 194 180 178
3 195 189 193
3 196 189 195
3 194 197 180
3 198 189 196
3 199 189 198
3 199 200 189
3 201 200 199
3 202 200 201
3 203 200 202
3 204 200 203
3 169 205 190
3 206 200 204
3 207 200 206
3 208 200 207
3 208 209 200
3 210 197 194
3 211 209 208
3 212 209 211
3 213 209 212
3 210 214 197
3 213 215 209
3 169 216 205
3 217 215 213
3 218 215 217
3 219 214 210
3 218 220 215
3 219 221 214
3 222 220 218
3 222 223 220
3 169 224 216
3 225 223 222
3 225 226 223
3 227 226 225
3 228 226 227
3 228 229 226
3 230 221 219
3 228 231 229
3 232 231 228
3 230 233 221
3 232 234 231
3 235 234 232
3 169 236 224
3 230 237 233
3 238 237 230
3 169 239 236
3 238 240 237
3 169 241 239
3 242 240 238
3 242 243 240
3 169 244 241
3 245 243 242
3 245 246 243
3 169 247 244
3 245 248 246
3 169 249 247
3 245 250 248
3 169 251 249
3 245 252 250
3 169 253 251
3 245 254 252
3 169 255 253
3 245 256 254
3 169 257 255
3 258 256 245
3 258 259 256
3 169 260 257
3 258 261 259
3 169 262 260
3 258 263 261
3 169 264 262
3 258 265 263
3 169 266 264
3 258 267 265
3 169 268 266
3 258 269 267
3 169 270 268
3 271 269 258
3 271 272 269
3 169 273 270
3 271 274 272
3 169 275 273
3 271 276 274
3 169 277 275
3 271 278 276
3 169 279 277
3 280 278 271
3 281 279 169
3 280 282 278
3 281 283 279
3 280 284 282
3 281 285 283
3 286 284 280
3 287 285 281
3 286 288 284
3 287 289 285
3 290 288 286
3 291 289 287
3 290 292 288
3 291 293 289
3 294 292 290
3 295 293 291
3 294 296 292
3 295 297 293
3 294 298 296
3 295 299 297
3 300 298 294
3 301 299 295
3 300 302 298
3 301 303 299
3 304 302 300
3 305 303 301
3 304 306 302
3 305 307 303
3 308 306 304
3 309 307 305
3 308 310 306
3 309 311 307
3 308 312 310
3 309 313 311
3 314 312 308
3 315 313 309
3 314 316 312
3 315 317 313
3 318 316 314
3 319 317 315
3 1 3 2
3 1 4 3
3 4 5 3
3 0 6 1
3 7 5 4
3 8 0 9
3 8 6 0
3 8 10 6
3 10 11 6
3 10 12 11
3 12 13 11
3 8 14 10
3 15 13 12
3 13 5 7
3 13 16 5
3 8 15 14
3 8 13 15
3 8 16 13
3 8 17 16

607
rsc/mesh/icon_magnet.ply Normal file
View File

@@ -0,0 +1,607 @@
ply
format ascii 1.0
comment Created by Blender 3.6.2 - www.blender.org
element vertex 302
property float x
property float y
property float z
property float nx
property float ny
property float nz
property float s
property float t
element face 290
property list uchar uint vertex_indices
end_header
-0.007533 0.129787 0.000000 0.000000 0.000000 1.000000 0.232558 0.000000
-0.005399 0.129663 0.000000 0.000000 0.000000 1.000000 0.225914 0.000000
-0.006301 0.130781 0.000000 0.000000 0.000000 1.000000 0.229236 0.000000
-0.011014 0.126977 0.000000 0.000000 0.000000 1.000000 0.235880 0.000000
-0.002908 0.126571 0.000000 0.000000 0.000000 1.000000 0.222591 0.000000
-0.016421 0.122611 0.000000 0.000000 0.000000 1.000000 0.239203 0.000000
0.000856 0.121901 0.000000 0.000000 0.000000 1.000000 0.219269 0.000000
0.050520 0.123496 0.000000 0.000000 0.000000 1.000000 0.956811 0.000000
0.087661 0.113801 0.000000 0.000000 0.000000 1.000000 0.950166 0.000000
0.086803 0.126056 0.000000 0.000000 0.000000 1.000000 0.953488 0.000000
0.051378 0.111241 0.000000 0.000000 0.000000 1.000000 0.960133 0.000000
-0.023433 0.116948 0.000000 0.000000 0.000000 1.000000 0.242525 0.000000
0.005574 0.116046 0.000000 0.000000 0.000000 1.000000 0.215947 0.000000
-0.031724 0.110247 0.000000 0.000000 0.000000 1.000000 0.245847 0.000000
0.010928 0.109402 0.000000 0.000000 0.000000 1.000000 0.212625 0.000000
-0.040974 0.102768 0.000000 0.000000 0.000000 1.000000 0.249169 0.000000
0.016601 0.102363 0.000000 0.000000 0.000000 1.000000 0.209302 0.000000
-0.050860 0.094770 0.000000 0.000000 0.000000 1.000000 0.252492 0.000000
0.022273 0.095324 0.000000 0.000000 0.000000 1.000000 0.205980 0.000000
0.027627 0.088680 0.000000 0.000000 0.000000 1.000000 0.202658 0.000000
-0.061057 0.086512 0.000000 0.000000 0.000000 1.000000 0.255814 0.000000
0.032345 0.082826 0.000000 0.000000 0.000000 1.000000 0.199336 0.000000
0.111291 0.051246 0.000000 0.000000 0.000000 1.000000 0.963455 0.000000
0.125918 0.086745 0.000000 0.000000 0.000000 1.000000 0.970100 0.000000
0.113647 0.087548 0.000000 0.000000 0.000000 1.000000 0.973422 0.000000
0.123562 0.050456 0.000000 0.000000 0.000000 1.000000 0.966777 0.000000
-0.071245 0.078253 0.000000 0.000000 0.000000 1.000000 0.259136 0.000000
-0.027234 0.084757 0.000000 0.000000 0.000000 1.000000 0.627907 0.000000
-0.031745 0.081099 0.000000 0.000000 0.000000 1.000000 0.624585 0.000000
-0.026900 0.084328 0.000000 0.000000 0.000000 1.000000 0.631229 0.000000
-0.025976 0.083144 0.000000 0.000000 0.000000 1.000000 0.634551 0.000000
-0.024580 0.081355 0.000000 0.000000 0.000000 1.000000 0.637874 0.000000
0.036109 0.078155 0.000000 0.000000 0.000000 1.000000 0.196013 0.000000
-0.022831 0.079112 0.000000 0.000000 0.000000 1.000000 0.641196 0.000000
-0.036434 0.077297 0.000000 0.000000 0.000000 1.000000 0.621262 0.000000
-0.020845 0.076567 0.000000 0.000000 0.000000 1.000000 0.644518 0.000000
-0.081100 0.070253 0.000000 0.000000 0.000000 1.000000 0.262458 0.000000
0.038601 0.075063 0.000000 0.000000 0.000000 1.000000 0.192691 0.000000
-0.041260 0.073383 0.000000 0.000000 0.000000 1.000000 0.617940 0.000000
-0.018742 0.073870 0.000000 0.000000 0.000000 1.000000 0.647841 0.000000
0.039502 0.073945 0.000000 0.000000 0.000000 1.000000 0.189369 0.000000
0.038591 0.073213 0.000000 0.000000 0.000000 1.000000 0.186047 0.000000
-0.016639 0.071174 0.000000 0.000000 0.000000 1.000000 0.651163 0.000000
-0.046182 0.069390 0.000000 0.000000 0.000000 1.000000 0.614618 0.000000
0.035958 0.071094 0.000000 0.000000 0.000000 1.000000 0.182724 0.000000
-0.014653 0.068628 0.000000 0.000000 0.000000 1.000000 0.654485 0.000000
0.031754 0.067708 0.000000 0.000000 0.000000 1.000000 0.179402 0.000000
-0.090298 0.062771 0.000000 0.000000 0.000000 1.000000 0.265781 0.000000
-0.051160 0.065350 0.000000 0.000000 0.000000 1.000000 0.611296 0.000000
-0.012904 0.066386 0.000000 0.000000 0.000000 1.000000 0.657807 0.000000
0.026130 0.063174 0.000000 0.000000 0.000000 1.000000 0.176080 0.000000
-0.011508 0.064596 0.000000 0.000000 0.000000 1.000000 0.661130 0.000000
-0.056153 0.061295 0.000000 0.000000 0.000000 1.000000 0.607973 0.000000
-0.010584 0.063412 0.000000 0.000000 0.000000 1.000000 0.664452 0.000000
-0.010250 0.062984 0.000000 0.000000 0.000000 1.000000 0.667774 0.000000
0.019234 0.057609 0.000000 0.000000 0.000000 1.000000 0.172757 0.000000
-0.014008 0.059940 0.000000 0.000000 0.000000 1.000000 0.671096 0.000000
-0.098519 0.056066 0.000000 0.000000 0.000000 1.000000 0.269103 0.000000
-0.061121 0.057259 0.000000 0.000000 0.000000 1.000000 0.604651 0.000000
-0.017960 0.056737 0.000000 0.000000 0.000000 1.000000 0.674419 0.000000
0.011219 0.051134 0.000000 0.000000 0.000000 1.000000 0.169435 0.000000
-0.066023 0.053273 0.000000 0.000000 0.000000 1.000000 0.601329 0.000000
-0.022099 0.053380 0.000000 0.000000 0.000000 1.000000 0.677741 0.000000
-0.106740 0.048827 0.000000 0.000000 0.000000 1.000000 0.272425 0.000000
-0.026416 0.049876 0.000000 0.000000 0.000000 1.000000 0.681063 0.000000
-0.070819 0.049370 0.000000 0.000000 0.000000 1.000000 0.598007 0.000000
0.002235 0.043865 0.000000 0.000000 0.000000 1.000000 0.166113 0.000000
-0.030903 0.046232 0.000000 0.000000 0.000000 1.000000 0.684385 0.000000
-0.075468 0.045583 0.000000 0.000000 0.000000 1.000000 0.594684 0.000000
-0.113875 0.041492 0.000000 0.000000 0.000000 1.000000 0.275748 0.000000
-0.035550 0.042455 0.000000 0.000000 0.000000 1.000000 0.687708 0.000000
-0.079930 0.041945 0.000000 0.000000 0.000000 1.000000 0.591362 0.000000
-0.007569 0.035923 0.000000 0.000000 0.000000 1.000000 0.162791 0.000000
-0.040350 0.038550 0.000000 0.000000 0.000000 1.000000 0.691030 0.000000
-0.084164 0.038487 0.000000 0.000000 0.000000 1.000000 0.588040 0.000000
-0.119995 0.034109 0.000000 0.000000 0.000000 1.000000 0.279070 0.000000
0.000169 -0.052404 0.000000 0.000000 0.000000 1.000000 0.029900 0.000000
0.075529 0.038158 0.000000 0.000000 0.000000 1.000000 0.465116 0.000000
0.074409 0.039059 0.000000 0.000000 0.000000 1.000000 0.026578 0.000000
-0.045294 0.034524 0.000000 0.000000 0.000000 1.000000 0.694352 0.000000
-0.089537 0.033832 0.000000 0.000000 0.000000 1.000000 0.584718 0.000000
0.078626 0.035667 0.000000 0.000000 0.000000 1.000000 0.461794 0.000000
-0.018042 0.027426 0.000000 0.000000 0.000000 1.000000 0.159468 0.000000
0.083304 0.031904 0.000000 0.000000 0.000000 1.000000 0.458472 0.000000
-0.050373 0.030383 0.000000 0.000000 0.000000 1.000000 0.697674 0.000000
-0.125169 0.026725 0.000000 0.000000 0.000000 1.000000 0.282392 0.000000
-0.094466 0.029007 0.000000 0.000000 0.000000 1.000000 0.581395 0.000000
0.089169 0.027187 0.000000 0.000000 0.000000 1.000000 0.455150 0.000000
-0.055579 0.026135 0.000000 0.000000 0.000000 1.000000 0.700997 0.000000
-0.098945 0.024023 0.000000 0.000000 0.000000 1.000000 0.578073 0.000000
-0.029033 0.018492 0.000000 0.000000 0.000000 1.000000 0.156146 0.000000
0.095824 0.021834 0.000000 0.000000 0.000000 1.000000 0.451827 0.000000
-0.129470 0.019389 0.000000 0.000000 0.000000 1.000000 0.285714 0.000000
-0.060902 0.021785 0.000000 0.000000 0.000000 1.000000 0.704319 0.000000
-0.102972 0.018887 0.000000 0.000000 0.000000 1.000000 0.574751 0.000000
0.102874 0.016163 0.000000 0.000000 0.000000 1.000000 0.448505 0.000000
-0.066336 0.017340 0.000000 0.000000 0.000000 1.000000 0.707641 0.000000
-0.132968 0.012147 0.000000 0.000000 0.000000 1.000000 0.289037 0.000000
-0.106541 0.013607 0.000000 0.000000 0.000000 1.000000 0.571429 0.000000
-0.040391 0.009240 0.000000 0.000000 0.000000 1.000000 0.152824 0.000000
-0.071072 0.013102 0.000000 0.000000 0.000000 1.000000 0.710963 0.000000
0.063472 -0.010424 0.000000 0.000000 0.000000 1.000000 0.906977 0.000000
0.109924 0.010491 0.000000 0.000000 0.000000 1.000000 0.445183 0.000000
-0.109648 0.008192 0.000000 0.000000 0.000000 1.000000 0.568106 0.000000
-0.075258 0.008590 0.000000 0.000000 0.000000 1.000000 0.714286 0.000000
-0.135733 0.005048 0.000000 0.000000 0.000000 1.000000 0.292359 0.000000
0.116579 0.005138 0.000000 0.000000 0.000000 1.000000 0.441860 0.000000
-0.051967 -0.000212 0.000000 0.000000 0.000000 1.000000 0.149502 0.000000
-0.078887 0.003829 0.000000 0.000000 0.000000 1.000000 0.717608 0.000000
-0.112288 0.002650 0.000000 0.000000 0.000000 1.000000 0.564784 0.000000
0.122444 0.000421 0.000000 0.000000 0.000000 1.000000 0.438538 0.000000
-0.137837 -0.001862 0.000000 0.000000 0.000000 1.000000 0.295681 0.000000
-0.081950 -0.001152 0.000000 0.000000 0.000000 1.000000 0.720930 0.000000
-0.114459 -0.003011 0.000000 0.000000 0.000000 1.000000 0.561462 0.000000
0.127122 -0.003342 0.000000 0.000000 0.000000 1.000000 0.435216 0.000000
-0.055834 -0.003730 0.000000 0.000000 0.000000 1.000000 0.146179 0.000000
-0.084439 -0.006328 0.000000 0.000000 0.000000 1.000000 0.724252 0.000000
-0.139350 -0.008535 0.000000 0.000000 0.000000 1.000000 0.299003 0.000000
-0.116154 -0.008781 0.000000 0.000000 0.000000 1.000000 0.558140 0.000000
0.130219 -0.005833 0.000000 0.000000 0.000000 1.000000 0.431894 0.000000
-0.058958 -0.007294 0.000000 0.000000 0.000000 1.000000 0.142857 0.000000
0.131339 -0.006734 0.000000 0.000000 0.000000 1.000000 0.428571 0.000000
-0.086346 -0.011672 0.000000 0.000000 0.000000 1.000000 0.727575 0.000000
0.130343 -0.007967 0.000000 0.000000 0.000000 1.000000 0.425249 0.000000
-0.061406 -0.010868 0.000000 0.000000 0.000000 1.000000 0.139535 0.000000
0.127530 -0.011450 0.000000 0.000000 0.000000 1.000000 0.421927 0.000000
-0.140343 -0.014923 0.000000 0.000000 0.000000 1.000000 0.302326 0.000000
-0.117371 -0.014653 0.000000 0.000000 0.000000 1.000000 0.554817 0.000000
0.062573 -0.011532 0.000000 0.000000 0.000000 1.000000 0.903654 0.000000
0.084882 -0.028044 0.000000 0.000000 0.000000 1.000000 0.910299 0.000000
-0.063242 -0.014421 0.000000 0.000000 0.000000 1.000000 0.136213 0.000000
0.123158 -0.016861 0.000000 0.000000 0.000000 1.000000 0.418605 0.000000
0.060088 -0.014594 0.000000 0.000000 0.000000 1.000000 0.900332 0.000000
-0.087664 -0.017156 0.000000 0.000000 0.000000 1.000000 0.730897 0.000000
-0.064531 -0.017920 0.000000 0.000000 0.000000 1.000000 0.132890 0.000000
0.056333 -0.019220 0.000000 0.000000 0.000000 1.000000 0.897010 0.000000
-0.118104 -0.020618 0.000000 0.000000 0.000000 1.000000 0.551495 0.000000
-0.140887 -0.020979 0.000000 0.000000 0.000000 1.000000 0.305648 0.000000
0.117486 -0.023875 0.000000 0.000000 0.000000 1.000000 0.415282 0.000000
-0.088384 -0.022755 0.000000 0.000000 0.000000 1.000000 0.734219 0.000000
-0.065340 -0.021331 0.000000 0.000000 0.000000 1.000000 0.129568 0.000000
0.051626 -0.025018 0.000000 0.000000 0.000000 1.000000 0.893688 0.000000
-0.118349 -0.026669 0.000000 0.000000 0.000000 1.000000 0.548173 0.000000
-0.141053 -0.026655 0.000000 0.000000 0.000000 1.000000 0.308970 0.000000
-0.065733 -0.024622 0.000000 0.000000 0.000000 1.000000 0.126246 0.000000
-0.088499 -0.028442 0.000000 0.000000 0.000000 1.000000 0.737542 0.000000
0.110775 -0.032171 0.000000 0.000000 0.000000 1.000000 0.411960 0.000000
-0.065775 -0.027760 0.000000 0.000000 0.000000 1.000000 0.122924 0.000000
0.046284 -0.031598 0.000000 0.000000 0.000000 1.000000 0.890365 0.000000
-0.139942 -0.041548 0.000000 0.000000 0.000000 1.000000 0.312292 0.000000
-0.117442 -0.038437 0.000000 0.000000 0.000000 1.000000 0.544850 0.000000
-0.065533 -0.030711 0.000000 0.000000 0.000000 1.000000 0.119601 0.000000
0.081247 -0.032538 0.000000 0.000000 0.000000 1.000000 0.913621 0.000000
-0.088000 -0.034189 0.000000 0.000000 0.000000 1.000000 0.740864 0.000000
-0.065071 -0.033444 0.000000 0.000000 0.000000 1.000000 0.116279 0.000000
0.040626 -0.038570 0.000000 0.000000 0.000000 1.000000 0.887043 0.000000
0.103284 -0.041424 0.000000 0.000000 0.000000 1.000000 0.408638 0.000000
0.077470 -0.037203 0.000000 0.000000 0.000000 1.000000 0.916944 0.000000
-0.064454 -0.035925 0.000000 0.000000 0.000000 1.000000 0.112957 0.000000
-0.086880 -0.039971 0.000000 0.000000 0.000000 1.000000 0.744186 0.000000
-0.063748 -0.038120 0.000000 0.000000 0.000000 1.000000 0.109635 0.000000
0.073585 -0.042000 0.000000 0.000000 0.000000 1.000000 0.920266 0.000000
-0.062089 -0.042090 0.000000 0.000000 0.000000 1.000000 0.106312 0.000000
-0.114819 -0.049952 0.000000 0.000000 0.000000 1.000000 0.541528 0.000000
0.034967 -0.045541 0.000000 0.000000 0.000000 1.000000 0.883721 0.000000
-0.085131 -0.045759 0.000000 0.000000 0.000000 1.000000 0.747508 0.000000
0.095272 -0.051312 0.000000 0.000000 0.000000 1.000000 0.405316 0.000000
-0.136725 -0.056045 0.000000 0.000000 0.000000 1.000000 0.315615 0.000000
0.069622 -0.046889 0.000000 0.000000 0.000000 1.000000 0.923588 0.000000
-0.060038 -0.045865 0.000000 0.000000 0.000000 1.000000 0.102990 0.000000
0.029625 -0.052121 0.000000 0.000000 0.000000 1.000000 0.880399 0.000000
-0.082561 -0.051916 0.000000 0.000000 0.000000 1.000000 0.750831 0.000000
-0.057633 -0.049417 0.000000 0.000000 0.000000 1.000000 0.099668 0.000000
0.065614 -0.051831 0.000000 0.000000 0.000000 1.000000 0.926910 0.000000
-0.054911 -0.052716 0.000000 0.000000 0.000000 1.000000 0.096346 0.000000
-0.110626 -0.061066 0.000000 0.000000 0.000000 1.000000 0.538206 0.000000
0.087000 -0.061511 0.000000 0.000000 0.000000 1.000000 0.401993 0.000000
0.061591 -0.056786 0.000000 0.000000 0.000000 1.000000 0.930233 0.000000
-0.079388 -0.057745 0.000000 0.000000 0.000000 1.000000 0.754153 0.000000
0.024918 -0.057920 0.000000 0.000000 0.000000 1.000000 0.877076 0.000000
-0.001767 -0.054660 0.000000 0.000000 0.000000 1.000000 0.033223 0.000000
-0.051910 -0.055734 0.000000 0.000000 0.000000 1.000000 0.093023 0.000000
-0.003755 -0.056722 0.000000 0.000000 0.000000 1.000000 0.036545 0.000000
-0.048668 -0.058443 0.000000 0.000000 0.000000 1.000000 0.089701 0.000000
-0.131573 -0.069976 0.000000 0.000000 0.000000 1.000000 0.318937 0.000000
-0.005793 -0.058591 0.000000 0.000000 0.000000 1.000000 0.039867 0.000000
0.057587 -0.061714 0.000000 0.000000 0.000000 1.000000 0.933555 0.000000
-0.075665 -0.063206 0.000000 0.000000 0.000000 1.000000 0.757475 0.000000
0.021164 -0.062546 0.000000 0.000000 0.000000 1.000000 0.873754 0.000000
-0.045222 -0.060814 0.000000 0.000000 0.000000 1.000000 0.086379 0.000000
-0.007880 -0.060265 0.000000 0.000000 0.000000 1.000000 0.043189 0.000000
-0.010016 -0.061744 0.000000 0.000000 0.000000 1.000000 0.046512 0.000000
-0.041610 -0.062818 0.000000 0.000000 0.000000 1.000000 0.083056 0.000000
-0.105009 -0.071633 0.000000 0.000000 0.000000 1.000000 0.534884 0.000000
0.078725 -0.071699 0.000000 0.000000 0.000000 1.000000 0.398671 0.000000
0.053632 -0.066575 0.000000 0.000000 0.000000 1.000000 0.936877 0.000000
-0.012200 -0.063027 0.000000 0.000000 0.000000 1.000000 0.049834 0.000000
0.018678 -0.065608 0.000000 0.000000 0.000000 1.000000 0.870432 0.000000
-0.037869 -0.064427 0.000000 0.000000 0.000000 1.000000 0.079734 0.000000
-0.014430 -0.064114 0.000000 0.000000 0.000000 1.000000 0.053156 0.000000
-0.071447 -0.068260 0.000000 0.000000 0.000000 1.000000 0.760797 0.000000
-0.016706 -0.065005 0.000000 0.000000 0.000000 1.000000 0.056478 0.000000
-0.034038 -0.065611 0.000000 0.000000 0.000000 1.000000 0.076412 0.000000
-0.019028 -0.065699 0.000000 0.000000 0.000000 1.000000 0.059801 0.000000
0.017779 -0.066716 0.000000 0.000000 0.000000 1.000000 0.867110 0.000000
-0.030153 -0.066343 0.000000 0.000000 0.000000 1.000000 0.073090 0.000000
-0.021393 -0.066195 0.000000 0.000000 0.000000 1.000000 0.063123 0.000000
-0.023802 -0.066493 0.000000 0.000000 0.000000 1.000000 0.066445 0.000000
-0.026253 -0.066593 0.000000 0.000000 0.000000 1.000000 0.069767 0.000000
0.049759 -0.071331 0.000000 0.000000 0.000000 1.000000 0.940199 0.000000
0.013957 -0.071079 0.000000 0.000000 0.000000 1.000000 0.863787 0.000000
-0.066786 -0.072867 0.000000 0.000000 0.000000 1.000000 0.764120 0.000000
-0.124657 -0.083169 0.000000 0.000000 0.000000 1.000000 0.322259 0.000000
0.010077 -0.074865 0.000000 0.000000 0.000000 1.000000 0.860465 0.000000
0.045998 -0.075941 0.000000 0.000000 0.000000 1.000000 0.943522 0.000000
-0.098115 -0.081506 0.000000 0.000000 0.000000 1.000000 0.531561 0.000000
0.070708 -0.081552 0.000000 0.000000 0.000000 1.000000 0.395349 0.000000
-0.061736 -0.076988 0.000000 0.000000 0.000000 1.000000 0.767442 0.000000
0.006162 -0.078113 0.000000 0.000000 0.000000 1.000000 0.857143 0.000000
0.042383 -0.080367 0.000000 0.000000 0.000000 1.000000 0.946844 0.000000
-0.056350 -0.080583 0.000000 0.000000 0.000000 1.000000 0.770764 0.000000
0.002241 -0.080860 0.000000 0.000000 0.000000 1.000000 0.853821 0.000000
0.038944 -0.084567 0.000000 0.000000 0.000000 1.000000 0.468439 0.000000
-0.050683 -0.083613 0.000000 0.000000 0.000000 1.000000 0.774086 0.000000
-0.001662 -0.083143 0.000000 0.000000 0.000000 1.000000 0.850498 0.000000
-0.090090 -0.090538 0.000000 0.000000 0.000000 1.000000 0.528239 0.000000
0.063208 -0.090746 0.000000 0.000000 0.000000 1.000000 0.392027 0.000000
-0.005519 -0.084999 0.000000 0.000000 0.000000 1.000000 0.847176 0.000000
-0.116148 -0.095452 0.000000 0.000000 0.000000 1.000000 0.325581 0.000000
-0.044788 -0.086038 0.000000 0.000000 0.000000 1.000000 0.777409 0.000000
0.034252 -0.089953 0.000000 0.000000 0.000000 1.000000 0.471761 0.000000
-0.009305 -0.086467 0.000000 0.000000 0.000000 1.000000 0.843854 0.000000
-0.038718 -0.087820 0.000000 0.000000 0.000000 1.000000 0.780731 0.000000
-0.012994 -0.087584 0.000000 0.000000 0.000000 1.000000 0.840532 0.000000
-0.016560 -0.088388 0.000000 0.000000 0.000000 1.000000 0.837209 0.000000
-0.032526 -0.088917 0.000000 0.000000 0.000000 1.000000 0.784053 0.000000
-0.019976 -0.088915 0.000000 0.000000 0.000000 1.000000 0.833887 0.000000
-0.023215 -0.089204 0.000000 0.000000 0.000000 1.000000 0.830565 0.000000
-0.026267 -0.089292 0.000000 0.000000 0.000000 1.000000 0.787375 0.000000
-0.026253 -0.089292 0.000000 0.000000 0.000000 1.000000 0.827243 0.000000
-0.026267 -0.089292 0.000000 -0.282209 -0.959353 0.000000 0.790698 0.000000
-0.026266 -0.089292 0.000000 -0.282202 -0.959355 0.000000 0.794020 0.000000
-0.026265 -0.089292 0.000000 -0.282190 -0.959358 0.000000 0.797342 0.000000
-0.026263 -0.089292 0.000000 -0.282177 -0.959362 0.000000 0.800664 0.000000
-0.026262 -0.089292 0.000000 -0.282161 -0.959367 0.000000 0.803987 0.000000
-0.026260 -0.089292 0.000000 -0.282144 -0.959372 0.000000 0.807309 0.000000
-0.026258 -0.089292 0.000000 -0.282128 -0.959377 0.000000 0.810631 0.000000
-0.026257 -0.089292 0.000000 -0.282112 -0.959382 0.000000 0.813953 0.000000
-0.026255 -0.089292 0.000000 -0.282098 -0.959386 0.000000 0.817276 0.000000
-0.026254 -0.089292 0.000000 -0.282087 -0.959389 0.000000 0.820598 0.000000
-0.026254 -0.089292 0.000000 -0.282080 -0.959391 0.000000 0.823920 0.000000
0.029396 -0.094895 0.000000 0.000000 0.000000 1.000000 0.475083 0.000000
-0.081080 -0.098583 0.000000 0.000000 0.000000 1.000000 0.524917 0.000000
0.056486 -0.098960 0.000000 0.000000 0.000000 1.000000 0.388704 0.000000
0.024384 -0.099388 0.000000 0.000000 0.000000 1.000000 0.478405 0.000000
-0.106217 -0.106653 0.000000 0.000000 0.000000 1.000000 0.328904 0.000000
-0.071231 -0.105494 0.000000 0.000000 0.000000 1.000000 0.521595 0.000000
0.049204 -0.107192 0.000000 0.000000 0.000000 1.000000 0.385382 0.000000
0.019224 -0.103427 0.000000 0.000000 0.000000 1.000000 0.481728 0.000000
0.013925 -0.107009 0.000000 0.000000 0.000000 1.000000 0.485050 0.000000
-0.060690 -0.111125 0.000000 0.000000 0.000000 1.000000 0.518272 0.000000
-0.095037 -0.116602 0.000000 0.000000 0.000000 1.000000 0.332226 0.000000
0.008495 -0.110127 0.000000 0.000000 0.000000 1.000000 0.488372 0.000000
0.041835 -0.114337 0.000000 0.000000 0.000000 1.000000 0.382060 0.000000
0.002942 -0.112779 0.000000 0.000000 0.000000 1.000000 0.491694 0.000000
-0.049603 -0.115329 0.000000 0.000000 0.000000 1.000000 0.514950 0.000000
-0.002725 -0.114959 0.000000 0.000000 0.000000 1.000000 0.495017 0.000000
0.034424 -0.120465 0.000000 0.000000 0.000000 1.000000 0.378738 0.000000
-0.008499 -0.116662 0.000000 0.000000 0.000000 1.000000 0.498339 0.000000
-0.038116 -0.117958 0.000000 0.000000 0.000000 1.000000 0.511628 0.000000
-0.082777 -0.125127 0.000000 0.000000 0.000000 1.000000 0.335548 0.000000
-0.014371 -0.117884 0.000000 0.000000 0.000000 1.000000 0.501661 0.000000
-0.020333 -0.118621 0.000000 0.000000 0.000000 1.000000 0.504983 0.000000
-0.026376 -0.118867 0.000000 0.000000 0.000000 1.000000 0.508306 0.000000
0.027019 -0.125647 0.000000 0.000000 0.000000 1.000000 0.375415 0.000000
-0.069610 -0.132056 0.000000 0.000000 0.000000 1.000000 0.338870 0.000000
0.019667 -0.129953 0.000000 0.000000 0.000000 1.000000 0.372093 0.000000
0.012414 -0.133456 0.000000 0.000000 0.000000 1.000000 0.368771 0.000000
-0.055707 -0.137218 0.000000 0.000000 0.000000 1.000000 0.342193 0.000000
0.005309 -0.136225 0.000000 0.000000 0.000000 1.000000 0.365449 0.000000
-0.001603 -0.138332 0.000000 0.000000 0.000000 1.000000 0.362126 0.000000
-0.041238 -0.140441 0.000000 0.000000 0.000000 1.000000 0.345515 0.000000
-0.008275 -0.139848 0.000000 0.000000 0.000000 1.000000 0.358804 0.000000
-0.014659 -0.140842 0.000000 0.000000 0.000000 1.000000 0.355482 0.000000
-0.026376 -0.141553 0.000000 0.000000 0.000000 1.000000 0.348837 0.000000
-0.020708 -0.141387 0.000000 0.000000 0.000000 1.000000 0.352159 0.000000
0.019726 0.150280 0.000000 0.000000 0.000000 1.000000 0.990033 0.000000
0.041545 0.181857 0.000000 0.000000 0.000000 1.000000 0.996678 0.000000
0.029737 0.185248 0.000000 0.000000 0.000000 1.000000 1.000000 0.000000
0.031548 0.146890 0.000000 0.000000 0.000000 1.000000 0.993355 0.000000
0.038576 0.141130 0.000000 0.000000 0.000000 1.000000 0.980066 0.000000
0.074572 0.154474 0.000000 0.000000 0.000000 1.000000 0.986711 0.000000
0.066837 0.164033 0.000000 0.000000 0.000000 1.000000 0.983389 0.000000
0.046325 0.131585 0.000000 0.000000 0.000000 1.000000 0.976744 0.000000
0.131679 0.046303 0.000000 0.000000 0.000000 1.000000 0.003322 0.000000
0.164026 0.067001 0.000000 0.000000 0.000000 1.000000 0.009967 0.000000
0.154438 0.074680 0.000000 0.000000 0.000000 1.000000 0.006645 0.000000
0.141268 0.038623 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000
0.147083 0.031624 0.000000 0.000000 0.000000 1.000000 0.019934 0.000000
0.185817 0.030031 0.000000 0.000000 0.000000 1.000000 0.013289 0.000000
0.181990 0.041823 0.000000 0.000000 0.000000 1.000000 0.016611 0.000000
0.150529 0.019832 0.000000 0.000000 0.000000 1.000000 0.023256 0.000000
3 0 1 2
3 3 1 0
3 3 4 1
3 5 4 3
3 5 6 4
3 7 8 9
3 10 8 7
3 11 6 5
3 11 12 6
3 13 12 11
3 13 14 12
3 15 14 13
3 15 16 14
3 17 16 15
3 17 18 16
3 17 19 18
3 20 19 17
3 20 21 19
3 22 23 24
3 22 25 23
3 26 27 20
3 27 21 20
3 26 28 27
3 29 21 27
3 30 21 29
3 31 21 30
3 31 32 21
3 33 32 31
3 26 34 28
3 35 32 33
3 36 34 26
3 35 37 32
3 36 38 34
3 39 37 35
3 39 40 37
3 39 41 40
3 42 41 39
3 36 43 38
3 42 44 41
3 45 44 42
3 45 46 44
3 47 43 36
3 47 48 43
3 49 46 45
3 49 50 46
3 51 50 49
3 47 52 48
3 53 50 51
3 54 50 53
3 54 55 50
3 56 55 54
3 57 52 47
3 57 58 52
3 59 55 56
3 59 60 55
3 57 61 58
3 62 60 59
3 63 61 57
3 64 60 62
3 63 65 61
3 64 66 60
3 67 66 64
3 63 68 65
3 69 68 63
3 70 66 67
3 69 71 68
3 70 72 66
3 73 72 70
3 69 74 71
3 75 74 69
3 76 77 78
3 79 72 73
3 75 80 74
3 76 81 77
3 79 82 72
3 76 83 81
3 84 82 79
3 85 80 75
3 85 86 80
3 76 87 83
3 88 82 84
3 85 89 86
3 88 90 82
3 76 91 87
3 92 89 85
3 93 90 88
3 92 94 89
3 76 95 91
3 96 90 93
3 97 94 92
3 97 98 94
3 96 99 90
3 100 99 96
3 76 101 95
3 101 102 95
3 97 103 98
3 104 99 100
3 105 103 97
3 101 106 102
3 104 107 99
3 108 107 104
3 105 109 103
3 101 110 106
3 111 109 105
3 112 107 108
3 111 113 109
3 101 114 110
3 112 115 107
3 116 115 112
3 117 113 111
3 117 118 113
3 101 119 114
3 116 120 115
3 101 121 119
3 122 120 116
3 101 123 121
3 122 124 120
3 101 125 123
3 126 118 117
3 126 127 118
3 76 128 101
3 129 125 101
3 122 130 124
3 129 131 125
3 76 132 128
3 133 130 122
3 133 134 130
3 76 135 132
3 126 136 127
3 137 136 126
3 129 138 131
3 139 134 133
3 139 140 134
3 76 141 135
3 137 142 136
3 143 142 137
3 139 144 140
3 145 144 139
3 129 146 138
3 145 147 144
3 76 148 141
3 149 142 143
3 149 150 142
3 145 151 147
3 152 146 129
3 153 151 145
3 153 154 151
3 76 155 148
3 152 156 146
3 157 156 152
3 153 158 154
3 159 158 153
3 159 160 158
3 161 156 157
3 159 162 160
3 149 163 150
3 76 164 155
3 165 162 159
3 161 166 156
3 167 163 149
3 168 166 161
3 165 169 162
3 76 170 164
3 171 169 165
3 171 172 169
3 173 166 168
3 171 174 172
3 167 175 163
3 173 176 166
3 177 176 173
3 178 174 171
3 76 179 170
3 180 179 76
3 178 181 174
3 182 179 180
3 178 183 181
3 184 175 167
3 185 179 182
3 186 176 177
3 187 183 178
3 185 188 179
3 187 189 183
3 190 188 185
3 191 188 190
3 187 192 189
3 184 193 175
3 186 194 176
3 195 194 186
3 196 188 191
3 196 197 188
3 187 198 192
3 199 197 196
3 200 198 187
3 201 197 199
3 200 202 198
3 203 197 201
3 203 204 197
3 200 205 202
3 206 204 203
3 207 204 206
3 200 208 205
3 208 204 207
3 209 194 195
3 200 204 208
3 200 210 204
3 211 210 200
3 212 193 184
3 211 213 210
3 214 194 209
3 212 215 193
3 214 216 194
3 217 213 211
3 217 218 213
3 219 216 214
3 220 218 217
3 220 221 218
3 222 216 219
3 223 221 220
3 223 224 221
3 212 225 215
3 222 226 216
3 223 227 224
3 228 225 212
3 229 227 223
3 230 226 222
3 229 231 227
3 232 231 229
3 232 233 231
3 232 234 233
3 235 234 232
3 235 236 234
3 235 237 236
3 238 237 235
3 238 239 237
3 240 239 238
3 241 239 240
3 242 239 241
3 243 239 242
3 244 239 243
3 245 239 244
3 246 239 245
3 247 239 246
3 248 239 247
3 249 239 248
3 250 239 249
3 251 226 230
3 228 252 225
3 251 253 226
3 254 253 251
3 255 252 228
3 255 256 252
3 254 257 253
3 258 257 254
3 259 257 258
3 255 260 256
3 261 260 255
3 262 257 259
3 262 263 257
3 264 263 262
3 261 265 260
3 266 263 264
3 266 267 263
3 268 267 266
3 261 269 265
3 270 269 261
3 271 267 268
3 272 267 271
3 270 273 269
3 273 267 272
3 270 267 273
3 270 274 267
3 275 274 270
3 275 276 274
3 275 277 276
3 278 277 275
3 278 279 277
3 278 280 279
3 281 280 278
3 281 282 280
3 281 283 282
3 284 283 281
3 284 285 283
3 286 287 288
3 286 289 287
3 290 291 292
3 290 293 291
3 294 295 296
3 294 297 295
3 298 299 300
3 301 299 298

122
rsc/mesh/icon_pattern.ply Normal file
View File

@@ -0,0 +1,122 @@
ply
format ascii 1.0
comment Created by Blender 3.4.1 - www.blender.org
element vertex 48
property float x
property float y
property float z
element face 64
property list uchar uint vertex_indices
end_header
-0.095770 0.052446 0.000000
-0.059169 0.098427 0.000000
-0.065370 0.108653 0.000000
-0.002557 0.108653 0.000000
-0.014104 0.098427 0.000000
-0.005498 0.092637 0.000000
0.026488 0.056116 0.000000
-0.081265 0.057541 0.000000
-0.036699 0.057541 0.000000
-0.027736 0.052410 0.000000
0.016705 0.052464 0.000000
0.081407 0.056116 0.000000
0.075188 0.045890 0.000000
0.111806 -0.000110 0.000000
-0.005890 0.012022 0.000000
0.021926 0.040313 0.000000
0.030658 0.045890 0.000000
-0.069184 0.003293 0.000000
-0.081265 0.047333 0.000000
-0.036735 0.047333 0.000000
-0.059169 0.006464 0.000000
-0.014639 0.006464 0.000000
0.052771 0.005003 0.000000
0.097301 0.005003 0.000000
-0.000669 -0.000128 0.000000
0.043772 -0.000074 0.000000
-0.097855 -0.049744 0.000000
-0.061272 -0.003780 0.000000
0.021534 -0.040302 0.000000
0.052736 -0.005205 0.000000
0.097301 -0.005205 0.000000
0.081407 -0.056318 0.000000
-0.016207 -0.003780 0.000000
-0.007600 -0.009552 0.000000
-0.083368 -0.044631 0.000000
-0.038784 -0.044631 0.000000
0.030141 -0.046092 0.000000
0.075206 -0.046092 0.000000
-0.029839 -0.049779 0.000000
0.014620 -0.049726 0.000000
-0.007992 -0.090167 0.000000
0.022764 -0.056318 0.000000
-0.067473 -0.105969 0.000000
-0.083368 -0.054857 0.000000
-0.038820 -0.054857 0.000000
-0.061254 -0.095743 0.000000
-0.016724 -0.095743 0.000000
-0.004981 -0.105969 0.000000
3 0 1 2
3 1 3 2
3 1 4 3
3 4 5 3
3 5 6 3
3 0 7 1
3 8 5 4
3 8 9 5
3 10 6 5
3 0 8 7
3 0 9 8
3 10 11 6
3 10 12 11
3 12 13 11
3 14 15 10
3 15 16 10
3 16 12 10
3 17 18 0
3 18 9 0
3 18 19 9
3 19 14 9
3 17 20 18
3 21 14 19
3 15 22 16
3 23 13 12
3 14 24 15
3 25 22 15
3 21 24 14
3 17 21 20
3 17 24 21
3 25 23 22
3 25 13 23
3 26 27 17
3 27 24 17
3 28 29 25
3 29 13 25
3 29 30 13
3 30 31 13
3 27 32 24
3 32 33 24
3 33 28 24
3 26 34 27
3 35 33 32
3 28 36 29
3 37 31 30
3 35 38 33
3 39 28 33
3 39 36 28
3 26 35 34
3 26 38 35
3 39 37 36
3 39 31 37
3 40 41 39
3 41 31 39
3 42 43 26
3 43 38 26
3 43 44 38
3 44 40 38
3 42 45 43
3 46 40 44
3 40 47 41
3 46 47 40
3 42 46 45
3 42 47 46

135
rsc/mesh/icon_play.ply Normal file
View File

@@ -0,0 +1,135 @@
ply
format ascii 1.0
comment Created by Blender 3.6.2 - www.blender.org
element vertex 61
property float x
property float y
property float z
property float nx
property float ny
property float nz
property float s
property float t
element face 59
property list uchar uint vertex_indices
end_header
-0.158401 0.243060 0.000000 0.000000 0.000000 1.000000 0.083333 0.000000
-0.143008 0.242698 0.000000 0.000000 0.000000 1.000000 0.050000 0.000000
-0.150696 0.243499 0.000000 0.000000 0.000000 1.000000 0.066667 0.000000
-0.165930 0.241406 0.000000 0.000000 0.000000 1.000000 0.100000 0.000000
-0.135532 0.240629 0.000000 0.000000 0.000000 1.000000 0.033333 0.000000
-0.173087 0.238563 0.000000 0.000000 0.000000 1.000000 0.116667 0.000000
-0.128464 0.237268 0.000000 0.000000 0.000000 1.000000 0.016667 0.000000
-0.179678 0.234558 0.000000 0.000000 0.000000 1.000000 0.133333 0.000000
0.206265 0.039420 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000
-0.185507 0.229415 0.000000 0.000000 0.000000 1.000000 0.150000 0.000000
-0.190379 0.223163 0.000000 0.000000 0.000000 1.000000 0.166667 0.000000
-0.194101 0.215826 0.000000 0.000000 0.000000 1.000000 0.183333 0.000000
-0.196477 0.207430 0.000000 0.000000 0.000000 1.000000 0.200000 0.000000
-0.197312 0.198002 0.000000 0.000000 0.000000 1.000000 0.216667 0.000000
-0.197312 0.190219 0.000000 0.000000 0.000000 1.000000 0.233333 0.000000
-0.197312 0.168699 0.000000 0.000000 0.000000 1.000000 0.250000 0.000000
-0.197312 0.136190 0.000000 0.000000 0.000000 1.000000 0.266667 0.000000
-0.197312 0.095439 0.000000 0.000000 0.000000 1.000000 0.283333 0.000000
-0.197312 0.049194 0.000000 0.000000 0.000000 1.000000 0.300000 0.000000
-0.197312 0.000202 0.000000 0.000000 0.000000 1.000000 0.316667 0.000000
0.213128 0.034516 0.000000 0.000000 0.000000 1.000000 1.000000 0.000000
0.218740 0.028717 0.000000 0.000000 0.000000 1.000000 0.983333 0.000000
0.223101 0.022202 0.000000 0.000000 0.000000 1.000000 0.966667 0.000000
0.226214 0.015151 0.000000 0.000000 0.000000 1.000000 0.950000 0.000000
0.228078 0.007742 0.000000 0.000000 0.000000 1.000000 0.933333 0.000000
0.228696 0.000154 0.000000 0.000000 0.000000 1.000000 0.916667 0.000000
-0.197312 -0.048790 0.000000 0.000000 0.000000 1.000000 0.333333 0.000000
0.228067 -0.007434 0.000000 0.000000 0.000000 1.000000 0.900000 0.000000
0.226193 -0.014843 0.000000 0.000000 0.000000 1.000000 0.883333 0.000000
0.223075 -0.021894 0.000000 0.000000 0.000000 1.000000 0.866667 0.000000
0.218713 -0.028408 0.000000 0.000000 0.000000 1.000000 0.850000 0.000000
0.213110 -0.034207 0.000000 0.000000 0.000000 1.000000 0.833333 0.000000
0.206265 -0.039111 0.000000 0.000000 0.000000 1.000000 0.816667 0.000000
0.199679 -0.043002 0.000000 0.000000 0.000000 1.000000 0.800000 0.000000
0.181470 -0.053759 0.000000 0.000000 0.000000 1.000000 0.783333 0.000000
-0.197312 -0.095036 0.000000 0.000000 0.000000 1.000000 0.350000 0.000000
0.153964 -0.070010 0.000000 0.000000 0.000000 1.000000 0.766667 0.000000
0.119483 -0.090380 0.000000 0.000000 0.000000 1.000000 0.750000 0.000000
0.080354 -0.113497 0.000000 0.000000 0.000000 1.000000 0.733333 0.000000
-0.197312 -0.135786 0.000000 0.000000 0.000000 1.000000 0.366667 0.000000
0.038900 -0.137988 0.000000 0.000000 0.000000 1.000000 0.716667 0.000000
-0.197312 -0.168295 0.000000 0.000000 0.000000 1.000000 0.383333 0.000000
-0.002553 -0.162478 0.000000 0.000000 0.000000 1.000000 0.700000 0.000000
-0.041683 -0.185595 0.000000 0.000000 0.000000 1.000000 0.683333 0.000000
-0.197312 -0.189815 0.000000 0.000000 0.000000 1.000000 0.400000 0.000000
-0.076163 -0.205965 0.000000 0.000000 0.000000 1.000000 0.666667 0.000000
-0.197312 -0.197599 0.000000 0.000000 0.000000 1.000000 0.416667 0.000000
-0.196533 -0.206202 0.000000 0.000000 0.000000 1.000000 0.433333 0.000000
-0.103670 -0.222216 0.000000 0.000000 0.000000 1.000000 0.650000 0.000000
-0.194306 -0.214128 0.000000 0.000000 0.000000 1.000000 0.450000 0.000000
-0.190794 -0.221289 0.000000 0.000000 0.000000 1.000000 0.466667 0.000000
-0.186162 -0.227596 0.000000 0.000000 0.000000 1.000000 0.483333 0.000000
-0.121878 -0.232973 0.000000 0.000000 0.000000 1.000000 0.633333 0.000000
-0.180573 -0.232964 0.000000 0.000000 0.000000 1.000000 0.500000 0.000000
-0.174193 -0.237304 0.000000 0.000000 0.000000 1.000000 0.516667 0.000000
-0.128464 -0.236864 0.000000 0.000000 0.000000 1.000000 0.616667 0.000000
-0.136152 -0.240527 0.000000 0.000000 0.000000 1.000000 0.600000 0.000000
-0.167184 -0.240529 0.000000 0.000000 0.000000 1.000000 0.533333 0.000000
-0.144031 -0.242638 0.000000 0.000000 0.000000 1.000000 0.583333 0.000000
-0.159712 -0.242551 0.000000 0.000000 0.000000 1.000000 0.550000 0.000000
-0.151939 -0.243283 0.000000 0.000000 0.000000 1.000000 0.566667 0.000000
3 0 1 2
3 3 1 0
3 3 4 1
3 5 4 3
3 5 6 4
3 7 6 5
3 7 8 6
3 9 8 7
3 10 8 9
3 11 8 10
3 12 8 11
3 13 8 12
3 14 8 13
3 15 8 14
3 16 8 15
3 17 8 16
3 18 8 17
3 19 8 18
3 19 20 8
3 19 21 20
3 19 22 21
3 19 23 22
3 19 24 23
3 19 25 24
3 26 25 19
3 26 27 25
3 26 28 27
3 26 29 28
3 26 30 29
3 26 31 30
3 26 32 31
3 26 33 32
3 26 34 33
3 35 34 26
3 35 36 34
3 35 37 36
3 35 38 37
3 39 38 35
3 39 40 38
3 41 40 39
3 41 42 40
3 41 43 42
3 44 43 41
3 44 45 43
3 46 45 44
3 47 45 46
3 47 48 45
3 49 48 47
3 50 48 49
3 51 48 50
3 51 52 48
3 53 52 51
3 54 52 53
3 54 55 52
3 54 56 55
3 57 56 54
3 57 58 56
3 59 58 57
3 60 58 59

File diff suppressed because it is too large Load Diff

View File

@@ -1,32 +1,788 @@
ply
format ascii 1.0
comment Created by Blender 2.90.1 - www.blender.org
element vertex 12
comment Created by Blender 3.4.1 - www.blender.org
element vertex 391
property float x
property float y
property float z
element face 10
element face 387
property list uchar uint vertex_indices
end_header
-0.120212 -0.072047 0.000000
-0.101239 0.089191 0.000000
-0.120212 0.108160 0.000000
0.119230 0.108160 0.000000
0.100257 0.089191 0.000000
0.119230 -0.072047 0.000000
-0.101239 -0.053078 0.000000
0.100257 -0.053078 0.000000
-0.057945 -0.110557 0.000000
0.031238 -0.082104 0.000000
-0.033289 -0.082104 0.000000
0.055894 -0.110557 0.000000
-0.074560 0.075085 0.000000
-0.072225 0.075085 0.000000
-0.073393 0.075159 0.000000
-0.075712 0.074862 0.000000
-0.071073 0.074862 0.000000
-0.076833 0.074490 0.000000
-0.069952 0.074490 0.000000
-0.077908 0.073969 0.000000
-0.068877 0.073969 0.000000
-0.078921 0.073300 0.000000
-0.067864 0.073300 0.000000
-0.079857 0.072482 0.000000
-0.066927 0.072482 0.000000
-0.080612 0.071727 0.000000
-0.066173 0.071727 0.000000
-0.064086 0.069641 0.000000
-0.082699 0.069641 0.000000
-0.060934 0.066490 0.000000
-0.085851 0.066490 0.000000
-0.056983 0.062540 0.000000
-0.089802 0.062540 0.000000
-0.052499 0.058057 0.000000
-0.094286 0.058057 0.000000
-0.018788 0.061512 0.000000
-0.015014 0.061709 0.000000
-0.016840 0.061709 0.000000
-0.009967 0.061709 0.000000
-0.002343 0.061709 0.000000
0.007215 0.061709 0.000000
0.018060 0.061709 0.000000
0.029551 0.061709 0.000000
0.041041 0.061709 0.000000
0.051887 0.061709 0.000000
0.061444 0.061709 0.000000
0.069068 0.061709 0.000000
0.074115 0.061709 0.000000
0.075941 0.061709 0.000000
0.077182 0.061626 0.000000
0.078372 0.061383 0.000000
-0.020547 0.060953 0.000000
0.079500 0.060991 0.000000
0.080556 0.060461 0.000000
-0.022096 0.060081 0.000000
0.081528 0.059805 0.000000
-0.023416 0.058943 0.000000
0.082406 0.059032 0.000000
0.083179 0.058154 0.000000
-0.024486 0.057589 0.000000
0.083836 0.057182 0.000000
-0.047749 0.053308 0.000000
-0.099036 0.053308 0.000000
-0.025287 0.056066 0.000000
0.084365 0.056126 0.000000
0.084757 0.054998 0.000000
-0.025798 0.054424 0.000000
0.085000 0.053809 0.000000
-0.025999 0.052710 0.000000
0.085084 0.052568 0.000000
-0.042999 0.048559 0.000000
-0.103786 0.048558 0.000000
-0.025870 0.050972 0.000000
0.085084 0.050904 0.000000
-0.025392 0.049260 0.000000
0.085084 0.046302 0.000000
-0.024543 0.047621 0.000000
-0.038515 0.044076 0.000000
-0.108270 0.044075 0.000000
-0.023305 0.046104 0.000000
0.085084 0.039350 0.000000
-0.023185 0.045985 0.000000
-0.022853 0.045653 0.000000
-0.022353 0.045152 0.000000
-0.021725 0.044525 0.000000
-0.021012 0.043812 0.000000
-0.034564 0.040126 0.000000
-0.112221 0.040125 0.000000
-0.020257 0.043057 0.000000
-0.019502 0.042303 0.000000
-0.018790 0.041590 0.000000
-0.018162 0.040963 0.000000
-0.017661 0.040462 0.000000
-0.017330 0.040130 0.000000
-0.017210 0.040010 0.000000
-0.031412 0.036974 0.000000
-0.115373 0.036974 0.000000
-0.016769 0.039598 0.000000
-0.016304 0.039217 0.000000
0.060703 0.037334 0.000000
0.085084 0.030635 0.000000
-0.015817 0.038869 0.000000
-0.015310 0.038555 0.000000
-0.014785 0.038275 0.000000
-0.014243 0.038030 0.000000
-0.013687 0.037820 0.000000
-0.013117 0.037647 0.000000
-0.012536 0.037511 0.000000
-0.011946 0.037413 0.000000
-0.011348 0.037354 0.000000
-0.010745 0.037334 0.000000
0.060703 -0.032030 0.000000
-0.029326 0.034888 0.000000
-0.117460 0.034888 0.000000
-0.028571 0.034134 0.000000
-0.118214 0.034133 0.000000
-0.061202 0.033570 0.000000
-0.027753 0.033198 0.000000
-0.119033 0.033197 0.000000
-0.085583 0.033570 0.000000
-0.061202 -0.035794 0.000000
-0.045806 0.017272 0.000000
-0.085886 0.033249 0.000000
-0.085583 -0.051029 0.000000
-0.086724 0.032362 0.000000
-0.027083 0.032185 0.000000
-0.119702 0.032184 0.000000
-0.087989 0.031023 0.000000
-0.026562 0.031110 0.000000
-0.120223 0.031109 0.000000
-0.026190 0.029989 0.000000
-0.120595 0.029988 0.000000
-0.089575 0.029344 0.000000
0.085084 0.020746 0.000000
-0.025967 0.028838 0.000000
-0.120818 0.028837 0.000000
-0.091375 0.027439 0.000000
-0.025893 0.027670 0.000000
-0.120892 0.027670 0.000000
-0.025967 0.026503 0.000000
-0.120818 0.026502 0.000000
-0.093281 0.025420 0.000000
-0.026190 0.025352 0.000000
-0.120595 0.025351 0.000000
-0.095188 0.023402 0.000000
-0.026562 0.024231 0.000000
-0.120223 0.024230 0.000000
-0.027083 0.023156 0.000000
-0.119702 0.023155 0.000000
-0.096988 0.021497 0.000000
-0.027753 0.022143 0.000000
-0.119033 0.022142 0.000000
-0.028571 0.021207 0.000000
-0.118214 0.021206 0.000000
-0.098574 0.019818 0.000000
-0.028652 0.021126 0.000000
-0.118133 0.021125 0.000000
-0.028876 0.020901 0.000000
-0.117909 0.020901 0.000000
-0.029215 0.020563 0.000000
-0.117570 0.020562 0.000000
0.085084 0.010269 0.000000
-0.029640 0.020138 0.000000
-0.117146 0.020137 0.000000
-0.030122 0.019656 0.000000
-0.116664 0.019656 0.000000
-0.099839 0.018478 0.000000
-0.030632 0.019146 0.000000
-0.116153 0.019145 0.000000
-0.031143 0.018635 0.000000
-0.115643 0.018635 0.000000
-0.031625 0.018153 0.000000
-0.115161 0.018153 0.000000
-0.100677 0.017592 0.000000
-0.032049 0.017729 0.000000
-0.114736 0.017728 0.000000
-0.032388 0.017390 0.000000
-0.114397 0.017390 0.000000
-0.100980 0.017271 0.000000
-0.032612 0.017166 0.000000
-0.114173 0.017165 0.000000
-0.044874 0.016412 0.000000
-0.101911 0.016411 0.000000
-0.032693 0.017085 0.000000
-0.114092 0.017084 0.000000
-0.033649 0.016252 0.000000
-0.113136 0.016251 0.000000
-0.043859 0.015705 0.000000
-0.102926 0.015704 0.000000
-0.034684 0.015574 0.000000
-0.112101 0.015574 0.000000
-0.042777 0.015151 0.000000
-0.104009 0.015150 0.000000
-0.035782 0.015051 0.000000
-0.111004 0.015050 0.000000
-0.041643 0.014750 0.000000
-0.105142 0.014749 0.000000
-0.036926 0.014682 0.000000
-0.109859 0.014682 0.000000
-0.040475 0.014502 0.000000
-0.106310 0.014502 0.000000
-0.038100 0.014468 0.000000
-0.108685 0.014468 0.000000
-0.039289 0.014408 0.000000
-0.107496 0.014408 0.000000
0.085084 -0.000208 0.000000
0.085084 -0.010097 0.000000
0.085084 -0.018812 0.000000
0.037601 -0.012928 0.000000
0.039977 -0.012962 0.000000
0.038790 -0.012868 0.000000
0.105810 -0.012963 0.000000
0.108185 -0.012929 0.000000
0.106997 -0.012869 0.000000
0.036427 -0.013142 0.000000
0.109360 -0.013143 0.000000
0.041144 -0.013210 0.000000
0.104642 -0.013210 0.000000
0.035283 -0.013511 0.000000
0.110504 -0.013511 0.000000
0.042278 -0.013611 0.000000
0.103509 -0.013611 0.000000
0.034185 -0.014034 0.000000
0.111602 -0.014034 0.000000
0.043360 -0.014165 0.000000
0.102427 -0.014165 0.000000
0.033150 -0.014712 0.000000
0.112637 -0.014712 0.000000
0.044375 -0.014872 0.000000
0.101412 -0.014872 0.000000
0.032195 -0.015545 0.000000
0.113592 -0.015545 0.000000
0.045307 -0.015732 0.000000
0.100480 -0.015732 0.000000
0.032113 -0.015626 0.000000
0.113674 -0.015626 0.000000
0.031889 -0.015850 0.000000
0.113898 -0.015851 0.000000
0.045610 -0.016052 0.000000
0.085084 -0.032030 0.000000
0.031550 -0.016189 0.000000
0.114237 -0.016189 0.000000
0.046447 -0.016939 0.000000
0.031126 -0.016613 0.000000
0.114661 -0.016614 0.000000
0.030644 -0.017095 0.000000
0.115143 -0.017096 0.000000
0.047712 -0.018278 0.000000
0.030133 -0.017606 0.000000
0.115654 -0.017606 0.000000
0.029622 -0.018116 0.000000
0.116165 -0.018117 0.000000
0.029140 -0.018598 0.000000
0.116647 -0.018599 0.000000
0.049298 -0.019957 0.000000
0.028716 -0.019023 0.000000
0.117071 -0.019023 0.000000
0.085084 -0.025764 0.000000
0.028377 -0.019362 0.000000
0.117410 -0.019362 0.000000
0.028153 -0.019586 0.000000
0.117634 -0.019586 0.000000
0.028072 -0.019667 0.000000
0.117716 -0.019667 0.000000
0.027253 -0.020603 0.000000
0.118534 -0.020603 0.000000
0.051098 -0.021862 0.000000
0.026584 -0.021616 0.000000
0.119203 -0.021617 0.000000
0.026063 -0.022691 0.000000
0.119724 -0.022691 0.000000
0.053005 -0.023881 0.000000
0.025691 -0.023812 0.000000
0.120096 -0.023812 0.000000
0.025468 -0.024963 0.000000
0.120319 -0.024964 0.000000
0.054911 -0.025899 0.000000
0.025394 -0.026130 0.000000
0.120393 -0.026131 0.000000
0.085084 -0.030366 0.000000
0.056711 -0.027804 0.000000
0.025468 -0.027297 0.000000
0.120319 -0.027298 0.000000
0.025691 -0.028449 0.000000
0.120096 -0.028450 0.000000
0.058297 -0.029483 0.000000
0.026063 -0.029570 0.000000
0.119724 -0.029571 0.000000
0.059562 -0.030823 0.000000
0.026584 -0.030645 0.000000
0.119203 -0.030646 0.000000
0.027253 -0.031658 0.000000
0.118533 -0.031659 0.000000
0.060400 -0.031709 0.000000
0.028072 -0.032594 0.000000
0.117715 -0.032594 0.000000
0.117715 -0.032594 0.000000
0.117715 -0.032594 0.000000
0.117715 -0.032594 0.000000
0.117715 -0.032594 0.000000
0.117715 -0.032594 0.000000
0.117715 -0.032594 0.000000
0.117715 -0.032594 0.000000
0.117715 -0.032595 0.000000
0.117715 -0.032595 0.000000
0.117715 -0.032595 0.000000
0.117715 -0.032595 0.000000
0.117715 -0.032595 0.000000
0.028826 -0.033349 0.000000
0.079359 -0.070943 0.000000
0.030913 -0.035435 0.000000
0.034065 -0.038586 0.000000
-0.059796 -0.035794 0.000000
-0.055910 -0.035794 0.000000
-0.050039 -0.035794 0.000000
-0.042679 -0.035794 0.000000
-0.034327 -0.035794 0.000000
-0.025479 -0.035794 0.000000
-0.016630 -0.035794 0.000000
-0.008278 -0.035794 0.000000
-0.000919 -0.035794 0.000000
0.004953 -0.035794 0.000000
0.008839 -0.035794 0.000000
0.010245 -0.035794 0.000000
0.010849 -0.035814 0.000000
0.011447 -0.035873 0.000000
0.012037 -0.035971 0.000000
0.012618 -0.036107 0.000000
0.013187 -0.036280 0.000000
0.013744 -0.036490 0.000000
0.014286 -0.036735 0.000000
0.014811 -0.037015 0.000000
0.015317 -0.037330 0.000000
0.015804 -0.037678 0.000000
0.016269 -0.038059 0.000000
0.016710 -0.038471 0.000000
0.016830 -0.038591 0.000000
0.038016 -0.042536 0.000000
0.017162 -0.038923 0.000000
0.017662 -0.039424 0.000000
0.018290 -0.040051 0.000000
0.019003 -0.040764 0.000000
0.019758 -0.041518 0.000000
0.020513 -0.042273 0.000000
0.021225 -0.042986 0.000000
0.042500 -0.047019 0.000000
0.021853 -0.043613 0.000000
0.022354 -0.044114 0.000000
0.022686 -0.044446 0.000000
0.022806 -0.044566 0.000000
0.024044 -0.046082 0.000000
0.024892 -0.047721 0.000000
0.047250 -0.051768 0.000000
0.025371 -0.049433 0.000000
0.025499 -0.051171 0.000000
-0.085500 -0.052270 0.000000
0.025298 -0.052885 0.000000
0.052000 -0.056518 0.000000
-0.085257 -0.053459 0.000000
0.024788 -0.054527 0.000000
-0.084865 -0.054587 0.000000
0.023987 -0.056050 0.000000
-0.084335 -0.055643 0.000000
-0.083678 -0.056615 0.000000
0.022917 -0.057404 0.000000
0.056484 -0.061000 0.000000
-0.082905 -0.057493 0.000000
0.021597 -0.058542 0.000000
-0.082027 -0.058266 0.000000
-0.081055 -0.058922 0.000000
0.020048 -0.059414 0.000000
-0.079999 -0.059452 0.000000
0.018289 -0.059973 0.000000
-0.078871 -0.059844 0.000000
-0.077681 -0.060087 0.000000
0.016340 -0.060170 0.000000
-0.076440 -0.060170 0.000000
-0.074615 -0.060170 0.000000
-0.069568 -0.060170 0.000000
-0.061943 -0.060170 0.000000
-0.052386 -0.060170 0.000000
-0.041540 -0.060170 0.000000
-0.030050 -0.060170 0.000000
-0.018560 -0.060170 0.000000
-0.007714 -0.060170 0.000000
0.001843 -0.060170 0.000000
0.009468 -0.060170 0.000000
0.014515 -0.060170 0.000000
0.060435 -0.064951 0.000000
0.063587 -0.068102 0.000000
0.065674 -0.070188 0.000000
0.066429 -0.070943 0.000000
0.067365 -0.071761 0.000000
0.078422 -0.071761 0.000000
0.068378 -0.072430 0.000000
0.077409 -0.072430 0.000000
0.069453 -0.072951 0.000000
0.076334 -0.072951 0.000000
0.070574 -0.073322 0.000000
0.075213 -0.073322 0.000000
0.071726 -0.073545 0.000000
0.074061 -0.073545 0.000000
0.072894 -0.073620 0.000000
3 0 1 2
3 1 3 2
3 1 4 3
3 4 5 3
3 0 6 1
3 7 5 4
3 0 7 6
3 0 5 7
3 8 9 10
3 8 11 9
3 3 1 0
3 3 4 1
3 5 4 3
3 5 6 4
3 7 6 5
3 7 8 6
3 9 8 7
3 9 10 8
3 11 10 9
3 11 12 10
3 13 12 11
3 13 14 12
3 13 15 14
3 16 15 13
3 16 17 15
3 18 17 16
3 18 19 17
3 20 19 18
3 20 21 19
3 22 21 20
3 23 24 25
3 23 26 24
3 23 27 26
3 23 28 27
3 23 29 28
3 23 30 29
3 23 31 30
3 23 32 31
3 23 33 32
3 23 34 33
3 23 35 34
3 23 36 35
3 23 37 36
3 23 38 37
3 39 38 23
3 39 40 38
3 39 41 40
3 42 41 39
3 42 43 41
3 44 43 42
3 44 45 43
3 44 46 45
3 47 46 44
3 47 48 46
3 22 49 21
3 50 49 22
3 51 48 47
3 51 52 48
3 51 53 52
3 54 53 51
3 54 55 53
3 56 55 54
3 56 57 55
3 50 58 49
3 59 58 50
3 60 57 56
3 60 61 57
3 62 61 60
3 62 63 61
3 64 63 62
3 59 65 58
3 66 65 59
3 67 63 64
3 67 68 63
3 69 68 67
3 70 68 69
3 71 68 70
3 72 68 71
3 73 68 72
3 66 74 65
3 75 74 66
3 76 68 73
3 77 68 76
3 78 68 77
3 79 68 78
3 80 68 79
3 81 68 80
3 82 68 81
3 75 83 74
3 84 83 75
3 85 68 82
3 86 68 85
3 86 87 68
3 87 88 68
3 89 87 86
3 90 87 89
3 91 87 90
3 92 87 91
3 93 87 92
3 94 87 93
3 95 87 94
3 96 87 95
3 97 87 96
3 98 87 97
3 99 88 87
3 84 100 83
3 101 100 84
3 101 102 100
3 103 102 101
3 103 104 102
3 104 105 102
3 106 107 103
3 107 104 103
3 107 108 104
3 109 105 104
3 106 110 107
3 111 108 107
3 106 112 110
3 109 113 105
3 114 112 106
3 114 115 112
3 109 116 113
3 117 115 114
3 109 118 116
3 119 115 117
3 119 120 115
3 99 121 88
3 109 122 118
3 123 120 119
3 123 124 120
3 109 125 122
3 126 124 123
3 109 127 125
3 128 124 126
3 128 129 124
3 109 130 127
3 131 129 128
3 131 132 129
3 109 133 130
3 134 132 131
3 109 135 133
3 136 132 134
3 136 137 132
3 109 138 135
3 139 137 136
3 109 140 138
3 141 137 139
3 141 142 137
3 109 143 140
3 144 142 141
3 109 145 143
3 146 142 144
3 109 147 145
3 148 142 146
3 99 149 121
3 109 150 147
3 151 142 148
3 109 152 150
3 153 142 151
3 153 154 142
3 109 155 152
3 156 154 153
3 109 157 155
3 158 154 156
3 109 159 157
3 160 154 158
3 160 161 154
3 109 162 159
3 163 161 160
3 109 164 162
3 165 161 163
3 165 166 161
3 109 167 164
3 168 166 165
3 169 167 109
3 168 170 166
3 169 171 167
3 172 170 168
3 169 173 171
3 174 170 172
3 175 173 169
3 174 176 170
3 175 177 173
3 178 176 174
3 179 177 175
3 178 180 176
3 179 181 177
3 182 180 178
3 183 181 179
3 182 184 180
3 183 185 181
3 186 184 182
3 187 185 183
3 186 188 184
3 187 189 185
3 190 188 186
3 191 189 187
3 190 192 188
3 99 193 149
3 99 194 193
3 99 195 194
3 196 197 198
3 199 200 201
3 202 197 196
3 199 203 200
3 202 204 197
3 205 203 199
3 206 204 202
3 205 207 203
3 206 208 204
3 209 207 205
3 210 208 206
3 209 211 207
3 210 212 208
3 213 211 209
3 214 212 210
3 213 215 211
3 214 216 212
3 217 215 213
3 218 216 214
3 217 219 215
3 218 220 216
3 221 219 217
3 222 220 218
3 221 223 219
3 224 220 222
3 221 225 223
3 224 226 220
3 227 225 221
3 228 226 224
3 227 229 225
3 228 230 226
3 231 230 228
3 227 232 229
3 233 230 231
3 227 234 232
3 233 235 230
3 236 235 233
3 227 237 234
3 238 235 236
3 227 239 237
3 240 235 238
3 227 241 239
3 240 242 235
3 243 242 240
3 227 244 241
3 99 245 195
3 246 242 243
3 227 247 244
3 248 242 246
3 227 249 247
3 250 242 248
3 227 251 249
3 252 242 250
3 227 253 251
3 252 254 242
3 255 254 252
3 227 256 253
3 257 254 255
3 227 258 256
3 257 259 254
3 260 259 257
3 227 261 258
3 262 259 260
3 227 263 261
3 262 264 259
3 265 264 262
3 227 266 263
3 99 267 245
3 265 268 264
3 269 268 265
3 227 270 266
3 271 268 269
3 227 272 270
3 271 273 268
3 274 273 271
3 227 275 272
3 274 276 273
3 277 276 274
3 227 278 275
3 99 227 267
3 279 276 277
3 227 280 278
3 279 281 276
3 282 281 279
3 227 283 280
3 283 284 280
3 284 285 280
3 285 286 280
3 286 287 280
3 287 288 280
3 288 289 280
3 289 290 280
3 290 291 280
3 291 292 280
3 292 293 280
3 293 294 280
3 294 295 280
3 282 99 281
3 282 227 99
3 282 283 227
3 296 283 282
3 296 297 283
3 298 297 296
3 299 297 298
3 111 300 108
3 111 301 300
3 111 302 301
3 111 303 302
3 111 304 303
3 111 305 304
3 111 306 305
3 111 307 306
3 111 308 307
3 111 309 308
3 111 310 309
3 111 311 310
3 111 312 311
3 111 313 312
3 111 314 313
3 111 315 314
3 111 316 315
3 111 317 316
3 111 318 317
3 111 319 318
3 111 320 319
3 111 321 320
3 111 322 321
3 111 323 322
3 111 324 323
3 325 297 299
3 111 326 324
3 111 327 326
3 111 328 327
3 111 329 328
3 111 330 329
3 111 331 330
3 111 332 331
3 333 297 325
3 111 334 332
3 111 335 334
3 111 336 335
3 111 337 336
3 111 338 337
3 111 339 338
3 340 297 333
3 111 341 339
3 111 342 341
3 343 342 111
3 343 344 342
3 345 297 340
3 346 344 343
3 346 347 344
3 348 347 346
3 348 349 347
3 350 349 348
3 351 349 350
3 351 352 349
3 353 297 345
3 354 352 351
3 354 355 352
3 356 355 354
3 357 355 356
3 357 358 355
3 359 358 357
3 359 360 358
3 361 360 359
3 362 360 361
3 362 363 360
3 364 363 362
3 365 363 364
3 366 363 365
3 367 363 366
3 368 363 367
3 369 363 368
3 370 363 369
3 371 363 370
3 372 363 371
3 373 363 372
3 374 363 373
3 375 363 374
3 376 297 353
3 377 297 376
3 378 297 377
3 379 297 378
3 380 297 379
3 380 381 297
3 382 381 380
3 382 383 381
3 384 383 382
3 384 385 383
3 386 385 384
3 386 387 385
3 388 387 386
3 388 389 387
3 390 389 388

View File

@@ -1,364 +0,0 @@
ply
format ascii 1.0
comment Created by Blender 2.91.0 - www.blender.org
element vertex 178
property float x
property float y
property float z
element face 176
property list uchar uint vertex_indices
end_header
-0.007848 0.007826 0.000000
-0.006431 0.036270 0.000000
-0.007848 0.036270 0.000000
-0.004848 0.036270 0.000000
-0.003156 0.036270 0.000000
-0.001410 0.036270 0.000000
0.000337 0.036270 0.000000
0.002029 0.036270 0.000000
0.003612 0.036270 0.000000
0.005029 0.036270 0.000000
0.006227 0.036270 0.000000
0.007151 0.036270 0.000000
0.007746 0.036270 0.000000
0.007956 0.036270 0.000000
0.007956 0.007826 0.000000
-0.044254 0.028970 0.000000
-0.041697 0.028916 0.000000
-0.042967 0.029065 0.000000
0.041804 0.028897 0.000000
0.044362 0.028951 0.000000
0.043074 0.029046 0.000000
-0.045523 0.028615 0.000000
0.045631 0.028597 0.000000
-0.040480 0.028538 0.000000
0.040587 0.028519 0.000000
-0.046737 0.027987 0.000000
0.046845 0.027968 0.000000
-0.039351 0.027945 0.000000
0.039459 0.027926 0.000000
-0.047861 0.027070 0.000000
0.047969 0.027051 0.000000
-0.038348 0.027152 0.000000
0.038455 0.027133 0.000000
-0.037505 0.026175 0.000000
0.037612 0.026156 0.000000
-0.048301 0.026630 0.000000
0.048408 0.026611 0.000000
-0.049517 0.025415 0.000000
0.049624 0.025396 0.000000
-0.036858 0.025027 0.000000
0.036966 0.025008 0.000000
-0.051354 0.023578 0.000000
0.051461 0.023559 0.000000
-0.036444 0.023724 0.000000
0.036552 0.023705 0.000000
-0.036298 0.022281 0.000000
0.036406 0.022262 0.000000
-0.053656 0.021276 0.000000
0.053763 0.021257 0.000000
-0.036298 0.021997 0.000000
0.036406 0.007826 0.000000
-0.036298 0.021211 0.000000
-0.056269 0.018664 0.000000
0.056376 0.018645 0.000000
-0.036298 0.020023 0.000000
-0.036298 0.018534 0.000000
-0.059037 0.015897 0.000000
0.059144 0.015878 0.000000
-0.036298 0.016844 0.000000
-0.036298 0.015054 0.000000
-0.061805 0.013129 0.000000
0.061912 0.013110 0.000000
-0.036298 0.013263 0.000000
-0.036298 0.011574 0.000000
-0.064418 0.010517 0.000000
0.064525 0.010498 0.000000
-0.036298 0.010085 0.000000
-0.066720 0.008215 0.000000
0.066828 0.008196 0.000000
-0.036298 0.008897 0.000000
-0.036298 0.008110 0.000000
-0.068557 0.006379 0.000000
0.068664 0.006360 0.000000
-0.036298 0.007826 0.000000
-0.069773 0.005163 0.000000
0.069880 0.005144 0.000000
-0.070213 0.004723 0.000000
0.070320 0.004704 0.000000
-0.070819 0.004030 0.000000
0.070926 0.004011 0.000000
-0.071315 0.003279 0.000000
0.071422 0.003260 0.000000
-0.071701 0.002483 0.000000
0.071808 0.002464 0.000000
-0.071976 0.001653 0.000000
0.072084 0.001634 0.000000
-0.072142 0.000800 0.000000
0.072249 0.000780 0.000000
-0.072197 -0.000065 0.000000
0.072304 -0.000084 0.000000
-0.072142 -0.000930 0.000000
0.072249 -0.000949 0.000000
-0.071976 -0.001783 0.000000
0.072084 -0.001802 0.000000
-0.071701 -0.002613 0.000000
0.071808 -0.002633 0.000000
-0.071315 -0.003410 0.000000
0.071422 -0.003429 0.000000
-0.070819 -0.004160 0.000000
0.070926 -0.004179 0.000000
-0.070213 -0.004854 0.000000
0.070320 -0.004873 0.000000
-0.069773 -0.005293 0.000000
0.069880 -0.005312 0.000000
-0.068557 -0.006509 0.000000
0.068664 -0.006528 0.000000
-0.066720 -0.008345 0.000000
-0.036298 -0.007975 0.000000
-0.007848 -0.007975 0.000000
0.007956 -0.007975 0.000000
0.036406 -0.007975 0.000000
0.066828 -0.008364 0.000000
-0.036298 -0.022412 0.000000
-0.007848 -0.036419 0.000000
-0.007043 -0.036419 0.000000
-0.001921 -0.036419 0.000000
0.007956 -0.036419 0.000000
0.036406 -0.008260 0.000000
0.036406 -0.009046 0.000000
-0.064418 -0.010647 0.000000
0.064525 -0.010666 0.000000
0.036406 -0.010234 0.000000
0.036406 -0.011723 0.000000
-0.061805 -0.013260 0.000000
0.061912 -0.013278 0.000000
0.036406 -0.013413 0.000000
-0.059037 -0.016027 0.000000
0.059144 -0.016046 0.000000
0.036406 -0.015203 0.000000
0.036406 -0.016993 0.000000
-0.056269 -0.018795 0.000000
0.056376 -0.018813 0.000000
0.036406 -0.018683 0.000000
0.036406 -0.020172 0.000000
-0.053656 -0.021407 0.000000
0.053763 -0.021426 0.000000
0.036406 -0.021360 0.000000
0.036406 -0.022146 0.000000
-0.051354 -0.023709 0.000000
0.051461 -0.023728 0.000000
0.036406 -0.022431 0.000000
-0.036444 -0.023855 0.000000
0.036552 -0.023874 0.000000
-0.049517 -0.025545 0.000000
0.049624 -0.025564 0.000000
-0.036858 -0.025158 0.000000
0.036966 -0.025176 0.000000
-0.037505 -0.026305 0.000000
0.037612 -0.026324 0.000000
-0.048301 -0.026761 0.000000
0.048408 -0.026780 0.000000
-0.038348 -0.027283 0.000000
0.038455 -0.027302 0.000000
-0.047861 -0.027200 0.000000
0.047969 -0.027219 0.000000
-0.046737 -0.028118 0.000000
0.046845 -0.028136 0.000000
-0.039351 -0.028075 0.000000
0.039459 -0.028094 0.000000
-0.040479 -0.028668 0.000000
0.040587 -0.028687 0.000000
-0.045523 -0.028746 0.000000
0.045631 -0.028765 0.000000
-0.041697 -0.029047 0.000000
0.041804 -0.029066 0.000000
-0.044254 -0.029100 0.000000
0.044362 -0.029119 0.000000
-0.042967 -0.029196 0.000000
0.043074 -0.029215 0.000000
-0.000229 -0.036419 0.000000
0.006539 -0.036419 0.000000
0.004956 -0.036419 0.000000
0.001517 -0.036419 0.000000
0.003264 -0.036419 0.000000
-0.003504 -0.036419 0.000000
-0.004921 -0.036419 0.000000
-0.006120 -0.036419 0.000000
-0.007638 -0.036419 0.000000
3 0 1 2
3 0 3 1
3 0 4 3
3 0 5 4
3 0 6 5
3 0 7 6
3 0 8 7
3 0 9 8
3 0 10 9
3 0 11 10
3 0 12 11
3 0 13 12
3 0 14 13
3 15 16 17
3 18 19 20
3 21 16 15
3 18 22 19
3 21 23 16
3 24 22 18
3 25 23 21
3 24 26 22
3 25 27 23
3 28 26 24
3 29 27 25
3 28 30 26
3 29 31 27
3 32 30 28
3 29 33 31
3 34 30 32
3 35 33 29
3 34 36 30
3 37 33 35
3 34 38 36
3 37 39 33
3 40 38 34
3 41 39 37
3 40 42 38
3 41 43 39
3 44 42 40
3 41 45 43
3 46 42 44
3 47 45 41
3 46 48 42
3 47 49 45
3 50 48 46
3 47 51 49
3 52 51 47
3 50 53 48
3 52 54 51
3 52 55 54
3 56 55 52
3 50 57 53
3 56 58 55
3 56 59 58
3 60 59 56
3 50 61 57
3 60 62 59
3 60 63 62
3 64 63 60
3 50 65 61
3 64 66 63
3 67 66 64
3 50 68 65
3 67 69 66
3 67 70 69
3 71 70 67
3 50 72 68
3 71 73 70
3 71 0 73
3 71 14 0
3 71 50 14
3 71 72 50
3 74 72 71
3 74 75 72
3 76 75 74
3 76 77 75
3 78 77 76
3 78 79 77
3 80 79 78
3 80 81 79
3 82 81 80
3 82 83 81
3 84 83 82
3 84 85 83
3 86 85 84
3 86 87 85
3 88 87 86
3 88 89 87
3 90 89 88
3 90 91 89
3 92 91 90
3 92 93 91
3 94 93 92
3 94 95 93
3 96 95 94
3 96 97 95
3 98 97 96
3 98 99 97
3 100 99 98
3 100 101 99
3 102 101 100
3 102 103 101
3 104 103 102
3 104 105 103
3 106 105 104
3 106 107 105
3 107 108 105
3 108 109 105
3 109 110 105
3 110 111 105
3 106 112 107
3 113 109 108
3 113 114 109
3 114 115 109
3 115 116 109
3 117 111 110
3 118 111 117
3 119 112 106
3 118 120 111
3 121 120 118
3 122 120 121
3 123 112 119
3 122 124 120
3 125 124 122
3 126 112 123
3 125 127 124
3 128 127 125
3 129 127 128
3 130 112 126
3 129 131 127
3 132 131 129
3 133 131 132
3 134 112 130
3 133 135 131
3 136 135 133
3 137 135 136
3 138 112 134
3 137 139 135
3 140 139 137
3 138 141 112
3 142 139 140
3 143 141 138
3 142 144 139
3 143 145 141
3 146 144 142
3 143 147 145
3 148 144 146
3 149 147 143
3 148 150 144
3 149 151 147
3 152 150 148
3 153 151 149
3 152 154 150
3 155 151 153
3 152 156 154
3 155 157 151
3 158 156 152
3 155 159 157
3 160 156 158
3 161 159 155
3 160 162 156
3 161 163 159
3 164 162 160
3 165 163 161
3 164 166 162
3 165 167 163
3 168 166 164
3 115 169 116
3 169 170 116
3 169 171 170
3 169 172 171
3 172 173 171
3 114 174 115
3 114 175 174
3 114 176 175
3 113 177 114

269
rsc/mesh/icon_text.ply Normal file
View File

@@ -0,0 +1,269 @@
ply
format ascii 1.0
comment Created by Blender 3.6.2 - www.blender.org
element vertex 128
property float x
property float y
property float z
property float nx
property float ny
property float nz
property float s
property float t
element face 126
property list uchar uint vertex_indices
end_header
-0.097202 0.041461 0.000000 0.000000 0.000000 1.000000 0.015748 0.000000
-0.065577 0.065123 0.000000 0.000000 0.000000 1.000000 0.062992 0.000000
-0.081445 0.088699 0.000000 0.000000 0.000000 1.000000 0.007874 0.000000
-0.060589 0.068724 0.000000 0.000000 0.000000 1.000000 0.070866 0.000000
-0.055407 0.071740 0.000000 0.000000 0.000000 1.000000 0.078740 0.000000
-0.050016 0.074183 0.000000 0.000000 0.000000 1.000000 0.086614 0.000000
-0.044397 0.076063 0.000000 0.000000 0.000000 1.000000 0.094488 0.000000
-0.038536 0.077392 0.000000 0.000000 0.000000 1.000000 0.102362 0.000000
-0.032414 0.078181 0.000000 0.000000 0.000000 1.000000 0.110236 0.000000
0.082027 0.088699 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000
-0.026016 0.078442 0.000000 0.000000 0.000000 1.000000 0.118110 0.000000
0.025754 0.078442 0.000000 0.000000 0.000000 1.000000 0.811024 0.000000
0.031937 0.078156 0.000000 0.000000 0.000000 1.000000 0.818898 0.000000
0.037960 0.077298 0.000000 0.000000 0.000000 1.000000 0.826772 0.000000
0.043814 0.075873 0.000000 0.000000 0.000000 1.000000 0.834646 0.000000
0.049493 0.073883 0.000000 0.000000 0.000000 1.000000 0.842520 0.000000
0.054988 0.071330 0.000000 0.000000 0.000000 1.000000 0.850394 0.000000
0.060292 0.068218 0.000000 0.000000 0.000000 1.000000 0.858268 0.000000
0.097784 0.041461 0.000000 0.000000 0.000000 1.000000 1.000000 0.000000
-0.023822 0.078384 0.000000 0.000000 0.000000 1.000000 0.125984 0.000000
0.023642 0.078389 0.000000 0.000000 0.000000 1.000000 0.803150 0.000000
0.021795 0.078218 0.000000 0.000000 0.000000 1.000000 0.795276 0.000000
-0.021875 0.078204 0.000000 0.000000 0.000000 1.000000 0.133858 0.000000
0.020198 0.077915 0.000000 0.000000 0.000000 1.000000 0.787402 0.000000
-0.020165 0.077894 0.000000 0.000000 0.000000 1.000000 0.141732 0.000000
0.018835 0.077462 0.000000 0.000000 0.000000 1.000000 0.779528 0.000000
-0.018680 0.077442 0.000000 0.000000 0.000000 1.000000 0.149606 0.000000
0.017691 0.076845 0.000000 0.000000 0.000000 1.000000 0.771654 0.000000
-0.017410 0.076841 0.000000 0.000000 0.000000 1.000000 0.157480 0.000000
0.016751 0.076046 0.000000 0.000000 0.000000 1.000000 0.763780 0.000000
-0.016345 0.076080 0.000000 0.000000 0.000000 1.000000 0.165354 0.000000
-0.015472 0.075150 0.000000 0.000000 0.000000 1.000000 0.173228 0.000000
0.015998 0.075051 0.000000 0.000000 0.000000 1.000000 0.755906 0.000000
-0.014783 0.074043 0.000000 0.000000 0.000000 1.000000 0.181102 0.000000
0.015417 0.073843 0.000000 0.000000 0.000000 1.000000 0.748031 0.000000
-0.014265 0.072748 0.000000 0.000000 0.000000 1.000000 0.188976 0.000000
0.014992 0.072406 0.000000 0.000000 0.000000 1.000000 0.740157 0.000000
-0.013909 0.071256 0.000000 0.000000 0.000000 1.000000 0.196850 0.000000
0.014708 0.070725 0.000000 0.000000 0.000000 1.000000 0.732283 0.000000
-0.013703 0.069558 0.000000 0.000000 0.000000 1.000000 0.204724 0.000000
0.014549 0.068783 0.000000 0.000000 0.000000 1.000000 0.724409 0.000000
-0.013636 0.067644 0.000000 0.000000 0.000000 1.000000 0.212598 0.000000
0.014500 0.066565 0.000000 0.000000 0.000000 1.000000 0.716535 0.000000
0.065396 0.064549 0.000000 0.000000 0.000000 1.000000 0.866142 0.000000
-0.013636 0.065207 0.000000 0.000000 0.000000 1.000000 0.220472 0.000000
0.014500 0.064148 0.000000 0.000000 0.000000 1.000000 0.708661 0.000000
-0.013636 0.058467 0.000000 0.000000 0.000000 1.000000 0.228346 0.000000
-0.070389 0.060926 0.000000 0.000000 0.000000 1.000000 0.055118 0.000000
0.070293 0.060326 0.000000 0.000000 0.000000 1.000000 0.874016 0.000000
0.014500 0.057467 0.000000 0.000000 0.000000 1.000000 0.700787 0.000000
-0.075040 0.056122 0.000000 0.000000 0.000000 1.000000 0.047244 0.000000
0.074976 0.055552 0.000000 0.000000 0.000000 1.000000 0.881890 0.000000
-0.013636 0.048285 0.000000 0.000000 0.000000 1.000000 0.236220 0.000000
0.014500 0.047374 0.000000 0.000000 0.000000 1.000000 0.692913 0.000000
-0.079547 0.050699 0.000000 0.000000 0.000000 1.000000 0.039370 0.000000
0.079435 0.050230 0.000000 0.000000 0.000000 1.000000 0.889764 0.000000
-0.083928 0.044646 0.000000 0.000000 0.000000 1.000000 0.031496 0.000000
0.083664 0.044362 0.000000 0.000000 0.000000 1.000000 0.897638 0.000000
-0.013636 0.035522 0.000000 0.000000 0.000000 1.000000 0.244094 0.000000
0.014500 0.034722 0.000000 0.000000 0.000000 1.000000 0.685039 0.000000
-0.088198 0.037952 0.000000 0.000000 0.000000 1.000000 0.023622 0.000000
0.087654 0.037952 0.000000 0.000000 0.000000 1.000000 0.905512 0.000000
0.089237 0.038500 0.000000 0.000000 0.000000 -1.000000 0.929134 0.000000
0.090281 0.038861 0.000000 0.000000 0.000000 1.000000 0.937008 0.000000
0.091465 0.039272 0.000000 0.000000 0.000000 -1.000000 0.944882 0.000000
0.092719 0.039706 0.000000 0.000000 0.000000 1.000000 0.952756 0.000000
0.096201 0.040912 0.000000 0.000000 0.000000 1.000000 0.976378 0.000000
0.097033 0.041201 0.000000 0.000000 0.000000 1.000000 0.984252 0.000000
0.097584 0.041392 0.000000 0.000000 0.000000 1.000000 0.992126 0.000000
0.095158 0.040551 0.000000 0.000000 0.000000 -1.000000 0.968504 0.000000
0.093973 0.040141 0.000000 0.000000 0.000000 1.000000 0.960630 0.000000
0.087854 0.038021 0.000000 0.000000 0.000000 -1.000000 0.913386 0.000000
0.088405 0.038212 0.000000 0.000000 0.000000 1.000000 0.921260 0.000000
-0.013636 0.021038 0.000000 0.000000 0.000000 1.000000 0.251969 0.000000
0.014500 0.020365 0.000000 0.000000 0.000000 1.000000 0.677165 0.000000
-0.013636 0.005694 0.000000 0.000000 0.000000 1.000000 0.259843 0.000000
0.014500 0.005154 0.000000 0.000000 0.000000 1.000000 0.669291 0.000000
-0.013636 -0.009650 0.000000 0.000000 0.000000 1.000000 0.267717 0.000000
0.014500 -0.010056 0.000000 0.000000 0.000000 1.000000 0.661417 0.000000
-0.013636 -0.024133 0.000000 0.000000 0.000000 1.000000 0.275591 0.000000
0.014500 -0.024413 0.000000 0.000000 0.000000 1.000000 0.653543 0.000000
-0.013636 -0.036896 0.000000 0.000000 0.000000 1.000000 0.283465 0.000000
0.014500 -0.037065 0.000000 0.000000 0.000000 1.000000 0.645669 0.000000
-0.013636 -0.047078 0.000000 0.000000 0.000000 1.000000 0.291339 0.000000
0.014500 -0.047158 0.000000 0.000000 0.000000 1.000000 0.637795 0.000000
-0.013636 -0.053818 0.000000 0.000000 0.000000 1.000000 0.299213 0.000000
0.014500 -0.053839 0.000000 0.000000 0.000000 1.000000 0.629921 0.000000
-0.013636 -0.056256 0.000000 0.000000 0.000000 1.000000 0.307087 0.000000
0.014500 -0.056256 0.000000 0.000000 0.000000 1.000000 0.622047 0.000000
-0.013782 -0.061521 0.000000 0.000000 0.000000 1.000000 0.314961 0.000000
0.014580 -0.061516 0.000000 0.000000 0.000000 1.000000 0.614173 0.000000
0.014839 -0.066122 0.000000 0.000000 0.000000 1.000000 0.606299 0.000000
-0.014094 -0.066141 0.000000 0.000000 0.000000 1.000000 0.322835 0.000000
0.015300 -0.070119 0.000000 0.000000 0.000000 1.000000 0.598425 0.000000
-0.014599 -0.070157 0.000000 0.000000 0.000000 1.000000 0.330709 0.000000
0.015990 -0.073552 0.000000 0.000000 0.000000 1.000000 0.590551 0.000000
-0.015325 -0.073612 0.000000 0.000000 0.000000 1.000000 0.338583 0.000000
0.016934 -0.076463 0.000000 0.000000 0.000000 1.000000 0.582677 0.000000
-0.016296 -0.076545 0.000000 0.000000 0.000000 1.000000 0.346457 0.000000
0.018158 -0.078897 0.000000 0.000000 0.000000 1.000000 0.574803 0.000000
-0.017540 -0.078998 0.000000 0.000000 0.000000 1.000000 0.354331 0.000000
0.019686 -0.080897 0.000000 0.000000 0.000000 1.000000 0.566929 0.000000
-0.019083 -0.081012 0.000000 0.000000 0.000000 1.000000 0.362205 0.000000
0.021544 -0.082509 0.000000 0.000000 0.000000 1.000000 0.559055 0.000000
-0.020952 -0.082629 0.000000 0.000000 0.000000 1.000000 0.370079 0.000000
0.023759 -0.083776 0.000000 0.000000 0.000000 1.000000 0.551181 0.000000
-0.023172 -0.083890 0.000000 0.000000 0.000000 1.000000 0.377953 0.000000
0.026354 -0.084743 0.000000 0.000000 0.000000 1.000000 0.543307 0.000000
-0.025770 -0.084836 0.000000 0.000000 0.000000 1.000000 0.385827 0.000000
0.029355 -0.085452 0.000000 0.000000 0.000000 1.000000 0.535433 0.000000
-0.028773 -0.085509 0.000000 0.000000 0.000000 1.000000 0.393701 0.000000
0.032789 -0.085949 0.000000 0.000000 0.000000 1.000000 0.527559 0.000000
-0.032206 -0.085949 0.000000 0.000000 0.000000 1.000000 0.401575 0.000000
-0.032417 -0.085965 0.000000 0.000000 0.000000 1.000000 0.409449 0.000000
0.043762 -0.086758 0.000000 0.000000 0.000000 1.000000 0.519685 0.000000
-0.032998 -0.086009 0.000000 0.000000 0.000000 1.000000 0.417323 0.000000
-0.033877 -0.086075 0.000000 0.000000 0.000000 1.000000 0.425197 0.000000
-0.034978 -0.086159 0.000000 0.000000 0.000000 1.000000 0.433071 0.000000
-0.036228 -0.086253 0.000000 0.000000 0.000000 1.000000 0.440945 0.000000
-0.037552 -0.086354 0.000000 0.000000 0.000000 1.000000 0.448819 0.000000
-0.038876 -0.086454 0.000000 0.000000 0.000000 1.000000 0.456693 0.000000
-0.040126 -0.086548 0.000000 0.000000 0.000000 1.000000 0.464567 0.000000
-0.041228 -0.086632 0.000000 0.000000 0.000000 1.000000 0.472441 0.000000
-0.042106 -0.086698 0.000000 0.000000 0.000000 1.000000 0.480315 0.000000
-0.042688 -0.086743 0.000000 0.000000 0.000000 1.000000 0.488189 0.000000
-0.042898 -0.086758 0.000000 0.000000 0.000000 1.000000 0.496063 0.000000
-0.042898 -0.095126 0.000000 0.000000 0.000000 1.000000 0.503937 0.000000
0.043762 -0.095126 0.000000 0.000000 0.000000 1.000000 0.511811 0.000000
3 0 1 2
3 1 3 2
3 3 4 2
3 4 5 2
3 5 6 2
3 6 7 2
3 7 8 2
3 8 9 2
3 8 10 9
3 10 11 9
3 11 12 9
3 12 13 9
3 13 14 9
3 14 15 9
3 15 16 9
3 16 17 9
3 17 18 9
3 19 11 10
3 19 20 11
3 19 21 20
3 22 21 19
3 22 23 21
3 24 23 22
3 24 25 23
3 26 25 24
3 26 27 25
3 28 27 26
3 28 29 27
3 30 29 28
3 31 29 30
3 31 32 29
3 33 32 31
3 33 34 32
3 35 34 33
3 35 36 34
3 37 36 35
3 37 38 36
3 39 38 37
3 39 40 38
3 41 40 39
3 41 42 40
3 43 18 17
3 44 42 41
3 44 45 42
3 46 45 44
3 0 47 1
3 48 18 43
3 46 49 45
3 0 50 47
3 51 18 48
3 52 49 46
3 52 53 49
3 0 54 50
3 55 18 51
3 0 56 54
3 57 18 55
3 58 53 52
3 58 59 53
3 0 60 56
3 61 18 57
3 61 62 18
3 62 63 18
3 63 64 18
3 64 65 18
3 65 66 18
3 66 67 18
3 67 68 18
3 65 69 66
3 65 70 69
3 61 71 62
3 71 72 62
3 73 59 58
3 73 74 59
3 75 74 73
3 75 76 74
3 77 76 75
3 77 78 76
3 79 78 77
3 79 80 78
3 81 80 79
3 81 82 80
3 83 82 81
3 83 84 82
3 85 84 83
3 85 86 84
3 87 86 85
3 87 88 86
3 89 88 87
3 89 90 88
3 89 91 90
3 92 91 89
3 92 93 91
3 94 93 92
3 94 95 93
3 96 95 94
3 96 97 95
3 98 97 96
3 98 99 97
3 100 99 98
3 100 101 99
3 102 101 100
3 102 103 101
3 104 103 102
3 104 105 103
3 106 105 104
3 106 107 105
3 108 107 106
3 108 109 107
3 110 109 108
3 110 111 109
3 112 111 110
3 113 111 112
3 113 114 111
3 115 114 113
3 116 114 115
3 117 114 116
3 118 114 117
3 119 114 118
3 120 114 119
3 121 114 120
3 122 114 121
3 123 114 122
3 124 114 123
3 125 114 124
3 126 114 125
3 126 127 114

580
rsc/mesh/icon_tv.ply Normal file
View File

@@ -0,0 +1,580 @@
ply
format ascii 1.0
comment Created by Blender 3.2.2 - www.blender.org
element vertex 285
property float x
property float y
property float z
element face 285
property list uchar uint vertex_indices
end_header
-0.169188 -0.075740 0.000000
-0.169243 -0.070732 0.000000
-0.169243 -0.074063 0.000000
-0.169243 -0.061524 0.000000
-0.169243 -0.047614 0.000000
-0.169243 -0.030177 0.000000
-0.169243 -0.010389 0.000000
-0.169243 0.010574 0.000000
-0.169243 0.031537 0.000000
-0.169243 0.051325 0.000000
-0.169243 0.068762 0.000000
-0.169243 0.082672 0.000000
-0.169243 0.091880 0.000000
-0.169243 0.095211 0.000000
-0.169188 0.096888 0.000000
-0.169023 -0.077400 0.000000
-0.169023 0.098548 0.000000
-0.168751 -0.079040 0.000000
-0.168751 0.100187 0.000000
-0.168373 -0.080652 0.000000
-0.168373 0.101800 0.000000
-0.167892 -0.082234 0.000000
-0.167892 0.103382 0.000000
-0.167310 -0.083780 0.000000
-0.167310 0.104927 0.000000
-0.166629 -0.085284 0.000000
-0.166629 0.106432 0.000000
-0.165850 -0.086742 0.000000
-0.165850 0.107890 0.000000
-0.164976 -0.088150 0.000000
-0.164976 0.109298 0.000000
-0.164010 0.110649 0.000000
-0.164010 -0.089501 0.000000
-0.162952 0.111940 0.000000
-0.162952 -0.090792 0.000000
-0.161805 0.113165 0.000000
-0.161805 -0.092017 0.000000
-0.160580 0.114312 0.000000
-0.160580 -0.093164 0.000000
-0.159289 0.115369 0.000000
-0.159289 -0.094221 0.000000
-0.157937 0.116336 0.000000
-0.157937 -0.095188 0.000000
-0.156529 0.117209 0.000000
-0.156529 -0.096062 0.000000
-0.155070 0.117988 0.000000
-0.155070 -0.096840 0.000000
-0.153566 0.118669 0.000000
-0.153566 -0.097521 0.000000
-0.152020 0.119251 0.000000
-0.152020 -0.098103 0.000000
-0.150438 0.119732 0.000000
-0.150438 -0.098584 0.000000
-0.149867 0.100208 0.000000
-0.148825 0.120109 0.000000
-0.148825 -0.098962 0.000000
-0.149867 -0.079856 0.000000
0.150125 0.100208 0.000000
0.150125 -0.079856 0.000000
-0.147185 0.120382 0.000000
-0.147185 -0.099234 0.000000
-0.145524 0.120546 0.000000
-0.145524 -0.099399 0.000000
-0.143847 0.120602 0.000000
-0.143847 -0.099454 0.000000
0.143979 0.120602 0.000000
-0.141348 -0.099454 0.000000
-0.134441 -0.099454 0.000000
-0.124006 -0.099454 0.000000
-0.110926 -0.099454 0.000000
-0.118432 -0.126889 0.000000
-0.118451 -0.126468 0.000000
-0.118451 -0.126625 0.000000
-0.118451 -0.126034 0.000000
-0.118451 -0.125379 0.000000
-0.118451 -0.124557 0.000000
-0.118451 -0.123624 0.000000
-0.118451 -0.122636 0.000000
-0.118451 -0.121647 0.000000
-0.118451 -0.120715 0.000000
-0.118451 -0.119893 0.000000
-0.118451 -0.119237 0.000000
-0.118451 -0.118803 0.000000
-0.118451 -0.118646 0.000000
-0.118432 -0.118382 0.000000
-0.118377 -0.127150 0.000000
-0.118377 -0.118122 0.000000
-0.118286 -0.127407 0.000000
-0.118286 -0.117864 0.000000
-0.118160 -0.127661 0.000000
-0.118160 -0.117611 0.000000
-0.118000 -0.127909 0.000000
-0.118000 -0.117362 0.000000
-0.117806 -0.128152 0.000000
-0.117806 -0.117119 0.000000
-0.117579 -0.128388 0.000000
-0.117579 -0.116883 0.000000
-0.117319 -0.128618 0.000000
-0.117319 -0.116654 0.000000
-0.117028 -0.128839 0.000000
-0.117028 -0.116433 0.000000
-0.116706 -0.129051 0.000000
-0.116706 -0.116220 0.000000
-0.116353 -0.129254 0.000000
-0.116353 -0.116017 0.000000
-0.115971 -0.129446 0.000000
-0.115971 -0.115825 0.000000
-0.115563 -0.129627 0.000000
-0.115563 -0.115645 0.000000
-0.115132 -0.129793 0.000000
-0.115132 -0.115479 0.000000
-0.114682 -0.129945 0.000000
-0.114682 -0.115327 0.000000
-0.114212 -0.130082 0.000000
-0.114212 -0.115189 0.000000
-0.113726 -0.130204 0.000000
-0.113726 -0.115067 0.000000
-0.113225 -0.130311 0.000000
-0.113225 -0.114960 0.000000
-0.112709 -0.130403 0.000000
-0.112709 -0.114869 0.000000
-0.112182 -0.130478 0.000000
-0.112182 -0.114793 0.000000
-0.111644 -0.130538 0.000000
-0.111644 -0.114734 0.000000
-0.111098 -0.130580 0.000000
-0.111098 -0.114691 0.000000
-0.110544 -0.130606 0.000000
-0.110544 -0.114665 0.000000
-0.096082 -0.099454 0.000000
-0.109985 -0.130615 0.000000
-0.109985 -0.114656 0.000000
-0.105654 -0.130615 0.000000
-0.016865 -0.114656 0.000000
-0.093681 -0.130615 0.000000
-0.080356 -0.099454 0.000000
-0.075594 -0.130615 0.000000
-0.064630 -0.099454 0.000000
-0.052921 -0.130615 0.000000
-0.049786 -0.099454 0.000000
-0.027192 -0.130615 0.000000
-0.036706 -0.099454 0.000000
-0.026271 -0.099454 0.000000
0.000066 -0.130615 0.000000
-0.019363 -0.099454 0.000000
-0.016865 -0.099454 0.000000
0.016997 -0.099454 0.000000
0.027324 -0.130615 0.000000
0.016997 -0.114656 0.000000
0.143979 -0.099454 0.000000
0.018829 -0.114656 0.000000
0.023895 -0.114656 0.000000
0.031547 -0.114656 0.000000
0.053054 -0.130615 0.000000
0.041139 -0.114656 0.000000
0.052025 -0.114656 0.000000
0.063557 -0.114656 0.000000
0.075726 -0.130615 0.000000
0.075089 -0.114656 0.000000
0.085975 -0.114656 0.000000
0.093813 -0.130615 0.000000
0.095567 -0.114656 0.000000
0.105786 -0.130615 0.000000
0.103219 -0.114656 0.000000
0.108285 -0.114656 0.000000
0.110117 -0.130615 0.000000
0.110117 -0.114656 0.000000
0.110676 -0.114665 0.000000
0.110676 -0.130606 0.000000
0.111230 -0.114691 0.000000
0.111230 -0.130580 0.000000
0.111776 -0.114734 0.000000
0.111776 -0.130538 0.000000
0.112314 -0.114793 0.000000
0.112314 -0.130478 0.000000
0.112842 -0.114869 0.000000
0.112842 -0.130403 0.000000
0.113357 -0.114960 0.000000
0.113357 -0.130311 0.000000
0.113858 -0.115067 0.000000
0.113858 -0.130204 0.000000
0.114345 -0.115189 0.000000
0.114345 -0.130082 0.000000
0.114814 -0.115327 0.000000
0.114814 -0.129945 0.000000
0.115264 -0.115479 0.000000
0.115264 -0.129793 0.000000
0.115695 -0.115645 0.000000
0.115695 -0.129627 0.000000
0.116103 -0.115825 0.000000
0.116103 -0.129446 0.000000
0.116485 -0.116017 0.000000
0.116485 -0.129254 0.000000
0.116838 -0.116220 0.000000
0.116838 -0.129051 0.000000
0.117160 -0.116433 0.000000
0.117160 -0.128839 0.000000
0.117452 -0.116654 0.000000
0.117452 -0.128618 0.000000
0.117711 -0.116883 0.000000
0.117711 -0.128388 0.000000
0.117938 -0.117119 0.000000
0.117938 -0.128152 0.000000
0.118132 -0.117362 0.000000
0.118132 -0.127909 0.000000
0.118293 -0.117611 0.000000
0.118293 -0.127661 0.000000
0.118419 -0.117864 0.000000
0.118419 -0.127407 0.000000
0.118509 -0.118122 0.000000
0.118509 -0.127150 0.000000
0.118564 -0.118383 0.000000
0.118564 -0.126889 0.000000
0.118583 -0.118646 0.000000
0.118583 -0.126625 0.000000
0.118583 -0.126468 0.000000
0.118583 -0.126034 0.000000
0.118583 -0.125379 0.000000
0.118583 -0.124557 0.000000
0.118583 -0.123624 0.000000
0.118583 -0.122636 0.000000
0.118583 -0.121647 0.000000
0.118583 -0.120715 0.000000
0.118583 -0.119893 0.000000
0.118583 -0.119237 0.000000
0.118583 -0.118803 0.000000
0.145656 0.120546 0.000000
0.145656 -0.099399 0.000000
0.147317 0.120382 0.000000
0.147317 -0.099234 0.000000
0.148957 0.120109 0.000000
0.148957 -0.098962 0.000000
0.150570 0.119732 0.000000
0.150570 -0.098584 0.000000
0.152152 0.119251 0.000000
0.152152 -0.098103 0.000000
0.153698 0.118669 0.000000
0.153698 -0.097521 0.000000
0.155203 0.117988 0.000000
0.155203 -0.096840 0.000000
0.156661 0.117209 0.000000
0.156661 -0.096062 0.000000
0.158069 0.116336 0.000000
0.158069 -0.095188 0.000000
0.159421 0.115369 0.000000
0.159421 -0.094221 0.000000
0.160712 0.114312 0.000000
0.160712 -0.093164 0.000000
0.161937 0.113165 0.000000
0.161937 -0.092017 0.000000
0.163084 0.111940 0.000000
0.163084 -0.090792 0.000000
0.164142 0.110649 0.000000
0.164142 -0.089501 0.000000
0.165109 0.109298 0.000000
0.165109 -0.088150 0.000000
0.165982 0.107890 0.000000
0.165982 -0.086742 0.000000
0.166761 0.106432 0.000000
0.166761 -0.085284 0.000000
0.167442 0.104927 0.000000
0.167442 -0.083780 0.000000
0.168025 0.103382 0.000000
0.168025 -0.082234 0.000000
0.168505 0.101800 0.000000
0.168505 -0.080652 0.000000
0.168883 0.100187 0.000000
0.168883 -0.079040 0.000000
0.169155 0.098548 0.000000
0.169155 -0.077400 0.000000
0.169320 0.096888 0.000000
0.169320 -0.075740 0.000000
0.169376 0.095211 0.000000
0.169376 -0.074063 0.000000
0.169376 0.091880 0.000000
0.169376 -0.070732 0.000000
0.169376 -0.061524 0.000000
0.169376 -0.047614 0.000000
0.169376 -0.030177 0.000000
0.169376 -0.010389 0.000000
0.169376 0.010574 0.000000
0.169376 0.031537 0.000000
0.169376 0.051325 0.000000
0.169376 0.068762 0.000000
0.169376 0.082672 0.000000
3 0 1 2
3 0 3 1
3 0 4 3
3 0 5 4
3 0 6 5
3 0 7 6
3 0 8 7
3 0 9 8
3 0 10 9
3 0 11 10
3 0 12 11
3 0 13 12
3 0 14 13
3 15 14 0
3 15 16 14
3 17 16 15
3 17 18 16
3 19 18 17
3 19 20 18
3 21 20 19
3 21 22 20
3 23 22 21
3 23 24 22
3 25 24 23
3 25 26 24
3 27 26 25
3 27 28 26
3 29 28 27
3 29 30 28
3 29 31 30
3 32 31 29
3 32 33 31
3 34 33 32
3 34 35 33
3 36 35 34
3 36 37 35
3 38 37 36
3 38 39 37
3 40 39 38
3 40 41 39
3 42 41 40
3 42 43 41
3 44 43 42
3 44 45 43
3 46 45 44
3 46 47 45
3 48 47 46
3 48 49 47
3 50 49 48
3 50 51 49
3 52 51 50
3 52 53 51
3 53 54 51
3 55 56 52
3 56 53 52
3 57 54 53
3 55 58 56
3 57 59 54
3 60 58 55
3 57 61 59
3 62 58 60
3 57 63 61
3 64 58 62
3 57 65 63
3 66 58 64
3 67 58 66
3 68 58 67
3 69 58 68
3 70 71 72
3 70 73 71
3 70 74 73
3 70 75 74
3 70 76 75
3 70 77 76
3 70 78 77
3 70 79 78
3 70 80 79
3 70 81 80
3 70 82 81
3 70 83 82
3 70 84 83
3 85 84 70
3 85 86 84
3 87 86 85
3 87 88 86
3 89 88 87
3 89 90 88
3 91 90 89
3 91 92 90
3 93 92 91
3 93 94 92
3 95 94 93
3 95 96 94
3 97 96 95
3 97 98 96
3 99 98 97
3 99 100 98
3 101 100 99
3 101 102 100
3 103 102 101
3 103 104 102
3 105 104 103
3 105 106 104
3 107 106 105
3 107 108 106
3 109 108 107
3 109 110 108
3 111 110 109
3 111 112 110
3 113 112 111
3 113 114 112
3 115 114 113
3 115 116 114
3 117 116 115
3 117 118 116
3 119 118 117
3 119 120 118
3 121 120 119
3 121 122 120
3 123 122 121
3 123 124 122
3 125 124 123
3 125 126 124
3 127 126 125
3 127 128 126
3 129 58 69
3 130 128 127
3 130 131 128
3 132 131 130
3 132 133 131
3 134 133 132
3 135 58 129
3 136 133 134
3 137 58 135
3 138 133 136
3 139 58 137
3 140 133 138
3 141 58 139
3 142 58 141
3 143 133 140
3 144 58 142
3 145 58 144
3 143 145 133
3 143 146 145
3 146 58 145
3 147 148 143
3 148 146 143
3 149 58 146
3 147 150 148
3 147 151 150
3 147 152 151
3 153 152 147
3 153 154 152
3 153 155 154
3 153 156 155
3 157 156 153
3 157 158 156
3 157 159 158
3 160 159 157
3 160 161 159
3 162 161 160
3 162 163 161
3 162 164 163
3 165 164 162
3 165 166 164
3 165 167 166
3 168 167 165
3 168 169 167
3 170 169 168
3 170 171 169
3 172 171 170
3 172 173 171
3 174 173 172
3 174 175 173
3 176 175 174
3 176 177 175
3 178 177 176
3 178 179 177
3 180 179 178
3 180 181 179
3 182 181 180
3 182 183 181
3 184 183 182
3 184 185 183
3 186 185 184
3 186 187 185
3 188 187 186
3 188 189 187
3 190 189 188
3 190 191 189
3 192 191 190
3 192 193 191
3 194 193 192
3 194 195 193
3 196 195 194
3 196 197 195
3 198 197 196
3 198 199 197
3 200 199 198
3 200 201 199
3 202 201 200
3 202 203 201
3 204 203 202
3 204 205 203
3 206 205 204
3 206 207 205
3 208 207 206
3 208 209 207
3 210 209 208
3 210 211 209
3 212 211 210
3 212 213 211
3 214 213 212
3 215 213 214
3 216 213 215
3 217 213 216
3 218 213 217
3 219 213 218
3 220 213 219
3 221 213 220
3 222 213 221
3 223 213 222
3 224 213 223
3 225 213 224
3 57 226 65
3 227 58 149
3 57 228 226
3 229 58 227
3 57 230 228
3 231 58 229
3 57 232 230
3 233 58 231
3 233 57 58
3 233 232 57
3 233 234 232
3 235 234 233
3 235 236 234
3 237 236 235
3 237 238 236
3 239 238 237
3 239 240 238
3 241 240 239
3 241 242 240
3 243 242 241
3 243 244 242
3 245 244 243
3 245 246 244
3 247 246 245
3 247 248 246
3 249 248 247
3 249 250 248
3 251 250 249
3 251 252 250
3 253 252 251
3 253 254 252
3 255 254 253
3 255 256 254
3 257 256 255
3 257 258 256
3 259 258 257
3 259 260 258
3 261 260 259
3 261 262 260
3 263 262 261
3 263 264 262
3 265 264 263
3 265 266 264
3 267 266 265
3 267 268 266
3 269 268 267
3 269 270 268
3 271 270 269
3 271 272 270
3 273 272 271
3 273 274 272
3 275 274 273
3 276 274 275
3 277 274 276
3 278 274 277
3 279 274 278
3 280 274 279
3 281 274 280
3 282 274 281
3 283 274 282
3 284 274 283

File diff suppressed because it is too large Load Diff

21
rsc/osc/osc_test.sh Normal file
View File

@@ -0,0 +1,21 @@
#!/bin/bash
max=1
if (( $# > 0 )); then
if (( $1 > 1 )); then
max=$1
fi
fi
sleep 2
while :
do
echo -n "."
for s in $(seq 0 $max); do
oscsend localhost 7000 /vimix/#$s/alpha f "0.$((RANDOM%9999))"
oscsend localhost 7000 /vimix/#$s/gamma f "0.$((RANDOM%9999))"
done
sleep 0.1
done

29
rsc/osc/vimix_connect.sh Normal file
View File

@@ -0,0 +1,29 @@
#!/bin/sh
if [ -z "$1" ]
then
echo "Usage: "
echo $0 "<IP address> [PORT]"
exit 0
fi
if [ -z "$2" ]
then
PORT=9000
else
PORT=$2
fi
## 1. request to vimix
## Requires liblo-tools to be installed (Linux: apt install liblo-tools, OSX: brew install liblo)
oscsend $1 7000 /vimix/peertopeer/request i "$PORT"
## 2. start gstreamer client
## Requires gstreamer to be installed (Linux: apt install gstreamer1.0-tools, OSX: brew install gstreamer)
gst-launch-1.0 udpsrc port="$PORT" caps="application/x-rtp,media=(string)video,encoding-name=(string)JPEG" ! rtpjpegdepay ! queue ! decodebin ! videoconvert ! autovideosink sync=false
## if vimix is configured for H246 peer to peer, use this command instead:
## gst-launch-1.0 udpsrc port=9000 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264" ! queue ! rtph264depay ! h264parse ! decodebin ! videoconvert ! autovideosink sync=false
## 3. disconnect from vimix
oscsend $1 7000 /vimix/peertopeer/disconnect i "$PORT"

View File

@@ -0,0 +1,12 @@
// Blending of source texture (channel 0) with output window loopback (channel 1)
// by Bruno Herbelin for vimix
uniform float Blend;
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord.xy / iResolution.xy;
fragColor = mix( texture(iChannel0, uv), texture(iChannel1, uv), Blend);
}

View File

@@ -1,7 +1,7 @@
// from https://www.shadertoy.com/view/Ms2Xz3
// Adapted by Bruno Herbelin for vimix
float Intensity = 0.6;
uniform float Intensity = 0.6;
vec4 BlurColor (in vec2 Coord, in sampler2D Tex, in float MipBias)
{

View File

@@ -26,5 +26,5 @@ vec4 blur1D(vec2 U, vec2 D, float rad)
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
fragColor = blur1D( fragCoord, vec2(1,0), Radius * 0.5 );
fragColor = blur1D( fragCoord, vec2(1,0), Radius * 0.25 );
}

View File

@@ -26,5 +26,5 @@ vec4 blur1D(vec2 U, vec2 D, float rad)
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
fragColor = blur1D( fragCoord, vec2(0,1), Radius * 0.5 );
fragColor = blur1D( fragCoord, vec2(0,1), Radius * 0.25 );
}

View File

@@ -8,7 +8,7 @@
#define GOLDEN_ANGLE 2.39996323
#define ITERATIONS 60
float Radius = 0.3;
uniform float Radius = 0.3;
mat2 rot = mat2(cos(GOLDEN_ANGLE), sin(GOLDEN_ANGLE), -sin(GOLDEN_ANGLE), cos(GOLDEN_ANGLE));

View File

@@ -42,16 +42,24 @@ void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec4 texColor0 = texture(iChannel0, fragCoord.xy / iResolution.xy);
// RGB is alpha-premultiplied : revert
vec4 col = vec4( texColor0.rgb / max(texColor0.a, 0.001), 1.0);
//convert from RGB to YCvCr/YUV
vec4 keyYUV = RGBtoYUV * chromaKey;
vec4 yuv = RGBtoYUV * texColor0;
vec4 yuv = RGBtoYUV * col;
// correction of color
float t = (1. - Tolerance) * 0.2;
float mask = 1.0 - colordistance(yuv.rgb, keyYUV.rgb, vec2(t, t + 0.2));
vec4 col = max(texColor0 - mask * chromaKey, 0.0);
col = max(col - mask * chromaKey, 0.0);
// correction of alpha
t = Threshold * Threshold * 0.2;
col.a -= 1.0 - colordistance(yuv.rgb, keyYUV.rgb, vec2(t, t + 0.25));
// restore texture alpha
col.a *= texColor0.a;
fragColor = col;
}

View File

@@ -1,7 +1,7 @@
// Ordered Dithering Shader https://www.shadertoy.com/view/4lSSRR
// by mooglemoogle
// Adapted by Bruno Herbelin for vimix
float Factor = 0.5;
uniform float Factor = 0.5;
const float mult = 1.0 / 17.0;
const mat4 adjustments = (mat4(

View File

@@ -1,6 +1,6 @@
/**
* Earlybird Filter by Ruofei Du (DuRuofei.com)
* Demo: https://www.shadertoy.com/view/4lSyDK
* Demo: https://www.shadertoy.com/view/XlSyWV
* starea @ ShaderToy,License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
* https://creativecommons.org/licenses/by-nc-sa/3.0/
*
@@ -59,6 +59,8 @@ vec3 colorBurn(in vec3 s, in vec3 d )
return 1.0 - (1.0 - d) / s;
}
uniform float Contrast;
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord.xy / iResolution.xy;
@@ -79,7 +81,7 @@ void mainImage( out vec4 fragColor, in vec2 fragCoord )
col = mix(tint * col, col, gradient);
col = colorBurn(grey, col);
//col *= 0.8;
col *= Contrast + 0.5;
fragColor = vec4(col, 1.0);
}

View File

@@ -1,7 +1,7 @@
// from https://www.shadertoy.com/view/4s2GRR by SanchYESS
// Inspired by http://stackoverflow.com/questions/6030814/add-fisheye-effect-to-images-at-runtime-using-opengl-es
// Adapted by Bruno Herbelin for vimix
float Factor = 0.4;
uniform float Factor = 0.4;
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{

View File

@@ -46,8 +46,6 @@ void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord.xy / iResolution.xy;
float radius = Radius * 0.01 * iResolution.y;
radius = pow(radius, 2.0);
float radius = Radius * 10.0;
fragColor = Blur(uv * vec2(1.0, -1.0), radius);
}

View File

@@ -4,44 +4,47 @@
* (C) 2019-2022 Bruno Herbelin <bruno.herbelin@gmail.com>
* Distributed under GNU GPL3+ License
**/
uniform float Luminance;
uniform float Threshold;
uniform float Tolerance;
//float sRGBtoLin( in float v ) {
// // Send this function a decimal sRGB gamma encoded color value
// // between 0.0 and 1.0, and it returns a linearized value.
// if ( v <= 0.04045 ) {
// return v / 12.92;
// } else {
// return pow((( v + 0.055)/1.055),2.4);
// }
//}
float sRGBtoLin( in float v ) {
// Send this function a decimal sRGB gamma encoded color value
// between 0.0 and 1.0, and it returns a linearized value.
if ( v <= 0.04045 ) {
return v / 12.92;
} else {
return pow((( v + 0.055)/1.055),2.4);
}
}
//// returns L* which is "perceptual lightness"
//float lightness ( in vec3 color )
//{
// float Y = 0.2126 * sRGBtoLin(color.r)
// + 0.7152 * sRGBtoLin(color.g)
// + 0.0722 * sRGBtoLin(color.b);
// returns L* which is "perceptual lightness"
float lightness ( in vec3 color )
{
float Y = 0.2126 * sRGBtoLin(color.r)
+ 0.7152 * sRGBtoLin(color.g)
+ 0.0722 * sRGBtoLin(color.b);
// if ( Y <= (216./24389.) ) { // The CIE standard states 0.008856 but 216/24389 is the intent for 0.008856451679036
// Y = Y * (24389./27.); // The CIE standard states 903.3, but 24389/27 is the intent, making 903.296296296296296
// } else {
// Y = pow(Y,(1./3.)) * 116. - 16.;
// }
if ( Y <= (216./24389.) ) { // The CIE standard states 0.008856 but 216/24389 is the intent for 0.008856451679036
Y = Y * (24389./27.); // The CIE standard states 903.3, but 24389/27 is the intent, making 903.296296296296296
} else {
Y = pow(Y,(1./3.)) * 116. - 16.;
}
// return 0.01 * Y;
//}
return 0.01 * Y;
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 fragPos = fragCoord.xy / iResolution.xy;
vec3 RGB = texture(iChannel0, fragPos).rgb;
vec4 texColor0 = texture(iChannel0, fragCoord.xy / iResolution.xy);
// RGB is alpha-premultiplied : revert
texColor0 = vec4( texColor0.rgb / max(texColor0.a, 0.001), texColor0.a);
float L = dot(RGB, vec3(0.299, 0.587, 0.114));
// float L = lightness( RGB );
// modify alpha by the lightness of the image
float L = lightness( texColor0.rgb );
texColor0.a *= smoothstep( Threshold, Threshold + Tolerance * Tolerance, abs(Luminance - L) );
fragColor = vec4( RGB, smoothstep( Threshold, Threshold + Tolerance * Tolerance, L ) );
fragColor = texColor0;
}

View File

@@ -3,7 +3,7 @@
// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
// Adapted by Bruno Herbelin for vimix
float Factor = 0.5;
uniform float Factor = 0.5;
vec2 hash( vec2 p ) {
p = 2.0 * vec2(dot(p,vec2(127.1,311.7)), dot(p,vec2(269.5,183.3)));

View File

@@ -0,0 +1,221 @@
// From https://www.shadertoy.com/view/Ml2BRD
// and https://www.shadertoy.com/view/MtcfDr
// By Tynach.
// Adapted by Bruno Herbelin for vimix
precision highp float;
/*
* Settings
*/
// Minimum temperature in the range (defined in the standard as 4000)
const float minTemp = 4000.0;
// Maximum temperature in the range (defined in the standard as 25000)
const float maxTemp = 9000.0;
// [0 1] value slider between min and max Temp
uniform float Temperature;
// Color for white balance
uniform float Red;
uniform float Green;
uniform float Blue;
// Color correction
uniform float Contrast;
uniform float Brightness;
// Parameters for transfer characteristics (gamma curves)
struct transfer {
// Exponent used to linearize the signal
float power;
// Offset from 0.0 for the exponential curve
float off;
// Slope of linear segment near 0
float slope;
// Values below this are divided by slope during linearization
float cutoffToLinear;
// Values below this are multiplied by slope during gamma correction
float cutoffToGamma;
};
// Parameters for a colorspace
struct rgb_space {
// Chromaticity coordinates (xyz) for white point
vec4 white;
// Linearization and gamma correction parameters
transfer trc;
};
/*
* Preprocessor 'functions' that help build colorspaces as constants
*/
// Creates a whitepoint's xyz chromaticity coordinates from the given xy coordinates
#define White(x, y)\
vec4(vec3((x), (y), 1.0 - (x) - (y))/(y), 1)
// Automatically calculate the slope and cutoffs for transfer characteristics
#define Transfer(po, of)\
transfer(\
(po),\
(of),\
(pow((po)*(of)/((po) - 1.0), 1.0 - (po))*pow(1.0 + (of), (po)))/(po),\
(of)/((po) - 1.0),\
(of)/((po) - 1.0)*(po)/(pow((po)*(of)/((po) - 1.0), 1.0 - (po))*pow(1.0 + (of), (po)))\
)
// Creates a scaling matrix using a vec4 to set the xyzw scalars
#define diag(v)\
mat4(\
(v).x, 0, 0, 0,\
0, (v).y, 0, 0,\
0, 0, (v).z, 0,\
0, 0, 0, (v).w)
/*
* Chromaticities for white points
*/
// Standard Illuminant D65 according to the Rec. 709 and sRGB standards
const vec4 whiteD65S = White(0.3127, 0.3290);
/*
* Gamma curve parameters
*/
// Gamma for sRGB
const transfer gamSrgb = transfer(2.4, 0.055, 12.92, 0.04045, 0.0031308);
/*
* RGB Colorspaces
*/
// sRGB (mostly the same as Rec. 709, but different gamma and full range values)
const rgb_space Srgb = rgb_space(whiteD65S, gamSrgb);
/*
* Colorspace conversion functions
*/
// Converts RGB colors to a linear light scale
vec4 toLinear(vec4 color, const transfer trc)
{
bvec4 cutoff = lessThan(color, vec4(trc.cutoffToLinear));
bvec4 negCutoff = lessThanEqual(color, vec4(-1.0*trc.cutoffToLinear));
vec4 higher = pow((color + trc.off)/(1.0 + trc.off), vec4(trc.power));
vec4 lower = color/trc.slope;
vec4 neg = -1.0*pow((color - trc.off)/(-1.0 - trc.off), vec4(trc.power));
vec4 result = mix(higher, lower, cutoff);
return mix(result, neg, negCutoff);
}
// Gamma-corrects RGB colors to be sent to a display
vec4 toGamma(vec4 color, const transfer trc)
{
bvec4 cutoff = lessThan(color, vec4(trc.cutoffToGamma));
bvec4 negCutoff = lessThanEqual(color, vec4(-1.0*trc.cutoffToGamma));
vec4 higher = (1.0 + trc.off)*pow(color, vec4(1.0/trc.power)) - trc.off;
vec4 lower = color*trc.slope;
vec4 neg = (-1.0 - trc.off)*pow(-1.0*color, vec4(1.0/trc.power)) + trc.off;
vec4 result = mix(higher, lower, cutoff);
return mix(result, neg, negCutoff);
}
// Scales a color to the closest in-gamut representation of that color
vec4 gamutScale(vec4 color, float luma)
{
float low = min(color.r, min(color.g, min(color.b, 0.0)));
float high = max(color.r, max(color.g, max(color.b, 1.0)));
float lowScale = low/(low - luma);
float highScale = max((high - 1.0)/(high - luma), 0.0);
float scale = max(lowScale, highScale);
color.rgb += scale*(luma - color.rgb);
return color;
}
// Calculate Standard Illuminant Series D light source XYZ values
vec4 temperatureToXyz(float temperature)
{
// Calculate terms to be added up. Since only the coefficients aren't
// known ahead of time, they're the only thing determined by mix()
float x = dot(mix(
vec4(0.244063, 99.11, 2967800.0, -4607000000.0),
vec4(0.23704, 247.48, 1901800.0, -2006400000.0),
bvec4(temperature > 7000.0)
)/vec4(1, temperature, pow(temperature, 2.0), pow(temperature, 3.0)), vec4(1));
return White(x, -3.0*pow(x, 2.0) + 2.87*x - 0.275);
}
// XYZ conversion matrices for the display colorspace
const mat4 toXyz = mat4(0.412391, 0.212639, 0.019331, 0.000000, 0.357584, 0.715169, 0.119195, 0.000000, 0.180481, 0.072192, 0.950532, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000);
const mat4 toRgb = mat4(3.240968, -0.969244, 0.055630, -0.000000, -1.537383, 1.875967, -0.203977, 0.000000, -0.498611, 0.041555, 1.056971, -0.000000, -0.000000, 0.000000, -0.000000, 1.000000);
// LMS conversion matrices for white point adaptation
const mat4 toLms = mat4(0.205245, -0.497222, -0.000000, -0.000000, 0.833449, 1.403485, 0.000000, 0.000000, -0.038693, 0.093738, 1.000000, -0.000000, 0.000000, 0.000000, -0.000000, 1.000000);
const mat4 frLms = mat4(1.997937, 0.707823, 0.000000, 0.000000, -1.186460, 0.292177, -0.000000, 0.000000, 0.188522, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000);
// Converts from one RGB colorspace to another, output as linear light
vec4 convert(vec4 color, vec4 whiteNew)
{
color = toXyz*color;
color= toLms*color;
color = diag(((toLms*Srgb.white)/(toLms*whiteNew)))*color;
color = inverse(toLms)*color;
float luma = color.y;
color = toRgb*color;
color = gamutScale(color, luma);
return color;
}
// Main function
void mainImage(out vec4 color, in vec2 coord)
{
vec2 uv = coord.xy / iResolution.xy;
vec4 texColor = texture(iChannel0, uv);
texColor = toLinear(texColor, Srgb.trc);
// Calculate temperature conversion
vec4 convWhite = temperatureToXyz(Temperature*(maxTemp - minTemp) + minTemp);
mat4 adapt = toRgb*frLms*diag((toLms*convWhite)/(toLms*Srgb.white))*toLms*toXyz;
texColor = adapt*texColor;
// Darken values to fit within gamut (for texture)
vec4 newWhite = adapt*vec4(1);
texColor.rgb /= max(newWhite.r, max(newWhite.g, newWhite.b));
color = texColor;
// color balance by color picker
vec4 whiteNew = vec4( Red, Green, Blue, 1.0);
whiteNew = toXyz*whiteNew;
whiteNew /= dot(whiteNew, vec4(1.0));
whiteNew /= whiteNew.y;
color = convert(color, whiteNew);
// Convert to display gamma curve
color = toGamma(color, Srgb.trc);
// brightness and contrast transformation
color.rgb = mix(vec3(0.62), color.rgb, Contrast + 1.0) + Brightness;
}

View File

@@ -14,6 +14,7 @@ uniform vec4 color;
uniform sampler2D iChannel0; // input channel (texture id).
uniform sampler2D iChannel1; // input mask
uniform float stipple;
uniform float premultiply;
void main()
{
@@ -33,5 +34,5 @@ void main()
A = clamp(A, 0.0, 1.0);
// output RGB with Alpha pre-multiplied
FragColor = vec4(RGB * A, A);
FragColor = vec4(RGB * mix(1.0 / max(A, 0.001), A, premultiply), A);
}

View File

@@ -9,14 +9,43 @@ out vec2 vertexUV;
uniform mat4 modelview;
uniform mat4 projection;
uniform mat4 iNodes;
void main()
{
vec4 pos = modelview * vec4(position, 1.0);
// BARYCENTRIC COORDINATES
// compute the barycentric coordinates in a square {P0 P1 P2 P3} for the given vertex
vec4 coef = abs (vec4( 1.0 - position.x - position.y + position.y * position.x,
1.0 - position.x + position.y - position.y * position.x,
1.0 + position.x - position.y - position.y * position.x,
1.0 + position.x + position.y + position.y * position.x));
vec4 corners = coef / (coef[0] + coef[1] + coef[2] + coef[3]);
// delinearizing coordinates with attractor parameter z
coef[0] = pow( coef[0], 1.0 + iNodes[0].z);
coef[1] = pow( coef[1], 1.0 + iNodes[1].z);
coef[2] = pow( coef[2], 1.0 + iNodes[2].z);
coef[3] = pow( coef[3], 1.0 + iNodes[3].z);
// calculate coordinates of point in distorted square {A0 A1 A2 A3}
vec2 P= coef[0] * vec2(iNodes[0].x - 1.0, iNodes[0].y - 1.0) +
coef[1] * vec2(iNodes[1].x - 1.0, iNodes[1].y + 1.0) +
coef[2] * vec2(iNodes[2].x + 1.0, iNodes[2].y - 1.0) +
coef[3] * vec2(iNodes[3].x + 1.0, iNodes[3].y + 1.0);
vec3 pos = vec3( P / (coef[0] + coef[1] + coef[2] + coef[3]), position.z );
// Rounding corners with attractor parameter iNodes[0].w
float d = length(pos.xy);
d = d / pow( 1.0 + pow(d, 10.0), 0.1 );
vec3 rounded = d * normalize(vec3(pos.xy, 0.0));
pos = mix( pos, rounded, corners.x * iNodes[0].w);
pos = mix( pos, rounded, corners.y * iNodes[0].w);
pos = mix( pos, rounded, corners.z * iNodes[0].w);
pos = mix( pos, rounded, corners.w * iNodes[0].w);
// output
gl_Position = projection * pos;
gl_Position = projection * ( modelview * vec4(pos, 1.0) );
vertexColor = color;
vertexUV = texCoord;
vertexUV = texCoord;
}

View File

@@ -15,38 +15,140 @@ uniform vec4 uv;
uniform vec2 size; // size of the mask area
uniform float blur; // percent of blur
// See: http://www.iquilezles.org/www/articles/ellipsoids/ellipsoids.htm
float sdEllipsoid( in vec2 p, in vec2 r )
float msign(in float x) { return (x<0.0)?-1.0:1.0; }
// MIT License
// Copyright 2021 Henrik Dick
// https://www.shadertoy.com/view/slS3Rw
float sdEllipse(vec2 p, vec2 e)
{
float k0 = length(p/r);
float k1 = length(p/(r*r));
return k0*(k0-1.0)/k1;
}
float x = p.x;
float y = p.y;
float ax = abs(p.x);
float ay = abs(p.y);
float a = e.x;
float b = e.y;
float aa = e.x*e.x;
float bb = e.y*e.y;
float sdEllipse( in vec2 p, in vec2 e )
{
p = abs( p );
vec2 closest = vec2(0.0);
int iterations = 0;
if( e.x<e.y ) { p = p.yx; e = e.yx; }
vec2 r = e*e;
vec2 z = p/e;
vec2 n = r*z;
float g = dot(z,z) - 1.0;
float s0 = z.y - 1.0;
float s1 = (g<0.0) ? 0.0 : length( n )/r.y - 1.0;
float s = 0.0;
for( int i=0; i<64; i++ )
{
s = 0.5*(s0+s1);
vec2 ratio = n/(r.y*s+r);
g = dot(ratio,ratio) - 1.0;
if( g>0.0 ) s0=s; else s1=s;
// edge special case, handle as AABB
if (a * b <= 1e-15) {
closest = clamp(p, -e, e);
return length(closest-p);
}
vec2 q = p*r/(r.y*s+r);
return length( p-q ) * (((p.y-q.y)<0.0)?-1.0:1.0);
// this epsilon will guarantee float precision result
// (error<1e-6) for degenerate cases
float epsilon = 1e-3;
float diff = bb - aa;
if (a < b) {
if (ax <= epsilon * a) {
if (ay * b < diff) {
float yc = bb * y / diff;
float xc = a * sqrt(1.0 - yc * yc / bb);
closest = vec2(xc, yc);
return -length(closest-p);
}
closest = vec2(x, b * msign(y));
return ay - b;
}
else if (ay <= epsilon * b) {
closest = vec2(a * msign(x), y);
return ax - a;
}
}
else {
if (ay <= epsilon * b) {
if (ax * a < -diff) {
float xc = aa * x / -diff;
float yc = b * sqrt(1.0 - xc * xc / aa);
closest = vec2(xc, yc);
return -length(closest-p);
}
closest = vec2(a * msign(x), y);
return ax - a;
}
else if (ax <= epsilon * a) {
closest = vec2(x, b * msign(y));
return ay - b;
}
}
float rx = x / a;
float ry = y / b;
float inside = rx*rx + ry*ry - 1.0;
// get lower/upper bound for parameter t
float s2 = sqrt(2.0);
float tmin = max(a * ax - aa, b * ay - bb);
float tmax = max(s2 * a * ax - aa, s2 * b * ay - bb);
float xx = x * x * aa;
float yy = y * y * bb;
float rxx = rx * rx;
float ryy = ry * ry;
float t;
if (inside < 0.0) {
tmax = min(tmax, 0.0);
if (ryy < 1.0)
tmin = max(tmin, sqrt(xx / (1.0 - ryy)) - aa);
if (rxx < 1.0)
tmin = max(tmin, sqrt(yy / (1.0 - rxx)) - bb);
t = tmin * 0.95;
}
else {
tmin = max(tmin, 0.0);
if (ryy < 1.0)
tmax = min(tmax, sqrt(xx / (1.0 - ryy)) - aa);
if (rxx < 1.0)
tmax = min(tmax, sqrt(yy / (1.0 - rxx)) - bb);
t = tmin;//2.0 * tmin * tmax / (tmin + tmax);
}
t = clamp(t, tmin, tmax);
int newton_steps = 12;
if (tmin >= tmax) {
t = tmin;
newton_steps = 0;
}
// iterate, most of the time 3 iterations are sufficient.
// bisect/newton hybrid
int i;
for (i = 0; i < newton_steps; i++) {
float at = aa + t;
float bt = bb + t;
float abt = at * bt;
float xxbt = xx * bt;
float yyat = yy * at;
float f0 = xxbt * bt + yyat * at - abt * abt;
float f1 = 2.0 * (xxbt + yyat - abt * (bt + at));
// bisect
if (f0 < 0.0)
tmax = t;
else if (f0 > 0.0)
tmin = t;
// newton iteration
float newton = f0 / abs(f1);
newton = clamp(newton, tmin-t, tmax-t);
newton = min(newton, a*b*2.0);
t += newton;
float absnewton = abs(newton);
if (absnewton < 1e-6 * (abs(t) + 0.1) || tmin >= tmax)
break;
}
iterations = i;
closest = vec2(x * a / (aa + t), y * b / (bb + t));
// this normalization is a tradeoff in precision types
closest = normalize(closest);
closest *= e;
return length(closest-p) * msign(inside);
}
void main()
@@ -56,7 +158,7 @@ void main()
float d = sdEllipse( uv, vec2(size.x * iResolution.x/iResolution.y, size.y) );
vec3 col = vec3(1.0- sign(d));
vec3 col = vec3(1.0- msign(d));
col *= 1.0 - exp( -600.0/ (blur * 1000.f + 1.0) * abs(d));
FragColor = vec4( col, 1.0 );

30
rsc/shaders/texture.fs Normal file
View File

@@ -0,0 +1,30 @@
#version 330 core
out vec4 FragColor;
in vec4 vertexColor;
in vec2 vertexUV;
// from General Shader
uniform vec3 iResolution; // viewport image resolution (in pixels)
uniform mat4 iTransform; // image transformation
uniform vec4 color;
// Image Shader
uniform sampler2D iChannel0; // input channel (texture id).
void main()
{
// adjust UV
vec4 texcoord = iTransform * vec4(vertexUV.x, vertexUV.y, 0.0, 1.0);
// color is a mix of texture, vertex and uniform colors
vec4 textureColor = texture(iChannel0, texcoord.xy);
vec3 RGB = textureColor.rgb * vertexColor.rgb * color.rgb;
// alpha is a mix of texture, vertex, uniform
float A = textureColor.a * vertexColor.a * color.a;
// output RGB with Alpha pre-multiplied
FragColor = vec4(RGB * A, A);
}

22
rsc/shaders/texture.vs Normal file
View File

@@ -0,0 +1,22 @@
#version 330 core
layout (location = 0) in vec3 position;
layout (location = 1) in vec4 color;
layout (location = 2) in vec2 texCoord;
out vec4 vertexColor;
out vec2 vertexUV;
uniform mat4 modelview;
uniform mat4 projection;
void main()
{
vec4 pos = modelview * vec4(position, 1.0);
// output
gl_Position = projection * pos;
vertexColor = color;
vertexUV = texCoord;
}

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-vimix">
<comment>Vimix Session file</comment>
<glob pattern="*.mix"/>
</mime-type>
</mime-info>

View File

@@ -2,9 +2,9 @@
Type=Application
Name=vimix
GenericName=Video mixer
Comment=Live video mixing
Comment=Video live mixer
Categories=AudioVideo;Video;Graphics;
Icon=vimix.svg
Exec=vimix
MimeType=application/mix+xml
Exec=launch_vimix.sh
MimeType=application/x-vimix;text/xml
Terminal=false

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
width="1024"
height="1024"
id="svg3744"
sodipodi:version="0.32"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
version="1.0"
sodipodi:docname="vimix.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/bhbn/Developments/v-mix/rsc/images/vimix_256x256.png"
inkscape:export-xdpi="405.16815"
inkscape:export-ydpi="405.16815">
inkscape:export-ydpi="405.16815"
viewBox="0 0 64 64"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
@@ -27,9 +27,9 @@
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="35.082716"
inkscape:cy="31.811389"
inkscape:zoom="0.70710681"
inkscape:cx="1278.449"
inkscape:cy="68.589355"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:document-units="px"
@@ -39,17 +39,21 @@
showborder="true"
objecttolerance="1"
guidetolerance="10000"
inkscape:window-width="2890"
inkscape:window-height="1885"
inkscape:window-x="817"
inkscape:window-y="89"
inkscape:window-width="2631"
inkscape:window-height="1696"
inkscape:window-x="2867"
inkscape:window-y="252"
inkscape:window-maximized="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:showpageshadow="false"
inkscape:document-rotation="0">
inkscape:document-rotation="0"
inkscape:pagecheckerboard="true"
viewbox-height="64"
inkscape:deskcolor="#d1d1d1"
showguides="false">
<inkscape:grid
type="xygrid"
id="grid3754"
@@ -80,7 +84,7 @@
</pattern>
<linearGradient
id="linearGradient5756"
osb:paint="gradient">
inkscape:swatch="gradient">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
@@ -125,10 +129,10 @@
</pattern>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 8 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="16 : 8 : 1"
inkscape:persp3d-origin="8 : 5.3333333 : 1"
inkscape:vp_x="0 : 60.5 : 1"
inkscape:vp_y="0 : 62.5 : 0"
inkscape:vp_z="1 : 60.5 : 1"
inkscape:persp3d-origin="0.5 : 60.333333 : 1"
id="perspective20" />
<linearGradient
id="linearGradient3237-580">
@@ -163,17 +167,6 @@
r="6.75"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.7382429,-0.11091491,0.10548406,3.5552029,1.2501838,4.445696)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3237-580"
id="radialGradient855"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(4.0147937,-0.11912026,0.11328765,3.8182126,-0.22443818,-46.542095)"
cx="8"
cy="8"
fx="8"
fy="8"
r="6.75" />
</defs>
<metadata
id="metadata3749">
@@ -183,7 +176,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -192,41 +184,46 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(-0.8,48.8)"
style="opacity:0.89674699">
style="opacity:0.896747">
<ellipse
style="fill:#0c0c0c;fill-opacity:0.477137;stroke:none;stroke-width:0.862179;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="path854"
cx="32.799999"
cy="-16.91748"
rx="27.470198"
ry="27.375973" />
<path
id="path4090"
d="m 32.8,-48.060406 c -17.255744,0 -31.2604061,14.004662 -31.2604061,31.260406 0,17.25574393 14.0046621,31.260406 31.2604061,31.260406 17.255744,0 31.260406,-14.00466207 31.260406,-31.260406 0,-17.255744 -14.004662,-31.260406 -31.260406,-31.260406 z m 0,3.907551 c 15.098776,0 27.352855,12.254079 27.352855,27.352855 0,15.0987763 -12.254079,27.352856 -27.352855,27.352856 -15.098776,0 -27.3528552,-12.2540797 -27.3528552,-27.352856 0,-15.098776 12.2540792,-27.352855 27.3528552,-27.352855 z"
style="display:inline;overflow:visible;visibility:visible;opacity:0.2;fill:#848484;fill-opacity:0.654019;fill-rule:nonzero;stroke:none;stroke-width:4.34172;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.6;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
inkscape:connector-curvature="0"
inkscape:export-xdpi="405"
inkscape:export-ydpi="405" />
style="fill:#f758f7;fill-opacity:1;stroke:none;stroke-width:1.07447;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="ellipse7882"
cx="32.875683"
cy="-16.829548"
rx="28.456408"
ry="28.443089" />
<circle
style="fill:#f758f7;fill-opacity:1;stroke:none;stroke-width:0.688853;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="path7906"
cx="32.520794"
cy="-43.596138"
r="3.2511816" />
<g
id="g858">
id="g858-7"
style="fill:#434343;fill-opacity:1;stroke:none;stroke-opacity:1"
transform="translate(13.206572,4.8349528)">
<path
id="path4096"
style="display:inline;overflow:visible;visibility:visible;opacity:0.801;fill:url(#radialGradient855);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:stroke fill markers;enable-background:accumulate"
d="m 36.688849,-42.590063 c -0.303933,2.108537 -2.081796,3.675579 -4.183594,3.6875 -2.080492,0.0106 -3.863017,-1.50665 -4.21289,-3.585937 -12.672805,2.236616 -21.7888326,13.427755 -21.4160161,26.291015 0.1430268,4.836336 1.636139,9.5362214 4.3105471,13.5683594 L 33.725958,-20.359594 v -1.535156 c 0,-3.229159 2.616539,-5.847657 5.845703,-5.847657 1.906945,0 3.585217,0.927726 4.652344,2.339844 h 1.195313 c 3.875281,0 7.017578,2.093968 7.017578,4.677734 l -7.017578,1.167969 v 5.847656 c 0,6.3779194 -4.259861,11.7530414 -10.085938,13.45898538 l 3.015625,8.15429682 c 0.05432,0.149079 0.106204,0.243515 0.205076,0.378518 C 50.521949,5.6477954 58.834499,-4.9395226 58.733771,-17.193579 58.61364,-29.921919 49.273879,-40.681635 36.688849,-42.590063 Z m 2.769317,19.244586 c -0.764292,0 -1.38415,0.619286 -1.38415,1.384151 0,0.764288 0.619858,1.385691 1.38415,1.385691 0.764291,0 1.385692,-0.621403 1.385692,-1.385691 0,-0.764865 -0.621402,-1.384151 -1.385692,-1.384151 z M 31.800177,0.30446838 c -0.138877,0.0044 -0.274456,0.01953 -0.414062,0.01953 h -2.855469 l 2.800781,7.58007782 c 0.138751,0.380792 0.336318,0.7630677 0.493205,1.0479047 0.763561,0.0573 0.707955,0.03676 1.473592,0.02631 0.559417,-0.01186 1.118303,-0.04182 1.675781,-0.08984 z m -14.0625,0.01953 -2.873047,1.43554602 c 3.582287,3.433627 8.074429,5.76748 12.943359,6.7246095 L 24.788458,0.32399838 Z"
sodipodi:nodetypes="ccccccsscsccscccccssssscsccccccccccc" />
style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#434343;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:stroke fill markers;enable-background:accumulate"
d="m 23.48228,-47.425279 c -0.303933,2.108537 -2.081796,3.675579 -4.183594,3.6875 -2.080492,0.0106 -3.863017,-1.50665 -4.21289,-3.585937 -12.6728055,2.236616 -21.7888331,13.427755 -21.4160166,26.291015 0.1430268,4.836336 1.636139,9.536222 4.3105471,13.5683597 L 20.519389,-25.19481 v -1.535156 c 0,-3.229159 2.616539,-5.847657 5.845703,-5.847657 1.906945,0 3.585217,0.927726 4.652344,2.339844 h 1.195313 c 3.875281,0 7.017578,2.093968 7.017578,4.677734 l -7.017578,1.167969 v 5.847656 c 0,6.37792 -4.259861,11.7530417 -10.085938,13.4589856 l 3.015625,8.1542969 c 0.05432,0.149079 0.106204,0.243515 0.205076,0.378518 C 37.31538,0.81257966 45.62793,-9.7747383 45.527202,-22.028795 45.407071,-34.757135 36.06731,-45.516851 23.48228,-47.425279 Z m -4.888672,42.8945316 c -0.138877,0.0044 -0.274456,0.01953 -0.414062,0.01953 h -2.855469 l 2.800781,7.5800779 c 0.138751,0.380792 0.336318,0.7630677 0.493205,1.0479047 0.763561,0.0573 0.707955,0.03676 1.473592,0.02631 0.559417,-0.01186 1.118303,-0.04182 1.675781,-0.08984 z m -14.0625005,0.01953 -2.873047,1.4355461 c 3.582287,3.43362696 8.074429,5.76748 12.9433595,6.7246095 l -3.019531,-8.1601556 z"
sodipodi:nodetypes="ccccccsscsccsccccccsccccccccccc"
inkscape:label="path4096" />
</g>
<g
id="g858"
style="opacity:1;fill:#fff00a;fill-opacity:1;stroke:none;stroke-opacity:1"
transform="translate(5.3409804,4.084558)" />
<ellipse
style="fill:#3f3f3f;fill-opacity:1;stroke-width:0.069792;stroke-linecap:round;stroke-linejoin:round"
id="path7237"
cx="39.646275"
cy="-22.757227"
rx="1.5637991"
ry="1.6013628" />
<path
style="opacity:0.809083;fill:#888888;fill-opacity:1;stroke:#ffffff;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="path859"
sodipodi:type="arc"
sodipodi:cx="32.47654"
sodipodi:cy="-43.181934"
sodipodi:rx="2.0615652"
sodipodi:ry="2.0901108"
sodipodi:start="0"
sodipodi:end="6.2616827"
sodipodi:arc-type="chord"
d="m 34.538105,-43.181934 a 2.0615652,2.0901108 0 0 1 -2.050483,2.09008 2.0615652,2.0901108 0 0 1 -2.072528,-2.067609 2.0615652,2.0901108 0 0 1 2.0282,-2.11231 2.0615652,2.0901108 0 0 1 2.094334,2.044899 z"
sodipodi:open="true" />
id="path1377"
style="fill:#fefefe;fill-opacity:1;stroke:none;stroke-width:13.7949;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 506.37891 46.853516 A 35.386253 35.876232 0 0 0 471.56641 83.111328 A 35.386253 35.876232 0 0 0 507.14062 118.60156 A 35.386253 35.876232 0 0 0 542.33594 82.724609 L 542.32812 81.955078 A 35.386253 35.876232 0 0 0 506.37891 46.853516 z M 557.91602 75.181641 A 51.20705 51.916088 0 0 1 558.61523 82.310547 L 558.62695 83.425781 A 51.20705 51.916088 0 0 1 507.69531 135.3418 A 51.20705 51.916088 0 0 1 456.2168 83.984375 A 51.20705 51.916088 0 0 1 456.77148 76.261719 A 439.52317 438.01557 0 0 0 72.476562 510.80078 A 439.52317 438.01557 0 0 0 512 948.81641 A 439.52317 438.01557 0 0 0 951.52344 510.80078 A 439.52317 438.01557 0 0 0 557.91602 75.181641 z M 574.2207 99.355469 C 775.58118 129.89032 925.01736 302.04578 926.93945 505.69922 C 928.5511 701.76412 795.55034 871.15959 604.06445 913.31641 C 602.4825 911.15636 601.65232 909.64698 600.7832 907.26172 L 552.5332 776.79297 C 645.75044 749.49787 713.9082 663.49594 713.9082 561.44922 L 713.9082 467.88672 L 826.18945 449.19922 C 826.18945 407.85896 775.9127 374.35547 713.9082 374.35547 L 694.7832 374.35547 C 677.70917 351.76158 650.85682 336.91797 620.3457 336.91797 C 568.67908 336.91797 526.81445 378.81392 526.81445 430.48047 L 526.81445 455.04297 L 166.18945 738.73047 C 123.39892 674.21627 99.509132 599.01809 97.220703 521.63672 C 91.255639 315.82456 237.11206 136.76632 439.87695 100.98047 C 445.47492 134.24906 473.99533 158.52507 507.2832 158.35547 C 540.91197 158.16473 569.35778 133.09206 574.2207 99.355469 z M 621.07227 391.29102 A 25.160138 25.508518 0 0 1 646.63281 416.24805 L 646.63867 416.79688 A 25.160138 25.508518 0 0 1 621.61328 442.30469 A 25.160138 25.508518 0 0 1 596.32031 417.07227 A 25.160138 25.508518 0 0 1 621.07227 391.29102 z M 496.00195 785.66797 L 546.7832 923.01172 C 537.86356 923.78004 528.92138 924.25946 519.9707 924.44922 C 507.72051 924.61642 508.61151 924.94414 496.39453 924.02734 C 493.88434 919.46995 490.72197 913.35439 488.50195 907.26172 L 443.68945 785.98047 L 489.37695 785.98047 C 491.61065 785.98047 493.77992 785.73837 496.00195 785.66797 z M 271.00195 785.98047 L 383.81445 785.98047 L 432.12695 916.54297 C 354.22406 901.2289 282.34979 863.88725 225.0332 808.94922 L 271.00195 785.98047 z "
transform="matrix(0.0625,0,0,0.0625,0.8,-48.8)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 325 KiB

View File

@@ -1,34 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2022 Bruno Herbelin -->
<!-- Copyright 2023 Bruno Herbelin -->
<component type="desktop-application">
<id>io.github.brunoherbelin.Vimix</id>
<launchable type="desktop-id">vimix.desktop</launchable>
<name>vimix</name>
<name>Vimix</name>
<summary>Video live mixer</summary>
<description>
<p>vimix performs graphical mixing and blending of several movie clips and
computer generated graphics, with image processing effects in real-time.</p>
<p>The documentation can be accessed on vimix github wiki.</p>
computer generated graphics, with image processing effects in real-time.
Its intuitive and hands-on user interface gives direct control on image opacity and
shape for producing live graphics during concerts and VJ-ing sessions.</p>
<p>Can read almost all video codecs (hardware accelerated for many),
Open Sound Control remote control, live screen recoding. See docmentation in the github wiki.</p>
</description>
<categories>
<category>Graphics</category>
<category>AudioVideo</category>
</categories>
<screenshots>
<screenshot type="default">
<image type="source">https://brunoherbelin.github.io/vimix/vimix_0.2_beta.jpg</image>
</screenshot>
<screenshot type="default">
<image type="source">https://brunoherbelin.github.io/vimix/vimix_screenshot.png</image>
</screenshot>
<screenshot>
<image type="source">https://brunoherbelin.github.io/vimix/vimix_screenshot_2.png</image>
</screenshot>
</screenshots>
<branding>
<color type="primary" scheme_preference="light">#303030</color>
<color type="primary" scheme_preference="dark">#181818</color>
</branding>
<provides>
<binary>vimix</binary>
</provides>
<releases>
<release version="0.8.4" date="2025-01-04">
<description>
<p>Version 0.8.4</p>
</description>
<url>https://github.com/brunoherbelin/vimix/releases/tag/0.8.4</url>
</release>
<release version="0.8.3" date="2024-11-10">
<description>
<p>Version 0.8.3</p>
</description>
<url>https://github.com/brunoherbelin/vimix/releases/tag/0.8.3</url>
</release>
<release version="0.8.2d" date="2024-04-06"/>
<release version="0.8.2" date="2024-01-02"/>
<release version="0.8.1" date="2023-09-18"/>
<release version="0.8.0" date="2023-03-31"/>
<release version="0.7.3" date="2022-12-10"/>
<release version="0.7.2" date="2022-11-19"/>
<release version="0.7.1" date="2022-07-21"/>
</releases>
<supports>
<control>pointing</control>
<control>keyboard</control>
<control>gamepad</control>
</supports>
<url type="homepage">https://brunoherbelin.github.io/vimix/</url>
<url type="help">https://github.com/brunoherbelin/vimix/wiki/User-manual</url>
<url type="faq">https://github.com/brunoherbelin/vimix/wiki</url>
<url type="bugtracker">https://github.com/brunoherbelin/vimix/issues</url>
<developer_name>Bruno Herbelin</developer_name>
<developer id="io.github.brunoherbelin">
<name>Bruno Herbelin</name>
</developer>
<project_license>GPL-3.0-or-later</project_license>
<metadata_license>CC0-1.0</metadata_license>
<content_rating type="oars-1.1">
<content_attribute id="social-audio">moderate</content_attribute>
</content_rating>
<content_rating type="oars-1.1" />
</component>

View File

@@ -1,8 +1,10 @@
[Desktop Entry]
Type=Application
Name=vimix
Comment=Live video mixing.
Categories=AudioVideo;Video;Graphics;Utility;
GenericName=Video mixer
Comment=Video live mixer
Categories=AudioVideo;Video;Graphics;
Icon=${SNAP}/meta/gui/vimix.svg
Exec=vimix
MimeType=application/x-vimix;text/xml
Terminal=false

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
width="1024"
height="1024"
id="svg3744"
sodipodi:version="0.32"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
version="1.0"
sodipodi:docname="vimix.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/bhbn/Developments/v-mix/rsc/images/vimix_256x256.png"
inkscape:export-xdpi="405.16815"
inkscape:export-ydpi="405.16815">
inkscape:export-ydpi="405.16815"
viewBox="0 0 64 64"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
@@ -27,9 +27,9 @@
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="35.082716"
inkscape:cy="31.811389"
inkscape:zoom="0.70710681"
inkscape:cx="1278.449"
inkscape:cy="68.589355"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:document-units="px"
@@ -39,17 +39,21 @@
showborder="true"
objecttolerance="1"
guidetolerance="10000"
inkscape:window-width="2890"
inkscape:window-height="1885"
inkscape:window-x="817"
inkscape:window-y="89"
inkscape:window-width="2631"
inkscape:window-height="1696"
inkscape:window-x="2867"
inkscape:window-y="252"
inkscape:window-maximized="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:showpageshadow="false"
inkscape:document-rotation="0">
inkscape:document-rotation="0"
inkscape:pagecheckerboard="true"
viewbox-height="64"
inkscape:deskcolor="#d1d1d1"
showguides="false">
<inkscape:grid
type="xygrid"
id="grid3754"
@@ -80,7 +84,7 @@
</pattern>
<linearGradient
id="linearGradient5756"
osb:paint="gradient">
inkscape:swatch="gradient">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
@@ -125,10 +129,10 @@
</pattern>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 8 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="16 : 8 : 1"
inkscape:persp3d-origin="8 : 5.3333333 : 1"
inkscape:vp_x="0 : 60.5 : 1"
inkscape:vp_y="0 : 62.5 : 0"
inkscape:vp_z="1 : 60.5 : 1"
inkscape:persp3d-origin="0.5 : 60.333333 : 1"
id="perspective20" />
<linearGradient
id="linearGradient3237-580">
@@ -163,17 +167,6 @@
r="6.75"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.7382429,-0.11091491,0.10548406,3.5552029,1.2501838,4.445696)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3237-580"
id="radialGradient855"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(4.0147937,-0.11912026,0.11328765,3.8182126,-0.22443818,-46.542095)"
cx="8"
cy="8"
fx="8"
fy="8"
r="6.75" />
</defs>
<metadata
id="metadata3749">
@@ -183,7 +176,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -192,41 +184,46 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(-0.8,48.8)"
style="opacity:0.89674699">
style="opacity:0.896747">
<ellipse
style="fill:#0c0c0c;fill-opacity:0.477137;stroke:none;stroke-width:0.862179;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="path854"
cx="32.799999"
cy="-16.91748"
rx="27.470198"
ry="27.375973" />
<path
id="path4090"
d="m 32.8,-48.060406 c -17.255744,0 -31.2604061,14.004662 -31.2604061,31.260406 0,17.25574393 14.0046621,31.260406 31.2604061,31.260406 17.255744,0 31.260406,-14.00466207 31.260406,-31.260406 0,-17.255744 -14.004662,-31.260406 -31.260406,-31.260406 z m 0,3.907551 c 15.098776,0 27.352855,12.254079 27.352855,27.352855 0,15.0987763 -12.254079,27.352856 -27.352855,27.352856 -15.098776,0 -27.3528552,-12.2540797 -27.3528552,-27.352856 0,-15.098776 12.2540792,-27.352855 27.3528552,-27.352855 z"
style="display:inline;overflow:visible;visibility:visible;opacity:0.2;fill:#848484;fill-opacity:0.654019;fill-rule:nonzero;stroke:none;stroke-width:4.34172;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.6;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
inkscape:connector-curvature="0"
inkscape:export-xdpi="405"
inkscape:export-ydpi="405" />
style="fill:#f758f7;fill-opacity:1;stroke:none;stroke-width:1.07447;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="ellipse7882"
cx="32.875683"
cy="-16.829548"
rx="28.456408"
ry="28.443089" />
<circle
style="fill:#f758f7;fill-opacity:1;stroke:none;stroke-width:0.688853;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="path7906"
cx="32.520794"
cy="-43.596138"
r="3.2511816" />
<g
id="g858">
id="g858-7"
style="fill:#434343;fill-opacity:1;stroke:none;stroke-opacity:1"
transform="translate(13.206572,4.8349528)">
<path
id="path4096"
style="display:inline;overflow:visible;visibility:visible;opacity:0.801;fill:url(#radialGradient855);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:stroke fill markers;enable-background:accumulate"
d="m 36.688849,-42.590063 c -0.303933,2.108537 -2.081796,3.675579 -4.183594,3.6875 -2.080492,0.0106 -3.863017,-1.50665 -4.21289,-3.585937 -12.672805,2.236616 -21.7888326,13.427755 -21.4160161,26.291015 0.1430268,4.836336 1.636139,9.5362214 4.3105471,13.5683594 L 33.725958,-20.359594 v -1.535156 c 0,-3.229159 2.616539,-5.847657 5.845703,-5.847657 1.906945,0 3.585217,0.927726 4.652344,2.339844 h 1.195313 c 3.875281,0 7.017578,2.093968 7.017578,4.677734 l -7.017578,1.167969 v 5.847656 c 0,6.3779194 -4.259861,11.7530414 -10.085938,13.45898538 l 3.015625,8.15429682 c 0.05432,0.149079 0.106204,0.243515 0.205076,0.378518 C 50.521949,5.6477954 58.834499,-4.9395226 58.733771,-17.193579 58.61364,-29.921919 49.273879,-40.681635 36.688849,-42.590063 Z m 2.769317,19.244586 c -0.764292,0 -1.38415,0.619286 -1.38415,1.384151 0,0.764288 0.619858,1.385691 1.38415,1.385691 0.764291,0 1.385692,-0.621403 1.385692,-1.385691 0,-0.764865 -0.621402,-1.384151 -1.385692,-1.384151 z M 31.800177,0.30446838 c -0.138877,0.0044 -0.274456,0.01953 -0.414062,0.01953 h -2.855469 l 2.800781,7.58007782 c 0.138751,0.380792 0.336318,0.7630677 0.493205,1.0479047 0.763561,0.0573 0.707955,0.03676 1.473592,0.02631 0.559417,-0.01186 1.118303,-0.04182 1.675781,-0.08984 z m -14.0625,0.01953 -2.873047,1.43554602 c 3.582287,3.433627 8.074429,5.76748 12.943359,6.7246095 L 24.788458,0.32399838 Z"
sodipodi:nodetypes="ccccccsscsccscccccssssscsccccccccccc" />
style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#434343;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:stroke fill markers;enable-background:accumulate"
d="m 23.48228,-47.425279 c -0.303933,2.108537 -2.081796,3.675579 -4.183594,3.6875 -2.080492,0.0106 -3.863017,-1.50665 -4.21289,-3.585937 -12.6728055,2.236616 -21.7888331,13.427755 -21.4160166,26.291015 0.1430268,4.836336 1.636139,9.536222 4.3105471,13.5683597 L 20.519389,-25.19481 v -1.535156 c 0,-3.229159 2.616539,-5.847657 5.845703,-5.847657 1.906945,0 3.585217,0.927726 4.652344,2.339844 h 1.195313 c 3.875281,0 7.017578,2.093968 7.017578,4.677734 l -7.017578,1.167969 v 5.847656 c 0,6.37792 -4.259861,11.7530417 -10.085938,13.4589856 l 3.015625,8.1542969 c 0.05432,0.149079 0.106204,0.243515 0.205076,0.378518 C 37.31538,0.81257966 45.62793,-9.7747383 45.527202,-22.028795 45.407071,-34.757135 36.06731,-45.516851 23.48228,-47.425279 Z m -4.888672,42.8945316 c -0.138877,0.0044 -0.274456,0.01953 -0.414062,0.01953 h -2.855469 l 2.800781,7.5800779 c 0.138751,0.380792 0.336318,0.7630677 0.493205,1.0479047 0.763561,0.0573 0.707955,0.03676 1.473592,0.02631 0.559417,-0.01186 1.118303,-0.04182 1.675781,-0.08984 z m -14.0625005,0.01953 -2.873047,1.4355461 c 3.582287,3.43362696 8.074429,5.76748 12.9433595,6.7246095 l -3.019531,-8.1601556 z"
sodipodi:nodetypes="ccccccsscsccsccccccsccccccccccc"
inkscape:label="path4096" />
</g>
<g
id="g858"
style="opacity:1;fill:#fff00a;fill-opacity:1;stroke:none;stroke-opacity:1"
transform="translate(5.3409804,4.084558)" />
<ellipse
style="fill:#3f3f3f;fill-opacity:1;stroke-width:0.069792;stroke-linecap:round;stroke-linejoin:round"
id="path7237"
cx="39.646275"
cy="-22.757227"
rx="1.5637991"
ry="1.6013628" />
<path
style="opacity:0.809083;fill:#888888;fill-opacity:1;stroke:#ffffff;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="path859"
sodipodi:type="arc"
sodipodi:cx="32.47654"
sodipodi:cy="-43.181934"
sodipodi:rx="2.0615652"
sodipodi:ry="2.0901108"
sodipodi:start="0"
sodipodi:end="6.2616827"
sodipodi:arc-type="chord"
d="m 34.538105,-43.181934 a 2.0615652,2.0901108 0 0 1 -2.050483,2.09008 2.0615652,2.0901108 0 0 1 -2.072528,-2.067609 2.0615652,2.0901108 0 0 1 2.0282,-2.11231 2.0615652,2.0901108 0 0 1 2.094334,2.044899 z"
sodipodi:open="true" />
id="path1377"
style="fill:#fefefe;fill-opacity:1;stroke:none;stroke-width:13.7949;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 506.37891 46.853516 A 35.386253 35.876232 0 0 0 471.56641 83.111328 A 35.386253 35.876232 0 0 0 507.14062 118.60156 A 35.386253 35.876232 0 0 0 542.33594 82.724609 L 542.32812 81.955078 A 35.386253 35.876232 0 0 0 506.37891 46.853516 z M 557.91602 75.181641 A 51.20705 51.916088 0 0 1 558.61523 82.310547 L 558.62695 83.425781 A 51.20705 51.916088 0 0 1 507.69531 135.3418 A 51.20705 51.916088 0 0 1 456.2168 83.984375 A 51.20705 51.916088 0 0 1 456.77148 76.261719 A 439.52317 438.01557 0 0 0 72.476562 510.80078 A 439.52317 438.01557 0 0 0 512 948.81641 A 439.52317 438.01557 0 0 0 951.52344 510.80078 A 439.52317 438.01557 0 0 0 557.91602 75.181641 z M 574.2207 99.355469 C 775.58118 129.89032 925.01736 302.04578 926.93945 505.69922 C 928.5511 701.76412 795.55034 871.15959 604.06445 913.31641 C 602.4825 911.15636 601.65232 909.64698 600.7832 907.26172 L 552.5332 776.79297 C 645.75044 749.49787 713.9082 663.49594 713.9082 561.44922 L 713.9082 467.88672 L 826.18945 449.19922 C 826.18945 407.85896 775.9127 374.35547 713.9082 374.35547 L 694.7832 374.35547 C 677.70917 351.76158 650.85682 336.91797 620.3457 336.91797 C 568.67908 336.91797 526.81445 378.81392 526.81445 430.48047 L 526.81445 455.04297 L 166.18945 738.73047 C 123.39892 674.21627 99.509132 599.01809 97.220703 521.63672 C 91.255639 315.82456 237.11206 136.76632 439.87695 100.98047 C 445.47492 134.24906 473.99533 158.52507 507.2832 158.35547 C 540.91197 158.16473 569.35778 133.09206 574.2207 99.355469 z M 621.07227 391.29102 A 25.160138 25.508518 0 0 1 646.63281 416.24805 L 646.63867 416.79688 A 25.160138 25.508518 0 0 1 621.61328 442.30469 A 25.160138 25.508518 0 0 1 596.32031 417.07227 A 25.160138 25.508518 0 0 1 621.07227 391.29102 z M 496.00195 785.66797 L 546.7832 923.01172 C 537.86356 923.78004 528.92138 924.25946 519.9707 924.44922 C 507.72051 924.61642 508.61151 924.94414 496.39453 924.02734 C 493.88434 919.46995 490.72197 913.35439 488.50195 907.26172 L 443.68945 785.98047 L 489.37695 785.98047 C 491.61065 785.98047 493.77992 785.73837 496.00195 785.66797 z M 271.00195 785.98047 L 383.81445 785.98047 L 432.12695 916.54297 C 354.22406 901.2289 282.34979 863.88725 225.0332 808.94922 L 271.00195 785.98047 z "
transform="matrix(0.0625,0,0,0.0625,0.8,-48.8)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 325 KiB

View File

@@ -1,7 +1,7 @@
name: vimix
base: core18
version: '0.7.3'
summary: Live video mixing
base: core24
version: '0.8.4'
summary: Video live mixer
title: vimix
description: |
vimix performs graphical mixing and blending of several movie clips and
@@ -18,37 +18,53 @@ icon: snap/gui/vimix.svg
license: GPL-3.0+
grade: stable # must be 'stable' to release into candidate/stable channels
confinement: strict # use 'strict' once you have the right plugs and slots
platforms:
amd64:
armhf:
arm64:
layout:
/usr/share/X11/XErrorDB:
symlink: $SNAP/gpu/X11/XErrorDB
plugs:
gpu-2404:
interface: content
target: $SNAP/gpu-2404
default-provider: mesa-2404
apps:
vimix:
extensions: [gnome-3-28]
command: bin/vimix
adapter: full
extensions: [gnome]
command-chain:
- bin/gpu-2404-wrapper
command: usr/bin/launch_vimix.sh
plugs:
- desktop
- desktop-legacy
- gsettings
- unity7
- opengl
- wayland
- x11
- opengl
- home
- network
- camera
- raw-usb
- removable-media
- audio-playback
environment:
GST_PLUGIN_PATH: $SNAP/usr/lib/x86_64-linux-gnu/gstreamer-1.0
GST_PLUGIN_SYSTEM_PATH : $SNAP/usr/lib/x86_64-linux-gnu/gstreamer-1.0
GST_PLUGIN_SCANNER: $SNAP/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner
FREI0R_PATH: $SNAP/usr/lib/frei0r-1
LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/lib/x86_64-linux-gnu/blas:$SNAP/usr/lib/x86_64-linux-gnu/lapack
parts:
vimix-binary:
plugin: cmake
source: .
configflags:
- -DCMAKE_INSTALL_PREFIX=/
cmake-parameters:
- -DCMAKE_INSTALL_PREFIX=/usr
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
build-packages:
- g++
@@ -60,10 +76,15 @@ parts:
- libgstreamer1.0-dev
- libgstreamer-plugins-base1.0-dev
- libicu-dev
- ableton-link-dev
- libtinyxml2-dev
- libglm-dev
- execstack
stage-packages:
- libpng16-16
- libglu1-mesa
- freeglut3
- libblas3
- liblapack3
- libglfw3
- frei0r-plugins
- libgstreamer1.0-0
@@ -80,6 +101,24 @@ parts:
- gstreamer1.0-plugins-ugly
- libgpm2
- libslang2
- libicu74
- libtinyxml2-10
- pciutils
override-prime: |
craftctl default
# try remove execstack on armhf
for f in usr/lib/arm-linux-gnueabihf/libde265.so.0.1.1 usr/lib/arm-linux-gnueabihf/libmpeg2.so.0.1.0; do
if [ -f $f ]; then
execstack -c $f
fi
done
gpu-2404:
after: [vimix-binary]
source: https://github.com/canonical/gpu-snap.git
plugin: dump
override-prime: |
craftctl default
${CRAFT_PART_SRC}/bin/gpu-2404-cleanup mesa-2404
prime:
- bin/gpu-2404-wrapper

View File

@@ -1,7 +1,7 @@
/*
* This file is part of vimix - video live mixer
*
* **Copyright** (C) 2019-2022 Bruno Herbelin <bruno.herbelin@gmail.com>
* **Copyright** (C) 2019-2023 Bruno Herbelin <bruno.herbelin@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -18,15 +18,13 @@
**/
#include <string>
#include <algorithm>
#include <thread>
#include <regex>
#include "Log.h"
#include "View.h"
#include "Mixer.h"
#include "MixingGroup.h"
#include "tinyxml2Toolkit.h"
#include "ImageProcessingShader.h"
#include "SessionVisitor.h"
#include "SessionCreator.h"
#include "Settings.h"
@@ -45,33 +43,42 @@
using namespace tinyxml2;
Action::Action(): history_step_(0), history_max_step_(0), locked_(false),
Action::Action(): history_step_(0), history_max_step_(0), history_min_step_(0),
snapshot_id_(0), snapshot_node_(nullptr), interpolator_(nullptr), interpolator_node_(nullptr)
{
}
void Action::init()
void Action::init(const std::string &label)
{
// clean the history
history_doc_.Clear();
history_step_ = 0;
history_max_step_ = 0;
history_min_step_ = 1;
history_max_step_ = 1;
// reset snapshot
snapshot_id_ = 0;
snapshot_node_ = nullptr;
store("Session start");
store(label);
}
void captureMixerSession(Session *se, tinyxml2::XMLDocument *doc, std::string node, std::string label)
// must be called in a thread running in parrallel of the rendering
// (needs opengl update to get thumbnail)
void captureMixerSession(Session *se, std::string node, std::string label, tinyxml2::XMLDocument *doc = nullptr)
{
if (se != nullptr) {
tinyxml2::XMLDocument *_doc = doc;
if (doc == nullptr) {
_doc = se->snapshots()->xmlDoc_;
se->snapshots()->access_.lock();
}
// create node
XMLElement *sessionNode = doc->NewElement( node.c_str() );
doc->InsertEndChild(sessionNode);
XMLElement *sessionNode = _doc->NewElement( node.c_str() );
_doc->InsertEndChild(sessionNode);
// label describes the action
sessionNode->SetAttribute("label", label.c_str() );
// label describes the action
@@ -79,10 +86,32 @@ void captureMixerSession(Session *se, tinyxml2::XMLDocument *doc, std::string no
// view indicates the view when this action occurred
sessionNode->SetAttribute("view", (int) Mixer::manager().view()->mode());
// generate short label, if possible
std::smatch match;
const std::regex pattern("([^:]*):(.*)");
// extract left and right part around colon in the label
if (std::regex_search(label, match, pattern) && match.size() > 1 && match[1].str().size() > 1) {
// take left part of ':'
std::string left = match[1].str();
// keep only the initials, i.e. front and back characters, to upper case
std::string short_label;
short_label.append( 1, static_cast<char>(std::toupper(static_cast<unsigned char>(left.front()))));
short_label.append( 1, static_cast<char>(std::toupper(static_cast<unsigned char>(left.back()))));
// separator
short_label.append(":");
// take the right part of ':'
if (match.size() > 2)
short_label.append(match[2].str());
sessionNode->SetAttribute("shortlabel", short_label.c_str() );
}
// get the thumbnail (requires one opengl update to render)
FrameBufferImage *thumbnail = se->renderThumbnail();
if (thumbnail) {
XMLElement *imageelement = SessionVisitor::ImageToXML(thumbnail, doc);
XMLElement *imageelement = SessionVisitor::ImageToXML(thumbnail, _doc);
if (imageelement)
sessionNode->InsertEndChild(imageelement);
delete thumbnail;
@@ -92,32 +121,62 @@ void captureMixerSession(Session *se, tinyxml2::XMLDocument *doc, std::string no
sessionNode->SetAttribute("activationThreshold", se->activationThreshold());
// save all sources using source visitor
SessionVisitor sv(doc, sessionNode);
SessionVisitor sv(_doc, sessionNode);
for (auto iter = se->begin(); iter != se->end(); ++iter, sv.setRoot(sessionNode) )
(*iter)->accept(sv);
if (doc == nullptr)
se->snapshots()->access_.unlock();
}
}
void Action::store(const std::string &label)
void Action::storeSession(Session *se, std::string label)
{
// ignore if locked or if no label is given
if (locked_ || label.empty())
// force lock for creation of first step
if (Action::manager().history_step_ < 1)
Action::manager().history_access_.lock();
// try lock for storing history in normal case
// (i.e. priority to realtime performance over storing history)
else if (!Action::manager().history_access_.try_lock())
return;
// incremental naming of history nodes
history_step_++;
Action::manager().history_step_++;
// erase future
for (uint e = history_step_; e <= history_max_step_; e++) {
XMLElement *node = history_doc_.FirstChildElement( HISTORY_NODE(e).c_str() );
for (uint e = Action::manager().history_step_; e <= Action::manager().history_max_step_; e++) {
XMLElement *node = Action::manager().history_doc_.FirstChildElement( HISTORY_NODE(e).c_str() );
if ( node )
history_doc_.DeleteChild(node);
Action::manager().history_doc_.DeleteChild(node);
}
history_max_step_ = history_step_;
Action::manager().history_max_step_ = Action::manager().history_step_;
// Ensure a maximum amount of stored steps (even very big, just to ensure memory limit)
if (Action::manager().history_max_step_ - Action::manager().history_min_step_ > MAX_COUNT_HISTORY) {
XMLElement *node = Action::manager().history_doc_.FirstChildElement( HISTORY_NODE(Action::manager().history_min_step_+1).c_str() );
if ( node )
Action::manager().history_doc_.DeleteChild(node);
Action::manager().history_min_step_++;
}
// capture current session
captureMixerSession(se,
HISTORY_NODE(Action::manager().history_step_),
label,
&Action::manager().history_doc_);
Action::manager().history_access_.unlock();
}
void Action::store(const std::string &label)
{
// ignore if no label is given
if (label.empty())
return;
// threaded capturing state of current session
std::thread(captureMixerSession, Mixer::manager().session(), &history_doc_, HISTORY_NODE(history_step_), label).detach();
std::thread(Action::storeSession, Mixer::manager().session(), label).detach();
#ifdef ACTION_DEBUG
Log::Info("Action stored %d '%s'", history_step_, label.c_str());
@@ -168,6 +227,22 @@ std::string Action::label(uint s) const
return l;
}
std::string Action::shortlabel(uint s) const
{
std::string l = "";
if (s > 0 && s <= history_max_step_) {
const XMLElement *sessionNode = history_doc_.FirstChildElement( HISTORY_NODE(s).c_str());
if (sessionNode) {
if (sessionNode->Attribute("shortlabel"))
l = sessionNode->Attribute("shortlabel");
else
l = sessionNode->Attribute("label");
}
}
return l;
}
FrameBufferImage *Action::thumbnail(uint s) const
{
FrameBufferImage *img = nullptr;
@@ -183,8 +258,7 @@ FrameBufferImage *Action::thumbnail(uint s) const
void Action::restore(uint target)
{
// lock
locked_ = true;
history_access_.lock();
// get history node of target step
history_step_ = CLAMP(target, 1, history_max_step_);
@@ -202,8 +276,7 @@ void Action::restore(uint target)
Mixer::manager().restore(sessionNode);
}
// free
locked_ = false;
history_access_.unlock();
}
@@ -219,9 +292,9 @@ void Action::takeSnapshot(Session *se, const std::string &label, bool create_thr
if (create_thread)
// threaded capture state of current session
std::thread(captureMixerSession, se, se->snapshots()->xmlDoc_, SNAPSHOT_NODE(id), label).detach();
std::thread(captureMixerSession, se, SNAPSHOT_NODE(id), label, nullptr).detach();
else
captureMixerSession(se, se->snapshots()->xmlDoc_, SNAPSHOT_NODE(id), label);
captureMixerSession(se, SNAPSHOT_NODE(id), label);
#ifdef ACTION_DEBUG
Log::Info("Snapshot stored %d '%s'", id, label.c_str());
@@ -231,10 +304,6 @@ void Action::takeSnapshot(Session *se, const std::string &label, bool create_thr
void Action::snapshot(const std::string &label)
{
// ignore if locked
if (locked_)
return;
// ensure label is unique
std::string snap_label = BaseToolkit::uniqueName(label, labels());
@@ -249,7 +318,12 @@ void Action::open(uint64_t snapshotid)
{
// get snapshot node of target in current session
Session *se = Mixer::manager().session();
snapshot_node_ = se->snapshots()->xmlDoc_->FirstChildElement( SNAPSHOT_NODE(snapshotid).c_str() );
if (se) {
se->snapshots()->access_.lock();
snapshot_node_ = se->snapshots()->xmlDoc_->FirstChildElement(
SNAPSHOT_NODE(snapshotid).c_str());
se->snapshots()->access_.unlock();
}
if (snapshot_node_)
snapshot_id_ = snapshotid;
@@ -262,10 +336,6 @@ void Action::open(uint64_t snapshotid)
void Action::replace(uint64_t snapshotid)
{
// ignore if locked or if no label is given
if (locked_)
return;
if (snapshotid > 0)
open(snapshotid);
@@ -276,14 +346,18 @@ void Action::replace(uint64_t snapshotid)
// remove previous node
Session *se = Mixer::manager().session();
if (se) {
se->snapshots()->access_.lock();
se->snapshots()->xmlDoc_->DeleteChild( snapshot_node_ );
se->snapshots()->access_.unlock();
// threaded capture state of current session
std::thread(captureMixerSession, se, se->snapshots()->xmlDoc_, SNAPSHOT_NODE(snapshot_id_), label).detach();
std::thread(captureMixerSession, se, SNAPSHOT_NODE(snapshot_id_), label, nullptr).detach();
#ifdef ACTION_DEBUG
Log::Info("Snapshot replaced %d '%s'", snapshot_id_, label.c_str());
#endif
}
}
}
@@ -377,8 +451,10 @@ void Action::remove(uint64_t snapshotid)
if (snapshot_node_) {
// remove
Session *se = Mixer::manager().session();
se->snapshots()->access_.lock();
se->snapshots()->xmlDoc_->DeleteChild( snapshot_node_ );
se->snapshots()->keys_.remove( snapshot_id_ );
se->snapshots()->access_.unlock();
}
snapshot_node_ = nullptr;
@@ -387,9 +463,6 @@ void Action::remove(uint64_t snapshotid)
void Action::restore(uint64_t snapshotid)
{
// lock
locked_ = true;
if (snapshotid > 0)
open(snapshotid);
@@ -397,9 +470,6 @@ void Action::restore(uint64_t snapshotid)
// actually restore
Mixer::manager().restore(snapshot_node_);
// free
locked_ = false;
store("Snapshot " + label(snapshot_id_));
}
@@ -515,8 +585,7 @@ static void saveSnapshot(const std::string& filename, tinyxml2::XMLElement *snap
void Action::saveas(const std::string& filename, uint64_t snapshotid)
{
// ignore if locked or if no label is given
if (locked_)
if (filename.empty())
return;
if (snapshotid > 0)

View File

@@ -3,10 +3,12 @@
#include <list>
#include <string>
#include <atomic>
#include <mutex>
#include <tinyxml2.h>
#define MAX_COUNT_HISTORY 1000
class Session;
class Interpolator;
class FrameBufferImage;
@@ -26,7 +28,7 @@ public:
static Action _instance;
return _instance;
}
void init ();
void init (const std::string &label);
// Undo History
void store (const std::string &label);
@@ -36,7 +38,9 @@ public:
inline uint current () const { return history_step_; }
inline uint max () const { return history_max_step_; }
inline uint min () const { return history_min_step_; }
std::string label (uint s) const;
std::string shortlabel (uint s) const;
FrameBufferImage *thumbnail (uint s) const;
// Snapshots
@@ -62,11 +66,12 @@ public:
void interpolate (float val, uint64_t snapshotid = 0);
private:
tinyxml2::XMLDocument history_doc_;
uint history_step_;
uint history_max_step_;
std::atomic<bool> locked_;
uint history_min_step_;
std::mutex history_access_;
static void storeSession(Session *se, std::string label);
void restore(uint target);
uint64_t snapshot_id_;

368
src/Audio.cpp Normal file
View File

@@ -0,0 +1,368 @@
/*
* This file is part of vimix - video live mixer
*
* **Copyright** (C) 2019-2023 Bruno Herbelin <bruno.herbelin@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
**/
#include <thread>
#include <algorithm>
#include <gst/pbutils/gstdiscoverer.h>
#include <gst/pbutils/pbutils.h>
#include <gst/gst.h>
#include "Settings.h"
#include "Log.h"
#include "Audio.h"
#ifndef NDEBUG
//#define AUDIO_DEBUG
#endif
Audio::Audio(): monitor_(nullptr), monitor_initialized_(false)
{
std::thread(launchMonitoring, this).detach();
}
void Audio::launchMonitoring(Audio *d)
{
// gstreamer monitoring of devices
d->monitor_ = gst_device_monitor_new ();
gst_device_monitor_set_show_all_devices(d->monitor_, true);
// watching all video stream sources
GstCaps *caps = gst_caps_new_empty_simple ("audio/x-raw");
gst_device_monitor_add_filter (d->monitor_, "Audio/Source", caps);
gst_caps_unref (caps);
// Add configs for already plugged devices
GList *devices = gst_device_monitor_get_devices(d->monitor_);
GList *tmp;
for (tmp = devices; tmp ; tmp = tmp->next ) {
GstDevice *device = (GstDevice *) tmp->data;
d->add(device);
gst_object_unref (device);
}
g_list_free(devices);
// monitor is initialized
d->monitor_initialized_ = true;
d->monitor_initialization_.notify_all();
// create a local g_main_context to launch monitoring in this thread
GMainContext *_gcontext_device = g_main_context_new();
g_main_context_acquire(_gcontext_device);
// temporarily push as default the default g_main_context for add_watch
g_main_context_push_thread_default(_gcontext_device);
// add a bus watch on the device monitoring using the main loop we created
GstBus *bus = gst_device_monitor_get_bus (d->monitor_);
gst_bus_add_watch (bus, callback_audio_monitor, NULL);
gst_object_unref (bus);
// gst_device_monitor_set_show_all_devices(d->monitor_, false);
if ( !gst_device_monitor_start (d->monitor_) )
Log::Info("Audio discovery failed.");
// restore g_main_context
g_main_context_pop_thread_default(_gcontext_device);
// start main loop for this context (blocking infinitely)
g_main_loop_run( g_main_loop_new (_gcontext_device, true) );
}
void Audio::initialize()
{
// instanciate and wait for monitor initialization if not already initialized
std::mutex mtx;
std::unique_lock<std::mutex> lck(mtx);
Audio::manager().monitor_initialization_.wait(lck, Audio::_initialized);
}
bool Audio::_initialized()
{
return Audio::manager().monitor_initialized_;
}
gboolean
Audio::callback_audio_monitor (GstBus *, GstMessage * message, gpointer )
{
GstDevice *device;
switch (GST_MESSAGE_TYPE (message)) {
case GST_MESSAGE_DEVICE_ADDED:
{
gst_message_parse_device_added (message, &device);
manager().add(device);
gst_object_unref (device);
}
break;
case GST_MESSAGE_DEVICE_REMOVED:
{
gst_message_parse_device_removed (message, &device);
manager().remove(device);
gst_object_unref (device);
}
break;
default:
break;
}
return G_SOURCE_CONTINUE;
}
int Audio::numDevices()
{
access_.lock();
int ret = handles_.size();
access_.unlock();
return ret;
}
struct hasAudioName
{
inline bool operator()(const AudioHandle &elem) const {
return (elem.name.compare(_name) == 0);
}
explicit hasAudioName(const std::string &name) : _name(name) { }
private:
std::string _name;
};
bool Audio::exists(const std::string &device)
{
access_.lock();
auto h = std::find_if(handles_.cbegin(), handles_.cend(), hasAudioName(device));
bool ret = (h != handles_.cend());
access_.unlock();
return ret;
}
int Audio::index(const std::string &device)
{
int i = -1;
access_.lock();
auto h = std::find_if(handles_.cbegin(), handles_.cend(), hasAudioName(device));
if (h != handles_.cend())
i = std::distance(handles_.cbegin(), h);
access_.unlock();
return i;
}
std::string Audio::name(int index)
{
std::string ret = "";
access_.lock();
if (index > -1 && index < (int) handles_.size())
ret = handles_[index].name;
access_.unlock();
return ret;
}
bool Audio::is_monitor(int index)
{
bool ret = false;
access_.lock();
if (index > -1 && index < (int) handles_.size())
ret = handles_[index].is_monitor;
access_.unlock();
return ret;
}
std::string Audio::pipeline(int index)
{
std::string ret = "";
access_.lock();
if (index > -1 && index < (int) handles_.size())
ret = handles_[index].pipeline;
access_.unlock();
return ret;
}
// copied from gst-inspect-1.0. perfect for identifying devices
// https://github.com/freedesktop/gstreamer-gst-plugins-base/blob/master/tools/gst-device-monitor.c
static gchar *get_launch_line(::GstDevice *device)
{
static const char *const ignored_propnames[] = { "name", "parent", "direction", "template", "caps", nullptr };
GString * launch_line;
GstElement * element;
GstElement * pureelement;
GParamSpec ** properties, *property;
GValue value = G_VALUE_INIT;
GValue pvalue = G_VALUE_INIT;
guint i, number_of_properties;
GstElementFactory * factory;
element = gst_device_create_element(device, nullptr);
if (!element)
return nullptr;
factory = gst_element_get_factory(element);
if (!factory) {
gst_object_unref(element);
return nullptr;
}
if (!gst_plugin_feature_get_name(factory)) {
gst_object_unref(element);
return nullptr;
}
launch_line = g_string_new(gst_plugin_feature_get_name(factory));
pureelement = gst_element_factory_create(factory, nullptr);
/* get paramspecs and show non-default properties */
properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(element), &number_of_properties);
if (properties) {
for (i = 0; i < number_of_properties; i++) {
gint j;
gboolean ignore = FALSE;
property = properties[i];
/* skip some properties */
if ((property->flags & G_PARAM_READWRITE) != G_PARAM_READWRITE)
continue;
for (j = 0; ignored_propnames[j]; j++)
if (!g_strcmp0(ignored_propnames[j], property->name))
ignore = TRUE;
if (ignore)
continue;
/* Can't use _param_value_defaults () because sub-classes modify the
* values already.
*/
g_value_init(&value, property->value_type);
g_value_init(&pvalue, property->value_type);
g_object_get_property(G_OBJECT(element), property->name, &value);
g_object_get_property(G_OBJECT(pureelement), property->name, &pvalue);
if (gst_value_compare(&value, &pvalue) != GST_VALUE_EQUAL) {
gchar *valuestr = gst_value_serialize(&value);
if (!valuestr) {
GST_WARNING("Could not serialize property %s:%s", GST_OBJECT_NAME(element), property->name);
g_free(valuestr);
goto next;
}
g_string_append_printf(launch_line, " %s=%s", property->name, valuestr);
g_free(valuestr);
}
next:
g_value_unset(&value);
g_value_unset(&pvalue);
}
g_free(properties);
}
gst_object_unref(element);
gst_object_unref(pureelement);
return g_string_free(launch_line, FALSE);
}
void Audio::add(GstDevice *device)
{
if (device==nullptr)
return;
gchar *device_name = gst_device_get_display_name (device);
// lock before change
access_.lock();
// if device with this name is not already listed
auto handle = std::find_if(handles_.cbegin(), handles_.cend(), hasAudioName(device_name) );
if ( handle == handles_.cend() ) {
gchar *ll = get_launch_line(device);
// add if valid pipeline
if (ll)
{
AudioHandle dev;
dev.name = device_name;
dev.pipeline = std::string(ll);
dev.is_monitor = dev.pipeline.compare( dev.pipeline.size()-7, 7, "monitor") == 0;
#ifdef AUDIO_DEBUG
GstStructure *stru = gst_device_get_properties(device);
g_print("\nName: '%s'\nProperties: %s", device_name, gst_structure_to_string(stru) );
g_print("\nPipeline: %s\n", dev.pipeline.c_str());
#endif
handles_.push_back(dev);
Log::Info("Audio device '%s' is plugged-in.", device_name);
}
}
// unlock access
access_.unlock();
g_free (device_name);
}
void Audio::remove(GstDevice *device)
{
if (device==nullptr)
return;
std::string devicename = gst_device_get_display_name (device);
// lock before change
access_.lock();
// if a device with this name is listed
auto handle = std::find_if(handles_.cbegin(), handles_.cend(), hasAudioName(devicename) );
if ( handle != handles_.cend() ) {
// inform the user
Log::Info("Audio device '%s' unplugged.", devicename.c_str());
// Warning if the audio device used for recording is unplugged
if (Settings::application.record.audio_device.compare(devicename) == 0) {
Log::Warning("Audio device for recording was unplugged.");
// reset settings
Settings::application.record.audio_device = "";
}
// remove the handle
handles_.erase(handle);
}
// unlock access
access_.unlock();
}

62
src/Audio.h Normal file
View File

@@ -0,0 +1,62 @@
#ifndef AUDIO_H
#define AUDIO_H
#include <string>
#include <mutex>
#include <condition_variable>
#include <vector>
#include <gst/gst.h>
struct AudioHandle {
std::string name;
bool is_monitor;
std::string pipeline;
AudioHandle() : is_monitor(false) { }
};
class Audio
{
Audio();
Audio(Audio const& copy) = delete;
Audio& operator=(Audio const& copy) = delete;
public:
static Audio& manager()
{
// The only instance
static Audio _instance;
return _instance;
}
void initialize();
int numDevices ();
std::string name (int index);
std::string pipeline (int index);
bool is_monitor (int index);
int index (const std::string &device);
bool exists (const std::string &device);
static gboolean callback_audio_monitor (GstBus *, GstMessage *, gpointer);
private:
static void launchMonitoring(Audio *d);
static bool _initialized();
void add(GstDevice *device);
void remove(GstDevice *device);
GstDeviceMonitor *monitor_;
std::condition_variable monitor_initialization_;
bool monitor_initialized_;
bool monitor_unplug_event_;
std::mutex access_;
std::vector< AudioHandle > handles_;
};
#endif // AUDIO_H

View File

@@ -1,7 +1,7 @@
/*
* This file is part of vimix - video live mixer
*
* **Copyright** (C) 2019-2022 Bruno Herbelin <bruno.herbelin@gmail.com>
* **Copyright** (C) 2019-2023 Bruno Herbelin <bruno.herbelin@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -211,6 +211,24 @@ bool BaseToolkit::is_a_number(const std::string& str, int *val)
return isanumber;
}
bool BaseToolkit::is_a_value(const std::string& str, float *val)
{
bool isavalue = false;
try {
*val = std::stof(str);
isavalue = true;
}
catch (const std::invalid_argument&) {
// avoids crash
}
catch (const std::out_of_range&) {
// avoids crash
}
return isavalue;
}
std::string BaseToolkit::common_prefix( const std::list<std::string> & allStrings )
{
if (allStrings.empty())

View File

@@ -1,6 +1,7 @@
#ifndef BASETOOLKIT_H
#define BASETOOLKIT_H
#include <cstdint>
#include <list>
#include <string>
@@ -34,9 +35,12 @@ std::list<std::string> splitted(const std::string& str, char delim);
// rebuilds a splitted string
std::string joinned(std::list<std::string> strlist, char separator = ' ');
// returns true if the string
// returns true if the string contains an integer
bool is_a_number(const std::string& str, int *val);
// returns true if the string contains a float value
bool is_a_value(const std::string& str, float *val);
// find common parts in a list of strings
std::string common_prefix(const std::list<std::string> &allStrings);
std::string common_suffix(const std::list<std::string> &allStrings);

View File

@@ -1,13 +1,9 @@
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/constants.hpp>
#include <map>
#include "Log.h"
#include "View.h"
#include "Primitives.h"
#include "Scene.h"
#include "Source.h"
#include "Decorations.h"
#include "BoundingBoxVisitor.h"
@@ -57,15 +53,16 @@ void BoundingBoxVisitor::visit(Switch &n)
void BoundingBoxVisitor::visit(Primitive &n)
{
bbox_.extend(n.bbox().transformed(modelview_));
// Log::Info("visitor box (%f, %f)-(%f, %f)", bbox_.min().x, bbox_.min().y, bbox_.max().x, bbox_.max().y);
}
void BoundingBoxVisitor::visit(Scene &n)
{
n.ws()->accept(*this);
if (force_){
n.bg()->accept(*this);
n.fg()->accept(*this);
}
}
GlmToolkit::AxisAlignedBoundingBox BoundingBoxVisitor::AABB(SourceList l, View *view)

View File

@@ -8,8 +8,8 @@ class View;
class BoundingBoxVisitor: public Visitor
{
glm::mat4 modelview_;
bool force_;
glm::mat4 modelview_;
GlmToolkit::AxisAlignedBoundingBox bbox_;

View File

@@ -1,9 +1,10 @@
#####
##### This file is part of vimix - video live mixer
##### **Copyright** (C) 2019-2022 Bruno Herbelin <bruno.herbelin@gmail.com>
##### **Copyright** (C) 2019-2023 Bruno Herbelin <bruno.herbelin@gmail.com>
#####
cmake_minimum_required(VERSION 3.8.2)
cmake_minimum_required(VERSION 3.10)
include( InstallRequiredSystemLibraries )
#####
##### VIMIX TARGET BINARY
@@ -65,6 +66,12 @@ set(VMIX_SRCS
DelayFilter.cpp
RenderingManager.cpp
UserInterfaceManager.cpp
WorkspaceWindow.cpp
SourceControlWindow.cpp
OutputPreviewWindow.cpp
TimerMetronomeWindow.cpp
InputMappingWindow.cpp
ShaderEditWindow.cpp
PickingVisitor.cpp
BoundingBoxVisitor.cpp
DrawVisitor.cpp
@@ -88,6 +95,13 @@ set(VMIX_SRCS
ShmdataBroadcast.cpp
SrtReceiverSource.cpp
MultiFileRecorder.cpp
DisplaysView.cpp
ScreenCaptureSource.cpp
MousePointer.cpp
Grid.cpp
Playlist.cpp
Audio.cpp
TextSource.cpp
)
#####
@@ -109,9 +123,12 @@ IF(APPLE)
)
# set the Info.plist file
set(MACOSX_BUNDLE_PLIST_FILE ${CMAKE_SOURCE_DIR}/osx/Info.plist)
set_target_properties(${VMIX_BINARY} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${MACOSX_BUNDLE_PLIST_FILE})
set(MACOSX_BUNDLE_PLIST_FILE ${CMAKE_SOURCE_DIR}/osx/Info.plist.in)
set_target_properties(${VMIX_BINARY} PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${MACOSX_BUNDLE_PLIST_FILE}
)
# link with base frameworks
set(PLATFORM_LIBS
"-framework CoreFoundation"
"-framework Appkit"
@@ -127,6 +144,8 @@ ELSE(APPLE)
set(PLATFORM_LIBS
GTK::GTK
X11::X11
X11::xcb
)
ENDIF(APPLE)
@@ -171,6 +190,15 @@ target_link_libraries(${VMIX_BINARY} LINK_PRIVATE
IF(APPLE)
set(CPACK_GENERATOR "DragNDrop")
set(CPACK_BINARY_DRAGNDROP ON)
set(CPACK_BUNDLE_NAME "vimix.app")
set(CPACK_BUNDLE_PLIST ${CMAKE_SOURCE_DIR}/osx/Info.plist.in)
set(CPACK_BUNDLE_ICON ${CMAKE_SOURCE_DIR}/osx/vimix.icns)
set(CPACK_BUNDLE_APPLE_CERT_APP ${APPLE_CODESIGN_IDENTITY})
set(CPACK_BUNDLE_APPLE_ENTITLEMENTS ${APPLE_CODESIGN_ENTITLEMENTS})
install(TARGETS ${VMIX_BINARY}
CONFIGURATIONS Release RelWithDebInfo
BUNDLE DESTINATION . COMPONENT Runtime
@@ -178,95 +206,115 @@ IF(APPLE)
)
# create GST plugins directory in Bundle Resources subfolder
set(plugin_dest_dir vimix.app/Contents/Resources/)
set(plugin_dest_dir ${CPACK_BUNDLE_NAME}/Contents/Resources/)
### TODO configure auto to find installation dir of gst
### install gst plugins
message(STATUS "Install with gst-plugins ${PKG_GSTREAMER_PLUGIN_DIR}")
install(DIRECTORY "${PKG_GSTREAMER_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
list(APPEND GSTPLUGINS_EXCLUDE "libgstgtk4.dylib" "libgstgtk.dylib" "libgstpython.dylib")
message(STATUS "install gst-plugins ${PKG_GSTREAMER_PLUGIN_DIR}")
message(STATUS "install gst-plugins-base ${PKG_GSTREAMER_BASE_PLUGIN_DIR}")
if (PKG_CONFIG_FOUND)
pkg_check_modules(PKG_GSTREAMER_PLUGINS_BAD gstreamer-plugins-bad-${GSTREAMER_ABI_VERSION})
set(PKG_GSTREAMER_BAD_PLUGIN_DIR ${PKG_GSTREAMER_PLUGINS_BAD_LIBDIR}/gstreamer-${GSTREAMER_ABI_VERSION})
message(STATUS "install gst-plugins-bad ${PKG_GSTREAMER_BAD_PLUGIN_DIR}")
endif()
# intall the gst-plugin-scanner program (used by plugins at load time)
# install the gst-plugin-scanner program (used by plugins at load time)
set(PKG_GSTREAMER_SCANNER "${PKG_GSTREAMER_PREFIX}/libexec/gstreamer-1.0/gst-plugin-scanner")
message(STATUS "install gst-plugin-scanner ${PKG_GSTREAMER_SCANNER}")
message(STATUS "Install with gst-plugin-scanner ${PKG_GSTREAMER_SCANNER}")
install(FILES "${PKG_GSTREAMER_SCANNER}"
DESTINATION "${plugin_dest_dir}"
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
COMPONENT Runtime
)
# Install the gst-plugins (all those installed with brew )
install(DIRECTORY "${PKG_GSTREAMER_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
install(DIRECTORY "${PKG_GSTREAMER_BASE_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
install(DIRECTORY "${PKG_GSTREAMER_BAD_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
install(DIRECTORY "/usr/local/Cellar/gst-plugins-good/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
install(DIRECTORY "/usr/local/Cellar/gst-plugins-ugly/1.18.4_1/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
install(DIRECTORY "/usr/local/Cellar/gst-libav/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
# install locally recompiled & installed gst-plugins (because not included in brew package)
install(FILES "/usr/local/lib/gstreamer-1.0/libgstapplemedia.dylib"
"/usr/local/lib/gstreamer-1.0/libgstde265.dylib"
"/usr/local/lib/gstreamer-1.0/libgstx265.dylib"
DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
# install frei0r plugins (dependencies of gstreamer-1.0/libgstfrei0r.dylib plugin)
install(FILES "/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/lissajous0r.so"
"/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/rgbnoise.so"
DESTINATION "${plugin_dest_dir}/frei0r-1" COMPONENT Runtime)
# ICU DATA LIB GST dependency : undocumented and hacked here : seems to work
# install(FILES "${ICU_LINK_LIBRARIES}" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
install(FILES "/usr/local/Cellar/icu4c/69.1/lib/libicudata.69.1.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" RENAME "libicudata.69.dylib" COMPONENT Runtime)
message(STATUS "install ${ICU_LINK_LIBRARIES} from ${ICU_LIBRARY_DIRS}")
pkg_check_modules(FREI0R QUIET frei0r)
set(PKG_FREI0R_PLUGIN_DIR ${FREI0R_LIBDIR}/frei0r-1)
message(STATUS "Install with frei0r plugins ${PKG_FREI0R_PLUGIN_DIR}")
install(DIRECTORY "${PKG_FREI0R_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
# package runtime fixup bundle
set(APPS "\${CMAKE_INSTALL_PREFIX}/vimix.app")
set(APPS "\${CMAKE_INSTALL_PREFIX}/${CPACK_BUNDLE_NAME}")
##
## APPLE BUNDLE FIX
## with install_name_tool using cmake 'fixup_bundle'
##
install(CODE "
file(GLOB_RECURSE GSTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/gstreamer-1.0/*.dylib\")
list(APPEND LIBS_PATH \"\${ICU_LIBRARY_DIRS}\")
include(BundleUtilities)
set(BU_CHMOD_BUNDLE_ITEMS TRUE)
fixup_bundle(\"${APPS}\" \"\${GSTPLUGINS}\" \"${LIBS_PATH}\")
"
COMPONENT Runtime
file(GLOB_RECURSE GSTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/gstreamer-1.0/*.dylib\")
foreach(PLUGIN \${GSTPLUGINS})
set(ADD_PLUGIN true)
foreach(EXCLUDED ${GSTPLUGINS_EXCLUDE})
string(FIND \${PLUGIN} \${EXCLUDED} _found)
if(NOT \${_found} EQUAL -1)
file(REMOVE \${PLUGIN})
set(ADD_PLUGIN false)
endif()
endforeach()
if(ADD_PLUGIN)
list(APPEND ALLPLUGINS \${PLUGIN})
endif()
endforeach()
file(GLOB FREI0RPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/frei0r-1/*.so\")
list(APPEND ALLPLUGINS \${FREI0RPLUGINS} )
list(LENGTH ALLPLUGINS SIZE)
message(\" - Adding \${SIZE} plugins to bundle...\")
include(BundleUtilities)
set(BU_CHMOD_BUNDLE_ITEMS TRUE)
fixup_bundle(\"${APPS}\" \"\${ALLPLUGINS}\" \"/opt/homebrew/lib\" IGNORE_ITEM \"Python\")
file(REMOVE_RECURSE \"${APPS}/Contents/Frameworks/Python.framework\")
"
COMPONENT Runtime
)
set(APPLE_CODESIGN_IDENTITY "" CACHE STRING "")
##
## APPLE CODE SIGNING
## Sign the bundle and ALL binary (executables and dynamic library)
##
string(LENGTH "${APPLE_CODESIGN_IDENTITY}" APPLE_CODESIGN_IDENTITY_LENGHT)
if( ${APPLE_CODESIGN_IDENTITY_LENGHT} LESS 40 )
message(STATUS "Not signing bundle. Specify APPLE_CODESIGN_IDENTITY to cmake before running cpack to sign")
message(STATUS "Not signing bundle. Specify APPLE_CODESIGN_IDENTITY to cmake before running cpack if you want to sign the bundle")
else()
message(STATUS "Signing bundle with identity " ${APPLE_CODESIGN_IDENTITY})
install(CODE "
cmake_policy(VERSION 3.8)
file(GLOB_RECURSE DEPENDENCIES ${APPS}/Contents/*.dylib)
file(GLOB_RECURSE SO_DEPENDENCIES ${APPS}/Contents/*.so)
list(APPEND DEPENDENCIES \${SO_DEPENDENCIES})
foreach(DEP \${DEPENDENCIES})
execute_process(COMMAND
codesign --verify --verbose=0 --force
--sign \"${APPLE_CODESIGN_IDENTITY}\"
\"\${DEP}\"
)
endforeach()
list(LENGTH DEPENDENCIES SIZE)
message(\" - \${SIZE} dependency libraries signed.\")
message(\" - Signing executables in ${APPS}\")
execute_process(COMMAND
codesign -vvv --deep --force
--entitlements \"${APPLE_CODESIGN_ENTITLEMENTS}\"
--sign \"${APPLE_CODESIGN_IDENTITY}\"
\"${APPS}\" )
codesign -vvv --force
--options runtime --timestamp
--entitlements \"${APPLE_CODESIGN_ENTITLEMENTS}\"
--sign \"${APPLE_CODESIGN_IDENTITY}\"
\"${APPS}/Contents/MacOS/vimix\"
\"${APPS}/Contents/Resources/gst-plugin-scanner\"
)
message(\" - Signing bundle ${APPS}\")
execute_process(COMMAND
codesign -vvv --force --strict
--options runtime --timestamp
--entitlements \"${APPLE_CODESIGN_ENTITLEMENTS}\"
--sign \"${APPLE_CODESIGN_IDENTITY}\"
\"${APPS}\"
)
"
COMPONENT Runtime
)
endif()
# # package runtime fixup bundle and codesign
# set(BUNDLE_NAME "vimix.app")
# set(BUNDLE_LIBS_DIR "${plugin_dest_dir}/gstreamer-1.0")
# set(BUNDLE_DIRS "${ICU_LIBRARY_DIRS}")
# set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist")
# configure_file(cmake/modules/BundleInstall.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" @ONLY)
# install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" COMPONENT Runtime)
ELSE(APPLE)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/share DESTINATION ${CMAKE_INSTALL_PREFIX})
install(FILES "${CMAKE_SOURCE_DIR}/rsc/launch_vimix.sh"
DESTINATION bin
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
COMPONENT Runtime
)
install(TARGETS ${VMIX_BINARY}
CONFIGURATIONS Release RelWithDebInfo

Some files were not shown because too many files have changed in this diff Show More