├── .gitignore ├── 17366960395_ed2f6d85da_b.jpg ├── 32_vs_9.v4p ├── 3d_basic.v4p ├── ARTK.v4p ├── AnimationList.v4p ├── Arduino_Giro.v4p ├── Arduino_Sound.v4p ├── Arduino_first.v4p ├── Arduino_fullLEDv4p.v4p ├── Arduino_input.v4p ├── Arduino_pressure.v4p ├── BoxSpin.v4p ├── CS_Button.v4p ├── Cartesian.v4p ├── CdS.v4p ├── Client_TCP.v4p ├── Dijkstra.v4p ├── DrawAsQuad.v4p ├── EX9MeshSubset.v4p ├── EyqSensorToOSC_with_vvvv.v4p ├── FFDamageMove.v4p ├── FFT4Channel.v4p ├── FindBody.v4p ├── FizzBuzz.v4p ├── ForBeginner.v4p ├── GPUfluid.v4p ├── Game01.v4p ├── GameController.v4p ├── Kansuji.zip ├── Kinetic_Typography.v4p ├── LCD.v4p ├── LICENSE ├── LSystem.v4p ├── Leap.v4p ├── MMDLoader.v4p ├── Math_matrix.v4p ├── Matrix_02.v4p ├── Multimedia.v4p ├── ODE.v4p ├── README.md ├── SQL.v4p ├── SendTexture.v4p ├── Server_TCP.v4p ├── Shader.v4p ├── ShaderFilter.zip ├── ShaderFilter ├── CrossGrare.fx ├── Shader_Filter.v4p ├── TestFilter.fx └── tokyo.jpg ├── Shooting.v4p ├── Spreads.v4p ├── TobiiTest.v4p ├── Tutorial_Kurumi.v4p ├── VST.v4p ├── VertexBuffer.v4p ├── VertexTexture.v4p ├── ame.v4p ├── audioin.v4p ├── b-spline.v4p ├── b-spline_2.v4p ├── ball.png ├── boids.zip ├── boids ├── 1AnimationFlockingBehavior.dll ├── PointSprites.fx ├── SubPatches │ ├── AnimalBehavior_subPatch.v4p │ ├── Behaviors_Save.v4p │ ├── FlockingBehavior_subPatch.v4p │ ├── Helpers.v4p │ ├── Helpers_.v4p │ └── Taget_EnemyGenerator.v4p ├── _AnimalBehaviors(Help).v4p ├── _FlockingBehavior(Help).v4p ├── arrow3d_1.x ├── main.v4p └── star.png ├── box2d.v4p ├── brainfuck.v4p ├── break.wav ├── bullet.v4p ├── channel_vol9 ├── LSystem (LSystem) help.v4p ├── LSystem.csproj ├── LSystemNode.cs ├── LifeGame.v4p ├── _00_ROOT.v4p ├── _01_electro.v4p ├── _02_real_cube.v4p ├── _03_Rings.v4p ├── _04_car_movie.v4p ├── _05_colorful_boxes.v4p ├── _06LSystem.v4p ├── _07_Ambient_Sphere.v4p ├── _08_skipping.v4p ├── _09_BallGame.v4p ├── _10_particle.v4p ├── _11_boxGPU.v4p ├── _12_RealShiny.v4p ├── _13_LifeGame.v4p ├── _14_kaoss.v4p ├── _15_vvvvj.v4p ├── _root_svg_import.v4p └── glare.v4p ├── circle.png ├── complex.v4p ├── connect_near_line.v4p ├── cool_scene.v4p ├── desafes.v4p ├── dx11_gs_begin.v4p ├── effects ├── BoxSpin.fx ├── PixelTest.fx ├── TestEffect01.fx ├── TestFilter.fx ├── VertexSpin.fx ├── Wave.fx ├── Wave2.fx └── shift.fx ├── enum.v4p ├── flickr.v4p ├── girov4p.v4p ├── gs_test.v4p ├── gui_button.v4p ├── hane.v4p ├── howahowa_circle.v4p ├── hsv_bug.v4p ├── keyboard.v4p ├── keying.v4p ├── lfo.v4p ├── lunar.png ├── midi_keyboard.v4p ├── move_window ├── MoveWindow help.v4p └── plugins │ └── WindowMoveWindow │ ├── Properties │ └── AssemblyInfo.cs │ ├── WindowMoveWindow.csproj │ ├── WindowMoveWindowNode.cs │ └── bin │ └── Dynamic │ ├── -636783787._dynamic_.1.dll │ ├── -636783787._dynamic_.2.dll │ ├── -636783787._dynamic_.3.dll │ ├── -636783787._dynamic_.4.dll │ └── 1552615683._dynamic_.9.dll ├── movie_writer.v4p ├── newton.v4p ├── particle.v4p ├── perlin.v4p ├── pixel_texel.v4p ├── plugins ├── 1TobiiTobii │ ├── 1TobiiTobii.csproj │ ├── C1TobiiTobiiNode.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── bin │ │ └── Dynamic │ │ └── 2142191625._dynamic_.1.dll ├── DevicesTobiiEyeX │ ├── DevicesTobiiEyeX.csproj │ ├── DevicesTobiiEyeX.sln │ ├── DevicesTobiiEyeX.suo │ ├── DevicesTobiiEyeX.v11.suo │ ├── DevicesTobiiEyeXNode.cs │ ├── EyeXFramework │ │ ├── ActivatableBehavior.cs │ │ ├── DataStreamBase.cs │ │ ├── EngineStateAccessor.cs │ │ ├── EngineStateValue.cs │ │ ├── EyePositionDataStream.cs │ │ ├── EyeXFramework.csproj │ │ ├── EyeXHost.Tools.cs │ │ ├── EyeXHost.cs │ │ ├── FixationDataStream.cs │ │ ├── Forms │ │ │ ├── BehaviorMap.cs │ │ │ ├── DpiAwarenessUtilities.cs │ │ │ ├── FormsCrawler.cs │ │ │ ├── FormsEyeXHost.cs │ │ │ ├── FormsInteractor.cs │ │ │ └── IFormsEyeXHost.cs │ │ ├── GazeAwareBehavior.cs │ │ ├── GazePointDataStream.cs │ │ ├── IDataStreamObserver.cs │ │ ├── IEyeXBehavior.cs │ │ ├── InteractorIDGenerator.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Settings.StyleCop │ │ ├── Wpf │ │ │ ├── Behavior.Activatable.cs │ │ │ ├── Behavior.GazeAware.cs │ │ │ ├── Behavior.Occluder.cs │ │ │ ├── Behavior.cs │ │ │ ├── WpfCrawler.cs │ │ │ ├── WpfEyeXHost.cs │ │ │ └── WpfInteractor.cs │ │ ├── bin │ │ │ └── x86 │ │ │ │ └── Debug │ │ │ │ ├── EyeXFramework.dll │ │ │ │ ├── EyeXFramework.pdb │ │ │ │ ├── Tobii.EyeX.Client.Net20.dll │ │ │ │ └── Tobii.EyeX.Client.Net20.xml │ │ └── obj │ │ │ └── x86 │ │ │ └── Debug │ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ │ ├── EyeXFramework.csproj.FileListAbsolute.txt │ │ │ ├── EyeXFramework.csprojResolveAssemblyReference.cache │ │ │ ├── EyeXFramework.dll │ │ │ ├── EyeXFramework.pdb │ │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Tobii.EyeX.Client.Net20.dll │ ├── Tobii.EyeX.Client.dll │ ├── bin │ │ ├── AnyCPU │ │ │ └── Debug │ │ │ │ ├── CommandLine.dll │ │ │ │ ├── CommandLine.xml │ │ │ │ ├── DevicesTobiiEyeX.dll │ │ │ │ ├── DevicesTobiiEyeX.pdb │ │ │ │ ├── EyeXFramework.dll │ │ │ │ ├── EyeXFramework.pdb │ │ │ │ ├── ICSharpCode.NRefactory.dll │ │ │ │ ├── ICSharpCode.SharpDevelop.Dom.dll │ │ │ │ ├── Microsoft.Practices.ServiceLocation.dll │ │ │ │ ├── Microsoft.Practices.Unity.dll │ │ │ │ ├── Microsoft.Practices.Unity.xml │ │ │ │ ├── Mono.Cecil.dll │ │ │ │ ├── SlimDX.dll │ │ │ │ ├── SlimDX.xml │ │ │ │ ├── System.ComponentModel.Composition.Codeplex.dll │ │ │ │ ├── System.ComponentModel.Composition.Codeplex.xml │ │ │ │ ├── System.Reactive.Core.dll │ │ │ │ ├── System.Reactive.Core.xml │ │ │ │ ├── System.Reactive.Interfaces.dll │ │ │ │ ├── System.Reactive.Interfaces.xml │ │ │ │ ├── System.Reactive.Linq.dll │ │ │ │ ├── System.Reactive.Linq.xml │ │ │ │ ├── System.Reflection.Context.dll │ │ │ │ ├── Tobii.EyeX.Client.Net20.dll │ │ │ │ ├── Tobii.EyeX.Client.dll │ │ │ │ ├── VVVV.Core.dll │ │ │ │ ├── VVVV.PluginInterfaces.dll │ │ │ │ ├── VVVV.PluginInterfaces.xml │ │ │ │ ├── VVVV.Utils.dll │ │ │ │ ├── VVVV.Utils.xml │ │ │ │ ├── VVVV.Utils3rdParty.dll │ │ │ │ ├── VVVV.Utils3rdParty.xml │ │ │ │ ├── VVVV.UtilsIL.dll │ │ │ │ ├── VVVV.UtilsIL.xml │ │ │ │ └── log4net.dll │ │ └── Dynamic │ │ │ ├── 1278305982._dynamic_.21.dll │ │ │ ├── 1508555595._dynamic_.1.dll │ │ │ ├── EyeXFramework.dll │ │ │ ├── Tobii.EyeX.Client.Net20.dll │ │ │ └── Tobii.EyeX.Client.dll │ └── obj │ │ ├── Debug │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ ├── DevicesTobiiEyeX.csproj.FileListAbsolute.txt │ │ ├── DevicesTobiiEyeX.csprojResolveAssemblyReference.cache │ │ ├── DevicesTobiiEyeX.dll │ │ ├── DevicesTobiiEyeX.pdb │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ └── x86 │ │ └── Debug │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ └── build.force ├── NetworkSendTexture │ ├── NetworkSendTexture.csproj │ ├── NetworkSendTextureNode.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── bin │ │ └── Dynamic │ │ └── 1302268752._dynamic_.1.dll ├── RawSendTexture │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── RawSendTexture.csproj │ ├── RawSendTextureNode.cs │ └── bin │ │ └── Dynamic │ │ └── -1277556148._dynamic_.19.dll ├── StringFFDamageMove │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── StringFFDamageMove.csproj │ ├── StringFFDamageMoveNode.cs │ └── bin │ │ └── Dynamic │ │ └── 348075696._dynamic_.51.dll ├── ValueCS_Test │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ValueCS_Test.csproj │ ├── ValueCS_TestNode.cs │ └── bin │ │ └── Dynamic │ │ └── -1925375871._dynamic_.9.dll └── ValueSortPoint2 │ ├── Properties │ └── AssemblyInfo.cs │ ├── ValueSortPoint2.csproj │ ├── ValueSortPoint2Node.cs │ └── bin │ └── Dynamic │ └── 23580670._dynamic_.7.dll ├── projection_mappng_01.v4p ├── shader_begin.v4p ├── shiftUV.v4p ├── shoot.wav ├── sky_star.jpg ├── sound_maker.v4p ├── sounds ├── 01ƒh.wav ├── 02ƒŒ.wav ├── 03ƒ~.wav ├── 05.wav ├── 06ƒ‰.wav ├── 08ƒhi‚j.wav ├── 09ƒŒi‚j.wav ├── 10ƒ~i‚j.wav ├── 12.wav └── 13ƒ‰i‚j.wav ├── ssao_test.v4p ├── star.png ├── texture_source.v4p ├── videoIn.v4p ├── vl ├── VVVV.Tutorial.AsyncTest.vl ├── VVVV.Tutorial.ClassTest.vl ├── VVVV.Tutorial.CountModel.vl ├── VVVV.Tutorial.Misc.vl ├── VVVV.Tutorial.PanelSystem.vl ├── VVVV.Tutorial.Particle.vl └── VVVV.Tutorial.Puzzle.vl ├── vl_async.v4p ├── vl_class.v4p ├── vl_panel_system.v4p ├── vl_process.v4p ├── vl_puzzle.v4p ├── vl_record.v4p ├── vl_region.v4p ├── vvvv2unity-1.v4p ├── vvvv2unity.v4p ├── vvvv2unity_scene_01.v4p └── we_lovve_vvvv.v4p /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # .v4p backup files 3 | *~.xml 4 | *.pdb 5 | *.dll 6 | -------------------------------------------------------------------------------- /17366960395_ed2f6d85da_b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/17366960395_ed2f6d85da_b.jpg -------------------------------------------------------------------------------- /FindBody.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /Kansuji.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/Kansuji.zip -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | 26 | -------------------------------------------------------------------------------- /Matrix_02.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /ODE.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | VVVV Tutorial 2 | ============= 3 | 4 | vvvv 講座 5 | (https://www.youtube.com/playlist?list=PLqjkdWFcBMk8gVdbGuSqwi4q1ihr7LcaW) 6 | のパッチをてきとーにアップしています。プラグインの関係などで動かないものも多いと思うので雰囲気をつかむ程度な感じでお願いします。 7 | タイトルとファイル名を関連付けるのは大変なので推測してください。 8 | パブリックドメインなので、自己責任で好きに改変や利用しください。 9 | -------------------------------------------------------------------------------- /ShaderFilter.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/ShaderFilter.zip -------------------------------------------------------------------------------- /ShaderFilter/CrossGrare.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | float2 texelSize; 16 | float4 color: COLOR; 17 | 18 | //texture 19 | texture Tex ; 20 | sampler Samp = sampler_state //sampler for doing the texture-lookup 21 | { 22 | Texture = (Tex); //apply a texture to the sampler 23 | MipFilter = LINEAR; //sampler states 24 | MinFilter = LINEAR; 25 | MagFilter = LINEAR; 26 | }; 27 | 28 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 29 | float4x4 tTex: TEXTUREMATRIX ; 30 | 31 | //the data structure: "vertexshader to pixelshader" 32 | //used as output data with the VS function 33 | //and as input data with the PS function 34 | struct vs2ps 35 | { 36 | float4 Pos : POSITION; 37 | float2 TexCd : TEXCOORD0; 38 | }; 39 | 40 | // -------------------------------------------------------------------------------------------------- 41 | // VERTEXSHADERS 42 | // -------------------------------------------------------------------------------------------------- 43 | vs2ps VS( 44 | float4 PosO : POSITION, 45 | float4 TexCd : TEXCOORD0) 46 | { 47 | //declare output struct 48 | vs2ps Out; 49 | 50 | //transform position 51 | Out.Pos = mul(PosO, tWVP); 52 | 53 | //transform texturecoordinates 54 | Out.TexCd = mul(TexCd, tTex); 55 | 56 | return Out; 57 | } 58 | 59 | // -------------------------------------------------------------------------------------------------- 60 | // PIXELSHADERS: 61 | // -------------------------------------------------------------------------------------------------- 62 | 63 | float4 PS(vs2ps In): COLOR 64 | { 65 | float2 d[4] = { float2(1,1), float2(-1,1), float2(1,-1), float2(-1,-1) }; 66 | float4 sum = 0; 67 | for (int i=0; i < 10; ++i) 68 | { 69 | for (int j=0; j < 4; ++j) 70 | { 71 | float2 adj = In.TexCd + texelSize*d[j]*i; 72 | sum += tex2D(Samp, adj) / (i+i+1); 73 | } 74 | } 75 | return sum * color; 76 | } 77 | 78 | // -------------------------------------------------------------------------------------------------- 79 | // TECHNIQUES: 80 | // -------------------------------------------------------------------------------------------------- 81 | 82 | technique TSimpleShader 83 | { 84 | pass P0 85 | { 86 | //Wrap0 = U; // useful when mesh is round like a sphere 87 | VertexShader = compile vs_3_0 VS(); 88 | PixelShader = compile ps_3_0 PS(); 89 | } 90 | } 91 | 92 | technique TFixedFunction 93 | { 94 | pass P0 95 | { 96 | //transforms 97 | WorldTransform[0] = (tW); 98 | ViewTransform = (tV); 99 | ProjectionTransform = (tP); 100 | 101 | //texturing 102 | Sampler[0] = (Samp); 103 | TextureTransform[0] = (tTex); 104 | TexCoordIndex[0] = 0; 105 | TextureTransformFlags[0] = COUNT2; 106 | //Wrap0 = U; // useful when mesh is round like a sphere 107 | 108 | Lighting = FALSE; 109 | 110 | //shaders 111 | VertexShader = NULL; 112 | PixelShader = NULL; 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /ShaderFilter/TestFilter.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | float Threshold; 16 | 17 | //texture 18 | texture Tex ; 19 | sampler Samp = sampler_state //sampler for doing the texture-lookup 20 | { 21 | Texture = (Tex); //apply a texture to the sampler 22 | MipFilter = LINEAR; //sampler states 23 | MinFilter = LINEAR; 24 | MagFilter = LINEAR; 25 | }; 26 | 27 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 28 | float4x4 tTex: TEXTUREMATRIX ; 29 | 30 | //the data structure: "vertexshader to pixelshader" 31 | //used as output data with the VS function 32 | //and as input data with the PS function 33 | struct vs2ps 34 | { 35 | float4 Pos : POSITION; 36 | float2 TexCd : TEXCOORD0; 37 | }; 38 | 39 | // -------------------------------------------------------------------------------------------------- 40 | // VERTEXSHADERS 41 | // -------------------------------------------------------------------------------------------------- 42 | vs2ps VS( 43 | float4 PosO : POSITION, 44 | float4 TexCd : TEXCOORD0) 45 | { 46 | //declare output struct 47 | vs2ps Out; 48 | 49 | //transform position 50 | Out.Pos = mul(PosO, tWVP); 51 | 52 | //transform texturecoordinates 53 | Out.TexCd = mul(TexCd, tTex); 54 | 55 | return Out; 56 | } 57 | 58 | // -------------------------------------------------------------------------------------------------- 59 | // PIXELSHADERS: 60 | // -------------------------------------------------------------------------------------------------- 61 | 62 | float4 PS(vs2ps In): COLOR 63 | { 64 | float4 col = tex2D(Samp, In.TexCd); 65 | float p = col.a * (col.r + col.g + col.b)/3.0; 66 | if (p < Threshold) 67 | { 68 | col = 0; 69 | } 70 | else 71 | { 72 | col = 1; 73 | } 74 | return col; 75 | } 76 | 77 | // -------------------------------------------------------------------------------------------------- 78 | // TECHNIQUES: 79 | // -------------------------------------------------------------------------------------------------- 80 | 81 | technique TSimpleShader 82 | { 83 | pass P0 84 | { 85 | //Wrap0 = U; // useful when mesh is round like a sphere 86 | VertexShader = compile vs_1_1 VS(); 87 | PixelShader = compile ps_2_0 PS(); 88 | } 89 | } 90 | 91 | technique TFixedFunction 92 | { 93 | pass P0 94 | { 95 | //transforms 96 | WorldTransform[0] = (tW); 97 | ViewTransform = (tV); 98 | ProjectionTransform = (tP); 99 | 100 | //texturing 101 | Sampler[0] = (Samp); 102 | TextureTransform[0] = (tTex); 103 | TexCoordIndex[0] = 0; 104 | TextureTransformFlags[0] = COUNT2; 105 | //Wrap0 = U; // useful when mesh is round like a sphere 106 | 107 | Lighting = FALSE; 108 | 109 | //shaders 110 | VertexShader = NULL; 111 | PixelShader = NULL; 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /ShaderFilter/tokyo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/ShaderFilter/tokyo.jpg -------------------------------------------------------------------------------- /VST.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /audioin.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/ball.png -------------------------------------------------------------------------------- /boids.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/boids.zip -------------------------------------------------------------------------------- /boids/1AnimationFlockingBehavior.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/boids/1AnimationFlockingBehavior.dll -------------------------------------------------------------------------------- /boids/PointSprites.fx: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // Point sprite renders a screen aligned quad for every vertex streamed to 3 | // the shader, thus minimizing cpu cycles and drawing calls to the gpu. 4 | // This technique is mostly used for rendering particles. Sprite size (in pixels) 5 | // is calculated from Projection Matrix and ViewportHeight(optional). 6 | // The maximum size is usualy 256 px on newer gpus. 7 | // This shader is based on Template.fx, all the default comments are deleted 8 | // so you can easily find how to implement this technique. By Viktor Vicsek 2008 9 | //////////////////////////////////////////////////////////////////////////////// 10 | 11 | float4x4 tW: WORLD; 12 | float4x4 tV: VIEW; 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | float4 color : COLOR; 16 | 17 | //texture 18 | texture Tex ; 19 | sampler Samp = sampler_state 20 | { 21 | Texture = (Tex); 22 | MipFilter = LINEAR; 23 | MinFilter = LINEAR; 24 | MagFilter = LINEAR; 25 | AddressU = Clamp; 26 | AddressV = Clamp; 27 | }; 28 | //float4x4 tTex: TEXTUREMATRIX ; 29 | 30 | /////this will define the size of the quads in pixels if calcPerspective is false 31 | float Size ; 32 | /////connect this input to the BackBufferHeight output of the renderer 33 | float ViewportHeight; 34 | /////decide if you want perspective 35 | bool calcPerspective; 36 | //yet to be done: allow rotating the TexCoords coz the quads cant be rotated 37 | //float rotation; 38 | 39 | struct vs2ps 40 | { 41 | float4 Pos : POSITION; 42 | float2 TexCd : TEXCOORD0; 43 | float Size : PSIZE0; ////////////////// this allows usage of pointsize 44 | }; 45 | 46 | // -------------------------------------------------------------------------------------------------- 47 | // VERTEXSHADERS 48 | // -------------------------------------------------------------------------------------------------- 49 | vs2ps VS( 50 | float4 PosO : POSITION, 51 | float4 TexCd : TEXCOORD0) 52 | { 53 | 54 | vs2ps Out = (vs2ps)0; 55 | 56 | 57 | Out.Pos = mul(PosO, tWVP); 58 | 59 | //transform texturecoordinates --- this should be put to pixelshader 60 | Out.TexCd = TexCd; 61 | if(calcPerspective){ 62 | Out.Size=Size * tP / Out.Pos.w * ViewportHeight/2; 63 | }else{ 64 | Out.Size=Size; 65 | } 66 | return Out; 67 | } 68 | 69 | // -------------------------------------------------------------------------------------------------- 70 | // PIXELSHADERS: 71 | // -------------------------------------------------------------------------------------------------- 72 | 73 | float4 PS(vs2ps In): COLOR 74 | { 75 | ///todo: fix texcoord rotation 76 | //float2 newTexCd=(-0.5,-0.5);// In.TexCd-0.5;////needed to rotate from center 77 | //newTexCd=mul(newTexCd,tTex); ////actual rotation 78 | //newTexCd*=sqrt(2); ////scale, so corners dont get lost 79 | //newTexCd+= 0.5; ////return to origin 80 | float4 col = color * tex2D(Samp, In.TexCd); 81 | return col; 82 | } 83 | 84 | // -------------------------------------------------------------------------------------------------- 85 | // TECHNIQUES: 86 | // -------------------------------------------------------------------------------------------------- 87 | 88 | technique TPointSprite 89 | { 90 | pass P0 91 | { 92 | /////the next 3 statements are important: 93 | FillMode = POINT; 94 | PointScaleEnable = true; 95 | PointSpriteEnable = true; 96 | //AlphaBlendEnable = true; 97 | VertexShader = compile vs_1_0 VS(); 98 | PixelShader = compile ps_1_0 PS(); 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /boids/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/boids/star.png -------------------------------------------------------------------------------- /break.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/break.wav -------------------------------------------------------------------------------- /channel_vol9/LSystem.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16} 5 | Debug 6 | x86 7 | Library 8 | VVVV.Nodes 9 | LSystem 10 | v4.0 11 | bin\$(Platform)\$(Configuration)\ 12 | True 13 | ..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\core\;..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\nodes\plugins\;..\..\..\Program Files (x86)\vvvv_45beta32.1_x86\lib\core\;..\..\..\Program Files (x86)\vvvv_45beta32.1_x86\lib\nodes\plugins\ 14 | 15 | 16 | DEBUG;TRACE 17 | False 18 | True 19 | Full 20 | True 21 | 22 | 23 | TRACE 24 | True 25 | False 26 | None 27 | False 28 | 29 | 30 | AnyCPU 31 | 32 | 33 | x86 34 | 35 | 36 | x64 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/circle.png -------------------------------------------------------------------------------- /dx11_gs_begin.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /effects/BoxSpin.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | float factor; 16 | 17 | //texture 18 | texture Tex ; 19 | sampler Samp = sampler_state //sampler for doing the texture-lookup 20 | { 21 | Texture = (Tex); //apply a texture to the sampler 22 | MipFilter = LINEAR; //sampler states 23 | MinFilter = LINEAR; 24 | MagFilter = LINEAR; 25 | }; 26 | 27 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 28 | float4x4 tTex: TEXTUREMATRIX ; 29 | 30 | //the data structure: "vertexshader to pixelshader" 31 | //used as output data with the VS function 32 | //and as input data with the PS function 33 | struct vs2ps 34 | { 35 | float4 Pos : POSITION; 36 | float2 TexCd : TEXCOORD0; 37 | }; 38 | 39 | // -------------------------------------------------------------------------------------------------- 40 | // VERTEXSHADERS 41 | // -------------------------------------------------------------------------------------------------- 42 | vs2ps VS( 43 | float4 PosO : POSITION, 44 | float4 TexCd : TEXCOORD0) 45 | { 46 | //declare output struct 47 | vs2ps Out; 48 | 49 | float4 p = mul(PosO, tW); 50 | float dy = p.y + 0.5; 51 | float s,c; 52 | sincos(dy*factor, s, c); 53 | float4x4 mat = { 54 | c, 0, s, 0, 55 | 0, 1, 0, 0, 56 | -s, 0, c, 0, 57 | 0, 0, 0, 1 58 | }; 59 | 60 | //transform position 61 | Out.Pos = mul(mul(mul(p, mat), tV), tP); 62 | 63 | //transform texturecoordinates 64 | Out.TexCd = float2(p.x+0.5, p.y+0.5); 65 | 66 | return Out; 67 | } 68 | 69 | // -------------------------------------------------------------------------------------------------- 70 | // PIXELSHADERS: 71 | // -------------------------------------------------------------------------------------------------- 72 | 73 | float4 PS(vs2ps In): COLOR 74 | { 75 | float4 col = float4(In.TexCd.x, In.TexCd.y, 0, 1); 76 | return col; 77 | } 78 | 79 | // -------------------------------------------------------------------------------------------------- 80 | // TECHNIQUES: 81 | // -------------------------------------------------------------------------------------------------- 82 | 83 | technique TSimpleShader 84 | { 85 | pass P0 86 | { 87 | //Wrap0 = U; // useful when mesh is round like a sphere 88 | VertexShader = compile vs_2_0 VS(); 89 | PixelShader = compile ps_2_0 PS(); 90 | } 91 | } 92 | 93 | technique TFixedFunction 94 | { 95 | pass P0 96 | { 97 | //transforms 98 | WorldTransform[0] = (tW); 99 | ViewTransform = (tV); 100 | ProjectionTransform = (tP); 101 | 102 | //texturing 103 | Sampler[0] = (Samp); 104 | TextureTransform[0] = (tTex); 105 | TexCoordIndex[0] = 0; 106 | TextureTransformFlags[0] = COUNT2; 107 | //Wrap0 = U; // useful when mesh is round like a sphere 108 | 109 | Lighting = FALSE; 110 | 111 | //shaders 112 | VertexShader = NULL; 113 | PixelShader = NULL; 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /effects/PixelTest.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | float width; 16 | 17 | //texture 18 | texture Tex ; 19 | sampler Samp = sampler_state //sampler for doing the texture-lookup 20 | { 21 | Texture = (Tex); //apply a texture to the sampler 22 | MipFilter = LINEAR; //sampler states 23 | MinFilter = LINEAR; 24 | MagFilter = LINEAR; 25 | }; 26 | 27 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 28 | float4x4 tTex: TEXTUREMATRIX ; 29 | 30 | //the data structure: "vertexshader to pixelshader" 31 | //used as output data with the VS function 32 | //and as input data with the PS function 33 | struct vs2ps 34 | { 35 | float4 Pos : POSITION; 36 | float2 TexCd : TEXCOORD0; 37 | }; 38 | 39 | // -------------------------------------------------------------------------------------------------- 40 | // VERTEXSHADERS 41 | // -------------------------------------------------------------------------------------------------- 42 | vs2ps VS( 43 | float4 PosO : POSITION, 44 | float4 TexCd : TEXCOORD0) 45 | { 46 | //declare output struct 47 | vs2ps Out; 48 | 49 | //transform position 50 | Out.Pos = mul(PosO, tWVP); 51 | 52 | //transform texturecoordinates 53 | Out.TexCd = mul(TexCd, tTex); 54 | 55 | return Out; 56 | } 57 | 58 | // -------------------------------------------------------------------------------------------------- 59 | // PIXELSHADERS: 60 | // -------------------------------------------------------------------------------------------------- 61 | 62 | float expr(float x) 63 | { 64 | return (cos(x*20) + sin(x*10))/5; 65 | } 66 | 67 | float4 hit(float2 uv) 68 | { 69 | //float2 d = float2(expr(uv.x), uv.y)- float2(uv.x, uv.y); 70 | float dl = (expr(uv.x)-width); 71 | float dr = (expr(uv.x)+width); 72 | if (abs(dl) < uv.y && uv.y < abs(dr)) { 73 | return float4(1, (uv.y+0.5), 0, 1); 74 | } 75 | return float4(1,1,1,1); 76 | } 77 | 78 | float4 PS(vs2ps In): COLOR 79 | { 80 | float4 col = hit(In.TexCd - float2(0.5, 0.5)); 81 | return col; 82 | } 83 | 84 | // -------------------------------------------------------------------------------------------------- 85 | // TECHNIQUES: 86 | // -------------------------------------------------------------------------------------------------- 87 | 88 | technique TSimpleShader 89 | { 90 | pass P0 91 | { 92 | //Wrap0 = U; // useful when mesh is round like a sphere 93 | VertexShader = compile vs_3_0 VS(); 94 | PixelShader = compile ps_3_0 PS(); 95 | } 96 | } 97 | 98 | technique TFixedFunction 99 | { 100 | pass P0 101 | { 102 | //transforms 103 | WorldTransform[0] = (tW); 104 | ViewTransform = (tV); 105 | ProjectionTransform = (tP); 106 | 107 | //texturing 108 | Sampler[0] = (Samp); 109 | TextureTransform[0] = (tTex); 110 | TexCoordIndex[0] = 0; 111 | TextureTransformFlags[0] = COUNT2; 112 | //Wrap0 = U; // useful when mesh is round like a sphere 113 | 114 | Lighting = FALSE; 115 | 116 | //shaders 117 | VertexShader = NULL; 118 | PixelShader = NULL; 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /effects/TestEffect01.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | float4 MyColor: COLOR; 16 | 17 | //texture 18 | texture Tex ; 19 | sampler Samp = sampler_state //sampler for doing the texture-lookup 20 | { 21 | Texture = (Tex); //apply a texture to the sampler 22 | MipFilter = LINEAR; //sampler states 23 | MinFilter = LINEAR; 24 | MagFilter = LINEAR; 25 | }; 26 | 27 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 28 | float4x4 tTex: TEXTUREMATRIX ; 29 | 30 | //the data structure: "vertexshader to pixelshader" 31 | //used as output data with the VS function 32 | //and as input data with the PS function 33 | struct vs2ps 34 | { 35 | float4 Pos : POSITION; 36 | float2 TexCd : TEXCOORD0; 37 | float3 Normal : TEXCOORD1; 38 | }; 39 | 40 | // -------------------------------------------------------------------------------------------------- 41 | // VERTEXSHADERS 42 | // -------------------------------------------------------------------------------------------------- 43 | vs2ps VS( 44 | float4 PosO : POSITION, 45 | float4 TexCd : TEXCOORD0, 46 | float3 Normal : NORMAL) 47 | { 48 | //declare output struct 49 | vs2ps Out; 50 | 51 | //transform position 52 | Out.Pos = mul(PosO, tWVP); 53 | 54 | //transform texturecoordinates 55 | Out.TexCd = mul(TexCd, tTex); 56 | 57 | Out.Normal = Normal; 58 | 59 | return Out; 60 | } 61 | 62 | // -------------------------------------------------------------------------------------------------- 63 | // PIXELSHADERS: 64 | // -------------------------------------------------------------------------------------------------- 65 | 66 | float4 PS(vs2ps In): COLOR 67 | { 68 | //float4 col = float4(In.Normal, 1);//tex2D(Samp, In.TexCd); 69 | float4 col = MyColor; 70 | return col; 71 | } 72 | 73 | // -------------------------------------------------------------------------------------------------- 74 | // TECHNIQUES: 75 | // -------------------------------------------------------------------------------------------------- 76 | 77 | technique TSimpleShader 78 | { 79 | pass P0 80 | { 81 | //Wrap0 = U; // useful when mesh is round like a sphere 82 | VertexShader = compile vs_1_1 VS(); 83 | PixelShader = compile ps_2_0 PS(); 84 | } 85 | } 86 | 87 | technique TFixedFunction 88 | { 89 | pass P0 90 | { 91 | //transforms 92 | WorldTransform[0] = (tW); 93 | ViewTransform = (tV); 94 | ProjectionTransform = (tP); 95 | 96 | //texturing 97 | Sampler[0] = (Samp); 98 | TextureTransform[0] = (tTex); 99 | TexCoordIndex[0] = 0; 100 | TextureTransformFlags[0] = COUNT2; 101 | //Wrap0 = U; // useful when mesh is round like a sphere 102 | 103 | Lighting = FALSE; 104 | 105 | //shaders 106 | VertexShader = NULL; 107 | PixelShader = NULL; 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /effects/TestFilter.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | float Threshold; 16 | 17 | //texture 18 | texture Tex ; 19 | sampler Samp = sampler_state //sampler for doing the texture-lookup 20 | { 21 | Texture = (Tex); //apply a texture to the sampler 22 | MipFilter = LINEAR; //sampler states 23 | MinFilter = LINEAR; 24 | MagFilter = LINEAR; 25 | }; 26 | 27 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 28 | float4x4 tTex: TEXTUREMATRIX ; 29 | 30 | //the data structure: "vertexshader to pixelshader" 31 | //used as output data with the VS function 32 | //and as input data with the PS function 33 | struct vs2ps 34 | { 35 | float4 Pos : POSITION; 36 | float2 TexCd : TEXCOORD0; 37 | }; 38 | 39 | // -------------------------------------------------------------------------------------------------- 40 | // VERTEXSHADERS 41 | // -------------------------------------------------------------------------------------------------- 42 | vs2ps VS( 43 | float4 PosO : POSITION, 44 | float4 TexCd : TEXCOORD0) 45 | { 46 | //declare output struct 47 | vs2ps Out; 48 | 49 | //transform position 50 | Out.Pos = mul(PosO, tWVP); 51 | 52 | //transform texturecoordinates 53 | Out.TexCd = mul(TexCd, tTex); 54 | 55 | return Out; 56 | } 57 | 58 | // -------------------------------------------------------------------------------------------------- 59 | // PIXELSHADERS: 60 | // -------------------------------------------------------------------------------------------------- 61 | 62 | float4 PS(vs2ps In): COLOR 63 | { 64 | float4 col = tex2D(Samp, In.TexCd); 65 | float p = col.a * (col.r + col.g + col.b)/3.0; 66 | if (p < Threshold) 67 | { 68 | col = 0; 69 | } 70 | else 71 | { 72 | col = 1; 73 | } 74 | return col; 75 | } 76 | 77 | // -------------------------------------------------------------------------------------------------- 78 | // TECHNIQUES: 79 | // -------------------------------------------------------------------------------------------------- 80 | 81 | technique TSimpleShader 82 | { 83 | pass P0 84 | { 85 | //Wrap0 = U; // useful when mesh is round like a sphere 86 | VertexShader = compile vs_1_1 VS(); 87 | PixelShader = compile ps_2_0 PS(); 88 | } 89 | } 90 | 91 | technique TFixedFunction 92 | { 93 | pass P0 94 | { 95 | //transforms 96 | WorldTransform[0] = (tW); 97 | ViewTransform = (tV); 98 | ProjectionTransform = (tP); 99 | 100 | //texturing 101 | Sampler[0] = (Samp); 102 | TextureTransform[0] = (tTex); 103 | TexCoordIndex[0] = 0; 104 | TextureTransformFlags[0] = COUNT2; 105 | //Wrap0 = U; // useful when mesh is round like a sphere 106 | 107 | Lighting = FALSE; 108 | 109 | //shaders 110 | VertexShader = NULL; 111 | PixelShader = NULL; 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /effects/VertexSpin.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | float fact; 16 | 17 | //texture 18 | texture Tex ; 19 | sampler Samp = sampler_state //sampler for doing the texture-lookup 20 | { 21 | Texture = (Tex); //apply a texture to the sampler 22 | MipFilter = LINEAR; //sampler states 23 | MinFilter = LINEAR; 24 | MagFilter = LINEAR; 25 | }; 26 | 27 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 28 | float4x4 tTex: TEXTUREMATRIX ; 29 | 30 | //the data structure: "vertexshader to pixelshader" 31 | //used as output data with the VS function 32 | //and as input data with the PS function 33 | struct vs2ps 34 | { 35 | float4 Pos : POSITION; 36 | float2 TexCd : TEXCOORD0; 37 | }; 38 | 39 | // -------------------------------------------------------------------------------------------------- 40 | // VERTEXSHADERS 41 | // -------------------------------------------------------------------------------------------------- 42 | vs2ps VS( 43 | float4 PosO : POSITION, 44 | float4 TexCd : TEXCOORD0) 45 | { 46 | //declare output struct 47 | vs2ps Out; 48 | 49 | //transform position 50 | float4 p = mul(PosO, tW); 51 | float dy = p.y + 0.5; 52 | float cd, sd; 53 | sincos(dy*fact, cd, sd); 54 | float4x4 mat = { 55 | cd, 0, sd, 0, 56 | 0, 1, 0, 0, 57 | -sd, 0, cd, 0, 58 | 0, 0, 0, 1 59 | }; 60 | Out.Pos = mul(mul(mul(p, mat), tV), tP); 61 | 62 | //transform texturecoordinates 63 | Out.TexCd = float2(p.x+0.5, p.y+0.5); 64 | 65 | return Out; 66 | } 67 | 68 | // -------------------------------------------------------------------------------------------------- 69 | // PIXELSHADERS: 70 | // -------------------------------------------------------------------------------------------------- 71 | 72 | float4 PS(vs2ps In): COLOR 73 | { 74 | float4 col = float4( In.TexCd.x, In.TexCd.y, 0, 1 ); 75 | return col; 76 | } 77 | 78 | // -------------------------------------------------------------------------------------------------- 79 | // TECHNIQUES: 80 | // -------------------------------------------------------------------------------------------------- 81 | 82 | technique TSimpleShader 83 | { 84 | pass P0 85 | { 86 | //Wrap0 = U; // useful when mesh is round like a sphere 87 | VertexShader = compile vs_2_0 VS(); 88 | PixelShader = compile ps_2_0 PS(); 89 | } 90 | } 91 | 92 | technique TFixedFunction 93 | { 94 | pass P0 95 | { 96 | //transforms 97 | WorldTransform[0] = (tW); 98 | ViewTransform = (tV); 99 | ProjectionTransform = (tP); 100 | 101 | //texturing 102 | Sampler[0] = (Samp); 103 | TextureTransform[0] = (tTex); 104 | TexCoordIndex[0] = 0; 105 | TextureTransformFlags[0] = COUNT2; 106 | //Wrap0 = U; // useful when mesh is round like a sphere 107 | 108 | Lighting = FALSE; 109 | 110 | //shaders 111 | VertexShader = NULL; 112 | PixelShader = NULL; 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /effects/Wave.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | 16 | //texture 17 | texture Tex ; 18 | sampler Samp = sampler_state //sampler for doing the texture-lookup 19 | { 20 | Texture = (Tex); //apply a texture to the sampler 21 | MipFilter = LINEAR; //sampler states 22 | MinFilter = LINEAR; 23 | MagFilter = LINEAR; 24 | }; 25 | //texture 26 | texture NTex ; 27 | sampler NSamp = sampler_state //sampler for doing the texture-lookup 28 | { 29 | Texture = (NTex); //apply a texture to the sampler 30 | MipFilter = LINEAR; //sampler states 31 | MinFilter = LINEAR; 32 | MagFilter = LINEAR; 33 | }; 34 | 35 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 36 | float4x4 tTex: TEXTUREMATRIX ; 37 | 38 | //the data structure: "vertexshader to pixelshader" 39 | //used as output data with the VS function 40 | //and as input data with the PS function 41 | struct vs2ps 42 | { 43 | float4 Pos : POSITION; 44 | float2 TexCd : TEXCOORD0; 45 | float4 Col : COLOR0; 46 | }; 47 | 48 | // -------------------------------------------------------------------------------------------------- 49 | // VERTEXSHADERS 50 | // -------------------------------------------------------------------------------------------------- 51 | vs2ps VS( 52 | float4 PosO : POSITION, 53 | float4 TexCd : TEXCOORD0) 54 | { 55 | //declare output struct 56 | vs2ps Out; 57 | 58 | float z = tex2Dlod(Samp, float4(PosO.xy+0.5, 0, 0)); 59 | float4 p = PosO + float4(0, 0, z*0.5, 0); 60 | Out.Pos = mul(p, tWVP); 61 | 62 | //transform texturecoordinates 63 | Out.TexCd = mul(TexCd, tTex); 64 | float4 n = normalize(tex2Dlod(NSamp, float4(PosO.xy+0.5, 0, 0))); 65 | Out.Col = dot(n, normalize(float4(10, 10, 1, 1))); 66 | Out.Col.w = 1; 67 | 68 | return Out; 69 | } 70 | 71 | // -------------------------------------------------------------------------------------------------- 72 | // PIXELSHADERS: 73 | // -------------------------------------------------------------------------------------------------- 74 | 75 | float4 PS(vs2ps In): COLOR 76 | { 77 | float4 col = In.Col; 78 | return col; 79 | } 80 | 81 | // -------------------------------------------------------------------------------------------------- 82 | // TECHNIQUES: 83 | // -------------------------------------------------------------------------------------------------- 84 | 85 | technique TSimpleShader 86 | { 87 | pass P0 88 | { 89 | //Wrap0 = U; // useful when mesh is round like a sphere 90 | VertexShader = compile vs_3_0 VS(); 91 | PixelShader = compile ps_3_0 PS(); 92 | } 93 | } 94 | 95 | technique TFixedFunction 96 | { 97 | pass P0 98 | { 99 | //transforms 100 | WorldTransform[0] = (tW); 101 | ViewTransform = (tV); 102 | ProjectionTransform = (tP); 103 | 104 | //texturing 105 | Sampler[0] = (Samp); 106 | Sampler[1] = (NSamp); 107 | TextureTransform[0] = (tTex); 108 | TexCoordIndex[0] = 0; 109 | TextureTransformFlags[0] = COUNT2; 110 | //Wrap0 = U; // useful when mesh is round like a sphere 111 | 112 | Lighting = FALSE; 113 | 114 | //shaders 115 | VertexShader = NULL; 116 | PixelShader = NULL; 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /effects/Wave2.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | 16 | //texture 17 | texture Tex ; 18 | sampler Samp = sampler_state //sampler for doing the texture-lookup 19 | { 20 | Texture = (Tex); //apply a texture to the sampler 21 | MipFilter = LINEAR; //sampler states 22 | MinFilter = LINEAR; 23 | MagFilter = LINEAR; 24 | }; 25 | 26 | //texture 27 | texture NTex ; 28 | sampler NSamp = sampler_state //sampler for doing the texture-lookup 29 | { 30 | Texture = (NTex); //apply a texture to the sampler 31 | MipFilter = LINEAR; //sampler states 32 | MinFilter = LINEAR; 33 | MagFilter = LINEAR; 34 | }; 35 | 36 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 37 | float4x4 tTex: TEXTUREMATRIX ; 38 | 39 | //the data structure: "vertexshader to pixelshader" 40 | //used as output data with the VS function 41 | //and as input data with the PS function 42 | struct vs2ps 43 | { 44 | float4 Pos : POSITION; 45 | float2 TexCd : TEXCOORD0; 46 | float4 Col : COLOR0; 47 | }; 48 | 49 | // -------------------------------------------------------------------------------------------------- 50 | // VERTEXSHADERS 51 | // -------------------------------------------------------------------------------------------------- 52 | vs2ps VS( 53 | float4 PosO : POSITION, 54 | float4 TexCd : TEXCOORD0) 55 | { 56 | //declare output struct 57 | vs2ps Out; 58 | 59 | //transform position 60 | float z = tex2Dlod(Samp, float4(PosO.xy+0.5, 0, 0)); 61 | PosO.z += z*0.7 62 | ; 63 | Out.Pos = mul(PosO, tWVP); 64 | 65 | Out.TexCd = mul(TexCd, tTex); 66 | 67 | //transform texturecoordinates 68 | float n = normalize(tex2Dlod(NSamp, float4(PosO.xy+0.5, 0, 0))); 69 | float q = dot(n, normalize(float4(10, 10, 5, 1))); 70 | Out.Col = float4(q,q,q,1); 71 | 72 | return Out; 73 | } 74 | 75 | // -------------------------------------------------------------------------------------------------- 76 | // PIXELSHADERS: 77 | // -------------------------------------------------------------------------------------------------- 78 | 79 | float4 PS(vs2ps In): COLOR 80 | { 81 | float4 col = In.Col; 82 | return col; 83 | } 84 | 85 | // -------------------------------------------------------------------------------------------------- 86 | // TECHNIQUES: 87 | // -------------------------------------------------------------------------------------------------- 88 | 89 | technique TSimpleShader 90 | { 91 | pass P0 92 | { 93 | //Wrap0 = U; // useful when mesh is round like a sphere 94 | VertexShader = compile vs_3_0 VS(); 95 | PixelShader = compile ps_2_0 PS(); 96 | }o 97 | } 98 | 99 | technique TFixedFunction 100 | { 101 | pass P0 102 | { 103 | //transforms 104 | WorldTransform[0] = (tW); 105 | ViewTransform = (tV); 106 | ProjectionTransform = (tP); 107 | 108 | //texturing 109 | Sampler[0] = (Samp); 110 | TextureTransform[0] = (tTex); 111 | TexCoordIndex[0] = 0; 112 | TextureTransformFlags[0] = COUNT2; 113 | //Wrap0 = U; // useful when mesh is round like a sphere 114 | 115 | Lighting = FALSE; 116 | 117 | //shaders 118 | VertexShader = NULL; 119 | PixelShader = NULL; 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /effects/shift.fx: -------------------------------------------------------------------------------- 1 | //@author: vvvv group 2 | //@help: this is a very basic template. use it to start writing your own effects. if you want effects with lighting start from one of the GouraudXXXX or PhongXXXX effects 3 | //@tags: 4 | //@credits: 5 | 6 | // -------------------------------------------------------------------------------------------------- 7 | // PARAMETERS: 8 | // -------------------------------------------------------------------------------------------------- 9 | 10 | //transforms 11 | float4x4 tW: WORLD; //the models world matrix 12 | float4x4 tV: VIEW; //view matrix as set via Renderer (EX9) 13 | float4x4 tP: PROJECTION; 14 | float4x4 tWVP: WORLDVIEWPROJECTION; 15 | 16 | //texture 17 | texture Tex ; 18 | sampler Samp = sampler_state //sampler for doing the texture-lookup 19 | { 20 | Texture = (Tex); //apply a texture to the sampler 21 | MipFilter = LINEAR; //sampler states 22 | MinFilter = LINEAR; 23 | MagFilter = LINEAR; 24 | }; 25 | texture Control ; 26 | sampler CSamp = sampler_state //sampler for doing the texture-lookup 27 | { 28 | Texture = (Control); //apply a texture to the sampler 29 | MipFilter = LINEAR; //sampler states 30 | MinFilter = LINEAR; 31 | MagFilter = LINEAR; 32 | }; 33 | 34 | //texture transformation marked with semantic TEXTUREMATRIX to achieve symmetric transformations 35 | float4x4 tTex: TEXTUREMATRIX ; 36 | 37 | float power = 1; 38 | 39 | //the data structure: "vertexshader to pixelshader" 40 | //used as output data with the VS function 41 | //and as input data with the PS function 42 | struct vs2ps 43 | { 44 | float4 Pos : POSITION; 45 | float2 TexCd : TEXCOORD0; 46 | }; 47 | 48 | // -------------------------------------------------------------------------------------------------- 49 | // VERTEXSHADERS 50 | // -------------------------------------------------------------------------------------------------- 51 | vs2ps VS( 52 | float4 PosO : POSITION, 53 | float4 TexCd : TEXCOORD0) 54 | { 55 | //declare output struct 56 | vs2ps Out; 57 | 58 | //transform position 59 | Out.Pos = mul(PosO, tWVP); 60 | 61 | //transform texturecoordinates 62 | Out.TexCd = mul(TexCd, tTex); 63 | 64 | return Out; 65 | } 66 | 67 | // -------------------------------------------------------------------------------------------------- 68 | // PIXELSHADERS: 69 | // -------------------------------------------------------------------------------------------------- 70 | 71 | float4 PS(vs2ps In): COLOR 72 | { 73 | float4 ct = tex2D(CSamp, In.TexCd); 74 | float2 uv = In.TexCd + (ct.rg-float2(0.5, 0.5)) * power; 75 | float4 col = tex2D(Samp, uv); 76 | return col; 77 | } 78 | 79 | // -------------------------------------------------------------------------------------------------- 80 | // TECHNIQUES: 81 | // -------------------------------------------------------------------------------------------------- 82 | 83 | technique TSimpleShader 84 | { 85 | pass P0 86 | { 87 | //Wrap0 = U; // useful when mesh is round like a sphere 88 | VertexShader = compile vs_2_0 VS(); 89 | PixelShader = compile ps_2_0 PS(); 90 | } 91 | } 92 | 93 | technique TFixedFunction 94 | { 95 | pass P0 96 | { 97 | //transforms 98 | WorldTransform[0] = (tW); 99 | ViewTransform = (tV); 100 | ProjectionTransform = (tP); 101 | 102 | //texturing 103 | Sampler[0] = (Samp); 104 | TextureTransform[0] = (tTex); 105 | TexCoordIndex[0] = 0; 106 | TextureTransformFlags[0] = COUNT2; 107 | //Wrap0 = U; // useful when mesh is round like a sphere 108 | 109 | Lighting = FALSE; 110 | 111 | //shaders 112 | VertexShader = NULL; 113 | PixelShader = NULL; 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /lunar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/lunar.png -------------------------------------------------------------------------------- /midi_keyboard.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /move_window/plugins/WindowMoveWindow/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #region Using directives 2 | 3 | using System; 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | #endregion 8 | 9 | // General Information about an assembly is controlled through the following 10 | // set of attributes. Change these attribute values to modify the information 11 | // associated with an assembly. 12 | [assembly: AssemblyTitle("DemoPlugin")] 13 | [assembly: AssemblyDescription("")] 14 | [assembly: AssemblyConfiguration("")] 15 | [assembly: AssemblyCompany("")] 16 | [assembly: AssemblyProduct("DemoPlugin")] 17 | [assembly: AssemblyCopyright("Copyright 2010")] 18 | [assembly: AssemblyTrademark("")] 19 | [assembly: AssemblyCulture("")] 20 | 21 | // This sets the default COM visibility of types in the assembly to invisible. 22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type. 23 | [assembly: ComVisible(false)] 24 | 25 | // The assembly version has following format : 26 | // 27 | // Major.Minor.Build.Revision 28 | // 29 | // You can specify all the values or you can use the default the Revision and 30 | // Build Numbers by using the '*' as shown below: 31 | [assembly: AssemblyVersion("1.0.*")] 32 | -------------------------------------------------------------------------------- /move_window/plugins/WindowMoveWindow/WindowMoveWindow.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16} 5 | Debug 6 | x86 7 | Library 8 | VVVV.Nodes 9 | WindowMoveWindow 10 | v4.0 11 | bin\$(Platform)\$(Configuration)\ 12 | True 13 | ..\..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\core\;..\..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\nodes\plugins\ 14 | 15 | 16 | DEBUG;TRACE 17 | False 18 | True 19 | Full 20 | True 21 | 22 | 23 | TRACE 24 | True 25 | False 26 | None 27 | False 28 | 29 | 30 | AnyCPU 31 | 32 | 33 | x86 34 | 35 | 36 | x64 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /move_window/plugins/WindowMoveWindow/WindowMoveWindowNode.cs: -------------------------------------------------------------------------------- 1 | #region usings 2 | using System; 3 | using System.ComponentModel.Composition; 4 | using System.Runtime.InteropServices; 5 | 6 | using VVVV.PluginInterfaces.V1; 7 | using VVVV.PluginInterfaces.V2; 8 | using VVVV.Utils.VColor; 9 | using VVVV.Utils.VMath; 10 | 11 | using VVVV.Core.Logging; 12 | #endregion usings 13 | 14 | namespace VVVV.Nodes 15 | { 16 | #region PluginInfo 17 | [PluginInfo(Name = "MoveWindow", Category = "Window", Help = "Basic template with one value in/out", Tags = "")] 18 | #endregion PluginInfo 19 | 20 | public class WindowMoveWindowNode : IPluginEvaluate 21 | { 22 | #region fields & pins 23 | [Input("Handle", DefaultValue = 0)] 24 | public ISpread FHandle; 25 | [Input("Location", DefaultValue = 0)] 26 | public ISpread FLocation; 27 | [Input("Size", DefaultValue = 0)] 28 | public ISpread FSize; 29 | 30 | [Output("Pos")] 31 | public ISpread FOut; 32 | 33 | [Import()] 34 | public ILogger FLogger; 35 | #endregion fields & pins 36 | 37 | [DllImport("User32.dll")] 38 | static extern int MoveWindow( 39 | IntPtr hWnd, 40 | int x, 41 | int y, 42 | int nWidth, 43 | int nHeight, 44 | int bRepaint 45 | ); 46 | 47 | 48 | //called when data for any output pin is requested 49 | public void Evaluate(int SpreadMax) 50 | { 51 | int n = FHandle.SliceCount; 52 | FOut.SliceCount = n; 53 | for (int i=0; i < n; ++i) 54 | { 55 | IntPtr handle = (IntPtr)FHandle[i]; 56 | Vector2D p = FLocation[i%FLocation.SliceCount]; 57 | Vector2D s = FSize[i%FSize.SliceCount]; 58 | MoveWindow(handle, (int)p.x, (int)p.y, (int)s.x, (int)s.y, 0); 59 | 60 | FOut[i] = p; 61 | } 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /move_window/plugins/WindowMoveWindow/bin/Dynamic/-636783787._dynamic_.1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/move_window/plugins/WindowMoveWindow/bin/Dynamic/-636783787._dynamic_.1.dll -------------------------------------------------------------------------------- /move_window/plugins/WindowMoveWindow/bin/Dynamic/-636783787._dynamic_.2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/move_window/plugins/WindowMoveWindow/bin/Dynamic/-636783787._dynamic_.2.dll -------------------------------------------------------------------------------- /move_window/plugins/WindowMoveWindow/bin/Dynamic/-636783787._dynamic_.3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/move_window/plugins/WindowMoveWindow/bin/Dynamic/-636783787._dynamic_.3.dll -------------------------------------------------------------------------------- /move_window/plugins/WindowMoveWindow/bin/Dynamic/-636783787._dynamic_.4.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/move_window/plugins/WindowMoveWindow/bin/Dynamic/-636783787._dynamic_.4.dll -------------------------------------------------------------------------------- /move_window/plugins/WindowMoveWindow/bin/Dynamic/1552615683._dynamic_.9.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/move_window/plugins/WindowMoveWindow/bin/Dynamic/1552615683._dynamic_.9.dll -------------------------------------------------------------------------------- /plugins/1TobiiTobii/1TobiiTobii.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16} 5 | Debug 6 | x86 7 | Library 8 | VVVV.Nodes 9 | 1TobiiTobii 10 | v4.0 11 | bin\$(Platform)\$(Configuration)\ 12 | True 13 | ..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\core\;..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\nodes\plugins\ 14 | 15 | 16 | DEBUG;TRACE 17 | False 18 | True 19 | Full 20 | True 21 | 22 | 23 | TRACE 24 | True 25 | False 26 | None 27 | False 28 | 29 | 30 | AnyCPU 31 | 32 | 33 | x86 34 | 35 | 36 | x64 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /plugins/1TobiiTobii/C1TobiiTobiiNode.cs: -------------------------------------------------------------------------------- 1 | #region usings 2 | using System; 3 | using System.ComponentModel.Composition; 4 | 5 | using VVVV.PluginInterfaces.V1; 6 | using VVVV.PluginInterfaces.V2; 7 | using VVVV.Utils.VColor; 8 | using VVVV.Utils.VMath; 9 | 10 | using VVVV.Core.Logging; 11 | #endregion usings 12 | 13 | namespace VVVV.Nodes 14 | { 15 | #region PluginInfo 16 | [PluginInfo(Name = "Tobii", Category = "Tobii", Version = "1", Help = "Basic template with one value in/out", Tags = "")] 17 | #endregion PluginInfo 18 | public class C1TobiiTobiiNode : IPluginEvaluate 19 | { 20 | #region fields & pins 21 | [Input("Input", DefaultValue = 1.0)] 22 | public ISpread FInput; 23 | 24 | [Output("Output")] 25 | public ISpread FOutput; 26 | 27 | [Import()] 28 | public ILogger FLogger; 29 | #endregion fields & pins 30 | 31 | //called when data for any output pin is requested 32 | public void Evaluate(int SpreadMax) 33 | { 34 | FOutput.SliceCount = SpreadMax; 35 | 36 | for (int i = 0; i < SpreadMax; i++) 37 | FOutput[i] = FInput[i] * 2; 38 | 39 | //FLogger.Log(LogType.Debug, "hi tty!"); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /plugins/1TobiiTobii/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #region Using directives 2 | 3 | using System; 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | #endregion 8 | 9 | // General Information about an assembly is controlled through the following 10 | // set of attributes. Change these attribute values to modify the information 11 | // associated with an assembly. 12 | [assembly: AssemblyTitle("DemoPlugin")] 13 | [assembly: AssemblyDescription("")] 14 | [assembly: AssemblyConfiguration("")] 15 | [assembly: AssemblyCompany("")] 16 | [assembly: AssemblyProduct("DemoPlugin")] 17 | [assembly: AssemblyCopyright("Copyright 2010")] 18 | [assembly: AssemblyTrademark("")] 19 | [assembly: AssemblyCulture("")] 20 | 21 | // This sets the default COM visibility of types in the assembly to invisible. 22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type. 23 | [assembly: ComVisible(false)] 24 | 25 | // The assembly version has following format : 26 | // 27 | // Major.Minor.Build.Revision 28 | // 29 | // You can specify all the values or you can use the default the Revision and 30 | // Build Numbers by using the '*' as shown below: 31 | [assembly: AssemblyVersion("1.0.*")] 32 | -------------------------------------------------------------------------------- /plugins/1TobiiTobii/bin/Dynamic/2142191625._dynamic_.1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/1TobiiTobii/bin/Dynamic/2142191625._dynamic_.1.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/DevicesTobiiEyeX.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16} 5 | Debug 6 | x86 7 | Library 8 | VVVV.Nodes 9 | DevicesTobiiEyeX 10 | v4.5 11 | bin\$(Platform)\$(Configuration)\ 12 | True 13 | ..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\core\;..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\nodes\plugins\ 14 | 15 | 16 | 17 | DEBUG;TRACE 18 | False 19 | True 20 | Full 21 | True 22 | 23 | 24 | TRACE 25 | True 26 | False 27 | None 28 | False 29 | 30 | 31 | AnyCPU 32 | 33 | 34 | x86 35 | 36 | 37 | x64 38 | 39 | 40 | false 41 | 42 | 43 | false 44 | 45 | 46 | false 47 | 48 | 49 | false 50 | 51 | 52 | false 53 | 54 | 55 | false 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | False 65 | ..\..\..\sdk\TobiiEyeXSdk-DotNet-1.3.443\lib\x86\Tobii.EyeX.Client.Net20.dll 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | {c9bbfbac-fd0f-46de-843f-f3620bf79dc2} 83 | EyeXFramework 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/DevicesTobiiEyeX.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2012 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevicesTobiiEyeX", "DevicesTobiiEyeX.csproj", "{6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EyeXFramework", "..\..\..\sdk\TobiiEyeXSdk-DotNet-1.3.443\source\EyeXFramework\EyeXFramework.csproj", "{C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Debug|x64.ActiveCfg = Debug|x64 21 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Debug|x64.Build.0 = Debug|x64 22 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Debug|x86.ActiveCfg = Debug|x86 23 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Debug|x86.Build.0 = Debug|x86 24 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Release|x64.ActiveCfg = Release|x64 27 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Release|x64.Build.0 = Release|x64 28 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Release|x86.ActiveCfg = Release|x86 29 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16}.Release|x86.Build.0 = Release|x86 30 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 31 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Debug|Any CPU.Build.0 = Debug|Any CPU 32 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Debug|x64.ActiveCfg = Debug|Any CPU 33 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Debug|x86.ActiveCfg = Debug|x86 34 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Debug|x86.Build.0 = Debug|x86 35 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Release|Any CPU.ActiveCfg = Release|Any CPU 36 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Release|Any CPU.Build.0 = Release|Any CPU 37 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Release|x64.ActiveCfg = Release|Any CPU 38 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Release|x86.ActiveCfg = Release|x86 39 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2}.Release|x86.Build.0 = Release|x86 40 | EndGlobalSection 41 | GlobalSection(SolutionProperties) = preSolution 42 | HideSolutionNode = FALSE 43 | EndGlobalSection 44 | EndGlobal 45 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/DevicesTobiiEyeX.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/DevicesTobiiEyeX.suo -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/DevicesTobiiEyeX.v11.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/DevicesTobiiEyeX.v11.suo -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/DevicesTobiiEyeXNode.cs: -------------------------------------------------------------------------------- 1 | #region usings 2 | using System; 3 | using System.ComponentModel.Composition; 4 | 5 | using VVVV.PluginInterfaces.V1; 6 | using VVVV.PluginInterfaces.V2; 7 | using VVVV.Utils.VColor; 8 | using VVVV.Utils.VMath; 9 | 10 | using VVVV.Core.Logging; 11 | 12 | using EyeXFramework; 13 | using Tobii.EyeX.Framework; 14 | 15 | #endregion usings 16 | namespace VVVV.Nodes 17 | { 18 | #region PluginInfo 19 | [PluginInfo(Name = "TobiiEyeX", Category = "Devices", Help = "Basic template with one value in/out", Tags = "")] 20 | #endregion PluginInfo 21 | public class DevicesTobiiEyeXNode : IPluginEvaluate 22 | { 23 | #region fields & pins 24 | [Input("Input", DefaultValue = 1.0)] 25 | public ISpread FInput; 26 | 27 | [Output("Output")] 28 | public ISpread FOutput; 29 | 30 | [Import()] 31 | public ILogger FLogger; 32 | 33 | bool setuped_ = false; 34 | EyeXHost host_; 35 | GazePointDataStream stream_; 36 | 37 | #endregion fields & pins 38 | 39 | double gazeX_, gazeY_; 40 | 41 | private void setup() 42 | { 43 | host_ = new EyeXHost(); 44 | { 45 | stream_ = host_.CreateGazePointDataStream(GazePointDataMode.LightlyFiltered); 46 | { 47 | host_.Start(); 48 | 49 | stream_.Next += (s, e) => { 50 | gazeX_ = e.X; 51 | gazeY_ = e.Y; 52 | }; 53 | } 54 | } 55 | } 56 | 57 | //called when data for any output pin is requested 58 | public void Evaluate(int SpreadMax) 59 | { 60 | if (setuped_ == false) 61 | { 62 | setuped_ = true; 63 | setup(); 64 | } 65 | 66 | FOutput.SliceCount = 2; 67 | 68 | FOutput[0] = gazeX_; 69 | FOutput[1] = gazeY_; 70 | 71 | //FLogger.Log(LogType.Debug, "hi tty!"); 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/DataStreamBase.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Diagnostics.CodeAnalysis; 10 | using Tobii.EyeX.Client; 11 | using Tobii.EyeX.Framework; 12 | 13 | /// 14 | /// Abstract base class for data stream observers. 15 | /// Observes a data stream and raises events when new data points become available. 16 | /// 17 | /// Data type of the events. 18 | [SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1201:ElementsMustAppearInTheCorrectOrder", Justification = "Keep interface implementation together.")] 19 | [SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1202:ElementsMustBeOrderedByAccess", Justification = "Keep interface implementation together.")] 20 | public abstract class DataStreamBase : IDisposable, IDataStreamObserver where T : EventArgs 21 | { 22 | private readonly string _id; 23 | private EventHandler _disposedEvent; 24 | 25 | /// 26 | /// Initializes a new instance of the class. 27 | /// 28 | protected DataStreamBase() 29 | { 30 | _id = InteractorIDGenerator.CreateUniqueID(); 31 | } 32 | 33 | /// 34 | /// Event raised when a data point is available. 35 | /// 36 | public event EventHandler Next; 37 | 38 | /// 39 | /// Cleans up any resources being used. 40 | /// 41 | public void Dispose() 42 | { 43 | Dispose(true); 44 | GC.SuppressFinalize(this); 45 | } 46 | 47 | /// 48 | /// Cleans up any resources being used. 49 | /// 50 | /// Indicates whether managed resources should be disposed. 51 | protected virtual void Dispose(bool disposing) 52 | { 53 | if (disposing) 54 | { 55 | Next = null; 56 | 57 | var handler = _disposedEvent; 58 | if (handler != null) 59 | { 60 | handler(this, EventArgs.Empty); 61 | } 62 | } 63 | } 64 | 65 | /// 66 | /// Assigns the behavior corresponding to the data stream type to an interactor. 67 | /// 68 | /// The global interactor to add the data stream behavior to. 69 | protected abstract void AssignBehavior(Interactor interactor); 70 | 71 | /// 72 | /// Extracts data points from an event from the EyeX Engine. 73 | /// 74 | /// The instances containing the event data. 75 | /// The collection of data points. 76 | protected abstract IEnumerable ExtractDataPoints(IEnumerable behaviors); 77 | 78 | #region Explicit implementation of the IDataStreamObserver interface 79 | 80 | /// 81 | /// Explicit implementation of . 82 | /// 83 | event EventHandler IDataStreamObserver.Disposed 84 | { 85 | add { _disposedEvent += value; } 86 | remove { _disposedEvent -= value; } 87 | } 88 | 89 | /// 90 | /// Gets the . 91 | /// 92 | string IDataStreamObserver.Id 93 | { 94 | get { return _id; } 95 | } 96 | 97 | /// 98 | /// Explicit implementation of . 99 | /// 100 | /// Snapshot to add the interactor to. 101 | void IDataStreamObserver.CreateInteractor(Snapshot snapshot) 102 | { 103 | using (var interactor = snapshot.CreateInteractor(_id, Literals.RootId, Literals.GlobalInteractorWindowId)) 104 | { 105 | var bounds = interactor.CreateBounds(BoundsType.None); 106 | bounds.Dispose(); 107 | 108 | AssignBehavior(interactor); 109 | } 110 | } 111 | 112 | /// 113 | /// Explicit implementation of . 114 | /// 115 | /// Object associated with the interactor. 116 | /// Event to be handled. 117 | [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Justification = "Event is a reserved word.")] 118 | void IDataStreamObserver.HandleEvent(InteractionEvent event_) 119 | { 120 | var handler = Next; 121 | if (handler != null) 122 | { 123 | var eventBehaviors = event_.Behaviors; 124 | 125 | foreach (var eventArgs in ExtractDataPoints(eventBehaviors)) 126 | { 127 | handler(this, eventArgs); 128 | } 129 | 130 | foreach (var eventBehavior in eventBehaviors) 131 | { 132 | eventBehavior.Dispose(); 133 | } 134 | } 135 | } 136 | 137 | #endregion 138 | } 139 | } 140 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/EngineStateAccessor.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | using Tobii.EyeX.Framework; 6 | 7 | namespace EyeXFramework 8 | { 9 | using System; 10 | using Tobii.EyeX.Client; 11 | 12 | /// 13 | /// Accesses and monitors engine states. 14 | /// Used by the EyeXHost. 15 | /// 16 | /// Data type of the engine state. 17 | internal class EngineStateAccessor 18 | { 19 | private readonly string _statePath; 20 | private readonly AsyncDataHandler _handler; 21 | private EngineStateValue _currentValue = EngineStateValue.Invalid; 22 | 23 | /// 24 | /// Initializes a new instance of the class. 25 | /// 26 | /// The state path. 27 | public EngineStateAccessor(string statePath) 28 | { 29 | _statePath = statePath; 30 | _handler = OnStateChanged; 31 | } 32 | 33 | /// 34 | /// Event raised when the associated engine state value has changed. 35 | /// 36 | public event EventHandler> Changed; 37 | 38 | /// 39 | /// Gets the current value of the engine state. 40 | /// 41 | /// The state value. 42 | public EngineStateValue GetCurrentValue() 43 | { 44 | return _currentValue; 45 | } 46 | 47 | /// 48 | /// Method to be invoked when the interaction context has been created. 49 | /// 50 | /// The interaction context. 51 | public void OnContextCreated(Context context) 52 | { 53 | context.RegisterStateChangedHandler(_statePath, _handler); 54 | } 55 | 56 | /// 57 | /// Method to be invoked when a connection to the EyeX Engine has been established. 58 | /// 59 | /// The interaction context. 60 | public void OnConnected(Context context) 61 | { 62 | context.GetStateAsync(_statePath, _handler); 63 | } 64 | 65 | /// 66 | /// Method to be invoked when the connection to the EyeX Engine has been lost. 67 | /// 68 | public void OnDisconnected() 69 | { 70 | SetCurrentValue(EngineStateValue.Invalid); 71 | } 72 | 73 | private void OnStateChanged(AsyncData data) 74 | { 75 | using (data) 76 | { 77 | ResultCode resultCode; 78 | if (!data.TryGetResultCode(out resultCode) || resultCode != ResultCode.Ok) 79 | { 80 | return; 81 | } 82 | 83 | using (var stateBag = data.GetDataAs()) 84 | { 85 | T value; 86 | if (stateBag.TryGetStateValue(out value, _statePath)) 87 | { 88 | SetCurrentValue(new EngineStateValue(value)); 89 | } 90 | } 91 | } 92 | } 93 | 94 | private void SetCurrentValue(EngineStateValue value) 95 | { 96 | _currentValue = value; 97 | 98 | var handler = Changed; 99 | if (handler != null) 100 | { 101 | handler(this, value); 102 | } 103 | } 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/EngineStateValue.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework 6 | { 7 | using System; 8 | using System.Diagnostics.CodeAnalysis; 9 | using System.Globalization; 10 | using Tobii.EyeX.Client; 11 | 12 | /// 13 | /// Holds an engine state value and a flag indicating the validity of the value. 14 | /// 15 | /// Data type of the engine state. 16 | [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "Type is used both as a property value and event data.")] 17 | public sealed class EngineStateValue : EventArgs 18 | { 19 | /// 20 | /// Initializes a new instance of the class. 21 | /// 22 | /// The state handler. 23 | public EngineStateValue(T value) 24 | { 25 | Value = value; 26 | IsValid = true; 27 | } 28 | 29 | private EngineStateValue() 30 | { 31 | // Will result in a value where IsValid is false 32 | } 33 | 34 | /// 35 | /// Gets a value representing an invalid state value. 36 | /// 37 | [SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Justification = "Mainly for internal use.")] 38 | public static EngineStateValue Invalid 39 | { 40 | get 41 | { 42 | return new EngineStateValue(); 43 | } 44 | } 45 | 46 | /// 47 | /// Gets the state value. 48 | /// 49 | public T Value { get; private set; } 50 | 51 | /// 52 | /// Gets a value indicating whether the state value is valid. 53 | /// The state will always be unknown when disconnected from the EyeX Engine. 54 | /// 55 | public bool IsValid { get; private set; } 56 | 57 | /// 58 | /// Returns a string that represents the current object. 59 | /// 60 | /// A string that represents the current object. 61 | public override string ToString() 62 | { 63 | if (IsValid) 64 | { 65 | if (typeof(T) == typeof(Size2)) 66 | { 67 | var value = (Size2)((object)Value); 68 | return string.Format(CultureInfo.InvariantCulture, "{0:0.0} x {1:0.0}", value.Width, value.Height); 69 | } 70 | 71 | if (typeof(T) == typeof(Rect)) 72 | { 73 | var value = (Rect)((object)Value); 74 | return string.Format(CultureInfo.InvariantCulture, "({0}, {1}), {2} x {3}", value.X, value.Y, value.Width, value.Height); 75 | } 76 | 77 | return Value.ToString(); 78 | } 79 | else 80 | { 81 | return "INVALID"; 82 | } 83 | } 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/EyeXFramework.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {C9BBFBAC-FD0F-46DE-843F-F3620BF79DC2} 8 | Library 9 | Properties 10 | EyeXFramework 11 | EyeXFramework 12 | v4.5 13 | 512 14 | 15 | 16 | 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | TRACE;DEBUG;CODE_ANALYSIS 22 | prompt 23 | 4 24 | false 25 | 26 | 27 | pdbonly 28 | true 29 | bin\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | false 34 | 35 | 36 | true 37 | bin\x86\Debug\ 38 | TRACE;DEBUG;CODE_ANALYSIS 39 | full 40 | x86 41 | prompt 42 | MinimumRecommendedRules.ruleset 43 | 44 | 45 | bin\x86\Release\ 46 | TRACE 47 | true 48 | pdbonly 49 | x86 50 | prompt 51 | MinimumRecommendedRules.ruleset 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | ..\..\lib\x86\Tobii.EyeX.Client.Net20.dll 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | True 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 105 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/EyeXHost.Tools.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | using System; 6 | 7 | namespace EyeXFramework 8 | { 9 | using Tobii.EyeX.Framework; 10 | 11 | public partial class EyeXHost 12 | { 13 | /// 14 | /// Starts the recalibration tool. 15 | /// 16 | public void LaunchRecalibration() 17 | { 18 | EnsureStarted(); 19 | _context.LaunchConfigurationTool(ConfigurationTool.Recalibrate, data => { }); 20 | } 21 | 22 | /// 23 | /// Starts the guest calibration tool. 24 | /// 25 | public void LaunchGuestCalibration() 26 | { 27 | EnsureStarted(); 28 | _context.LaunchConfigurationTool(ConfigurationTool.GuestCalibration, data => { }); 29 | } 30 | 31 | /// 32 | /// Starts the calibration testing tool. 33 | /// 34 | public void LaunchCalibrationTesting() 35 | { 36 | EnsureStarted(); 37 | _context.LaunchConfigurationTool(ConfigurationTool.TestEyeTracking, data => { }); 38 | } 39 | 40 | /// 41 | /// Starts the display setup tool. 42 | /// 43 | public void LaunchDisplaySetup() 44 | { 45 | EnsureStarted(); 46 | _context.LaunchConfigurationTool(ConfigurationTool.SetupDisplay, data => { }); 47 | } 48 | 49 | /// 50 | /// Starts the profile creation tool. 51 | /// 52 | public void LaunchProfileCreation() 53 | { 54 | EnsureStarted(); 55 | _context.LaunchConfigurationTool(ConfigurationTool.CreateNewProfile, data => { }); 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/FixationDataStream.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Diagnostics.CodeAnalysis; 10 | using System.Linq; 11 | using Tobii.EyeX.Client; 12 | using Tobii.EyeX.Framework; 13 | 14 | /// 15 | /// Provides a stream of fixation data. 16 | /// See . 17 | /// 18 | [SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Justification = "Suffix is DataStream, not just Stream. Low risk for confusion.")] 19 | public sealed class FixationDataStream : DataStreamBase 20 | { 21 | /// 22 | /// Initializes a new instance of the class. 23 | /// 24 | /// Specifies the kind of fixation detection to be used. 25 | public FixationDataStream(FixationDataMode mode) 26 | { 27 | Mode = mode; 28 | } 29 | 30 | /// 31 | /// Gets the kind of fixation detection used. 32 | /// 33 | public FixationDataMode Mode { get; private set; } 34 | 35 | /// 36 | /// Assigns the behavior corresponding to the data stream type to an interactor. 37 | /// 38 | /// The global interactor to add the data stream behavior to. 39 | protected override void AssignBehavior(Interactor interactor) 40 | { 41 | var parameters = new FixationDataParams { FixationDataMode = Mode }; 42 | interactor.CreateFixationDataBehavior(ref parameters); 43 | } 44 | 45 | /// 46 | /// Extracts data points from an event from the EyeX Engine. 47 | /// 48 | /// The instances containing the event data. 49 | /// The collection of data points. 50 | protected override IEnumerable ExtractDataPoints(IEnumerable behaviors) 51 | { 52 | foreach (var behavior in behaviors 53 | .Where(behavior => behavior.BehaviorType == BehaviorType.FixationData)) 54 | { 55 | FixationDataEventParams parameters; 56 | if (behavior.TryGetFixationDataEventParams(out parameters) && 57 | parameters.FixationDataMode == Mode) 58 | { 59 | yield return new FixationEventArgs(parameters.EventType, parameters.X, parameters.Y, parameters.Timestamp); 60 | } 61 | } 62 | } 63 | } 64 | 65 | /// 66 | /// Provides event data for the fixation data stream. 67 | /// 68 | [SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1402:FileMayOnlyContainASingleClass", Justification = "Belongs here.")] 69 | public sealed class FixationEventArgs : EventArgs 70 | { 71 | /// 72 | /// Initializes a new instance of the class. 73 | /// 74 | /// Specifies the kind of fixation event that occurred. 75 | /// X coordinate of the gaze point in physical pixels. 76 | /// Y coordinate of the gaze point in physical pixels. 77 | /// Timestamp in milliseconds. 78 | public FixationEventArgs(FixationDataEventType eventType, double x, double y, double timestamp) 79 | { 80 | EventType = eventType; 81 | X = x; 82 | Y = y; 83 | Timestamp = timestamp; 84 | } 85 | 86 | /// 87 | /// Gets the kind of fixation event that occurred. 88 | /// The sequence is: Begin, [Data, ...], End. 89 | /// 90 | public FixationDataEventType EventType { get; private set; } 91 | 92 | /// 93 | /// Gets the X coordinate of the gaze point in physical pixels. 94 | /// 95 | public double X { get; private set; } 96 | 97 | /// 98 | /// Gets the Y coordinate of the gaze point in physical pixels. 99 | /// 100 | public double Y { get; private set; } 101 | 102 | /// 103 | /// Gets the timestamp in milliseconds. 104 | /// 105 | public double Timestamp { get; private set; } 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/Forms/DpiAwarenessUtilities.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework.Forms 6 | { 7 | using System; 8 | using System.Runtime.InteropServices; 9 | 10 | /// 11 | /// Provides utility functions for DPI awareness. 12 | /// 13 | public static class DpiAwarenessUtilities 14 | { 15 | /// 16 | /// Marks the running process as being DPI aware. 17 | /// 18 | public static void SetProcessDpiAware() 19 | { 20 | if (Environment.OSVersion.Platform == PlatformID.Win32NT && 21 | Environment.OSVersion.Version.Major >= 6) // meaning Vista or later 22 | { 23 | // Disable automatic DPI scaling. 24 | // DPI scaling breaks the mapping between client coordinates and screen coordinates. 25 | NativeMethods.SetProcessDPIAware(); 26 | } 27 | } 28 | 29 | private static class NativeMethods 30 | { 31 | [DllImport("user32")] 32 | [return: MarshalAs(UnmanagedType.Bool)] 33 | public static extern bool SetProcessDPIAware(); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/Forms/FormsCrawler.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework.Forms 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Drawing; 10 | using System.Linq; 11 | using System.Windows.Forms; 12 | using Tobii.EyeX.Framework; 13 | 14 | /// 15 | /// Helper class for traversing Windows Forms control trees. 16 | /// 17 | public static class FormsCrawler 18 | { 19 | /// 20 | /// Updates the ParentId, Z, and WindowId properties of all interactors. 21 | /// 22 | /// Behavior maps providing the interactors. 23 | public static void UpdateInteractorProperties(IEnumerable behaviorMaps) 24 | { 25 | foreach (var behaviorsByForm in behaviorMaps 26 | .ToLookup(map => GetForm(map))) 27 | { 28 | var form = behaviorsByForm.Key; 29 | if (form == null) 30 | { 31 | continue; 32 | } 33 | 34 | var windowId = form.Handle.ToString(); 35 | 36 | try 37 | { 38 | var interactorDictionary = behaviorsByForm 39 | .SelectMany(map => map.Interactors) 40 | .ToDictionary(x => x.Control); 41 | 42 | int z = 0; 43 | UpdateInteractorProperties(behaviorsByForm.Key, Literals.RootId, ref z, windowId, interactorDictionary); 44 | } 45 | catch (ArgumentException) // thrown by the ToDictionary operation 46 | { 47 | throw new InvalidOperationException("A control is referenced by more than one interactor."); 48 | } 49 | } 50 | } 51 | 52 | /// 53 | /// Gets the set of interactors within a given query rectangle. 54 | /// 55 | /// Behavior maps providing the interactors. 56 | /// Query rectangle in screen coordinates. 57 | /// Window ID's from the query. 58 | /// The interactors. 59 | public static IEnumerable GetInteractors(IEnumerable behaviorMaps, Rectangle queryRect, IEnumerable queryWindowIds) 60 | { 61 | var windowIdArray = queryWindowIds.ToArray(); // avoid multiple traversals of the enumeration 62 | 63 | foreach (var behaviorsByForm in behaviorMaps 64 | .ToLookup(map => GetForm(map))) 65 | { 66 | var form = behaviorsByForm.Key; 67 | if (form == null) 68 | { 69 | continue; 70 | } 71 | 72 | var windowId = form.Handle.ToString(); 73 | if (!windowIdArray.Contains(windowId)) 74 | { 75 | continue; 76 | } 77 | 78 | // Find all interactors intersecting the query rectangle. 79 | // Since controls cannot extend outside the bounds of their parent controls/forms 80 | // in Windows Forms, we know that this operation will find all parent interactors 81 | // as well. 82 | foreach (var interactor in behaviorsByForm 83 | .SelectMany(map => map.GetIntersectingInteractors(queryRect))) 84 | { 85 | yield return interactor; 86 | } 87 | } 88 | } 89 | 90 | private static Form GetForm(BehaviorMap behaviorMap) 91 | { 92 | return behaviorMap.Interactors 93 | .Select(interactor => interactor.Control.FindForm()) 94 | .Distinct() 95 | .SingleOrDefault(); 96 | } 97 | 98 | private static void UpdateInteractorProperties(Control control, string parentId, ref int z, string windowId, IDictionary interactors) 99 | { 100 | FormsInteractor interactor; 101 | if (interactors.TryGetValue(control, out interactor)) 102 | { 103 | interactor.ParentId = parentId; 104 | interactor.Z = z++; 105 | interactor.WindowId = windowId; 106 | 107 | foreach (var childControl in control.Controls 108 | .Cast() 109 | .Reverse()) // reverse, because the Controls collection is ordered front-to-back, whereas z order goes back-to-front. 110 | { 111 | int childZ = 0; 112 | UpdateInteractorProperties(childControl, interactor.Id, ref childZ, windowId, interactors); 113 | } 114 | } 115 | else 116 | { 117 | foreach (var childControl in control.Controls 118 | .Cast() 119 | .Reverse()) 120 | { 121 | UpdateInteractorProperties(childControl, parentId, ref z, windowId, interactors); 122 | } 123 | } 124 | } 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/Forms/IFormsEyeXHost.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework.Forms 6 | { 7 | /// 8 | /// Interface used for mocking the EyeXHost. 9 | /// 10 | public interface IFormsEyeXHost 11 | { 12 | /// 13 | /// Connects a behavior map so that it may receive queries and events from the EyeX Engine. 14 | /// 15 | /// Map to be connected. 16 | void Connect(BehaviorMap behaviorMap); 17 | 18 | /// 19 | /// Trigger an activation ("gaze click"). 20 | /// Use this method if you want to bind the click command to a key other than the one used 21 | /// by the EyeX Engine -- or to something other than a key press event. 22 | /// 23 | void TriggerActivation(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/GazeAwareBehavior.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Diagnostics.CodeAnalysis; 10 | using System.Linq; 11 | using Tobii.EyeX.Client; 12 | using Tobii.EyeX.Framework; 13 | 14 | /// 15 | /// Maps the Gaze-aware behavior to an interactor. 16 | /// Exposes EyeX behavior parameters and events as .NET properties and events. 17 | /// 18 | public class GazeAwareBehavior : IEyeXBehavior 19 | { 20 | /// 21 | /// Initializes a new instance of the class. 22 | /// 23 | public GazeAwareBehavior() 24 | { 25 | } 26 | 27 | /// 28 | /// Initializes a new instance of the class. 29 | /// 30 | /// The event handler for the event. 31 | public GazeAwareBehavior(EventHandler eventHandler) 32 | { 33 | GazeAware += eventHandler; 34 | } 35 | 36 | /// 37 | /// The event raised when the gaze moves in or out if the interactor. 38 | /// 39 | public event EventHandler GazeAware; 40 | 41 | /// 42 | /// Gets the gaze-aware behavior type. 43 | /// 44 | public BehaviorType BehaviorType 45 | { 46 | get { return BehaviorType.GazeAware; } 47 | } 48 | 49 | /// 50 | /// Gets or sets the delay in milliseconds from when the user looks at the interactor to the event is raised. 51 | /// 52 | public int DelayMilliseconds { get; set; } 53 | 54 | /// 55 | /// Assigns the gaze-aware behavior to an interactor. 56 | /// 57 | /// Interactor to assign the gaze-aware interactor to. 58 | public void AssignBehavior(Interactor interactor) 59 | { 60 | using (var behavior = interactor.CreateBehavior(BehaviorType.GazeAware)) 61 | { 62 | if (DelayMilliseconds > 0) 63 | { 64 | var parameters = new GazeAwareParams { GazeAwareMode = GazeAwareMode.Delayed, DelayTime = DelayMilliseconds }; 65 | behavior.SetGazeAwareParams(ref parameters); 66 | } 67 | } 68 | } 69 | 70 | /// 71 | /// Handles the gaze-aware event. 72 | /// 73 | /// Object associated with the interactor. 74 | /// The instances containing the event data. 75 | public void HandleEvent(object sender, IEnumerable behaviors) 76 | { 77 | foreach (var behavior in behaviors 78 | .Where(b => b.BehaviorType == BehaviorType.GazeAware)) 79 | { 80 | GazeAwareEventParams parameters; 81 | if (behavior.TryGetGazeAwareEventParams(out parameters)) 82 | { 83 | var handler = GazeAware; 84 | if (handler != null) 85 | { 86 | handler(sender, new GazeAwareEventArgs(parameters.HasGaze != EyeXBoolean.False)); 87 | } 88 | } 89 | } 90 | } 91 | } 92 | 93 | /// 94 | /// Event arguments for the gaze-aware behavior. 95 | /// 96 | [SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1402:FileMayOnlyContainASingleClass", Justification = "Belongs here.")] 97 | public sealed class GazeAwareEventArgs : EventArgs 98 | { 99 | /// 100 | /// Initializes a new instance of the class. 101 | /// 102 | /// True if the gaze point falls within the bounds of the interactor. 103 | public GazeAwareEventArgs(bool hasGaze) 104 | { 105 | HasGaze = hasGaze; 106 | } 107 | 108 | /// 109 | /// Gets a value indicating whether the gaze point falls within the bounds of the interactor. 110 | /// 111 | public bool HasGaze { get; private set; } 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/GazePointDataStream.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Diagnostics.CodeAnalysis; 10 | using System.Linq; 11 | using Tobii.EyeX.Client; 12 | using Tobii.EyeX.Framework; 13 | 14 | /// 15 | /// Provides a stream of gaze point data. 16 | /// See . 17 | /// 18 | [SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Justification = "Suffix is DataStream, not just Stream. Low risk for confusion.")] 19 | public sealed class GazePointDataStream : DataStreamBase 20 | { 21 | /// 22 | /// Initializes a new instance of the class. 23 | /// 24 | /// Specifies the kind of processing applied to the eye-gaze data. 25 | public GazePointDataStream(GazePointDataMode mode) 26 | { 27 | Mode = mode; 28 | } 29 | 30 | /// 31 | /// Gets the kind of processing applied to the eye-gaze data. 32 | /// 33 | public GazePointDataMode Mode { get; private set; } 34 | 35 | /// 36 | /// Assigns the behavior corresponding to the data stream type to an interactor. 37 | /// 38 | /// The global interactor to add the data stream behavior to. 39 | protected override void AssignBehavior(Interactor interactor) 40 | { 41 | var parameters = new GazePointDataParams() { GazePointDataMode = Mode }; 42 | interactor.CreateGazePointDataBehavior(ref parameters); 43 | } 44 | 45 | /// 46 | /// Extracts data points from an event from the EyeX Engine. 47 | /// 48 | /// The instances containing the event data. 49 | /// The collection of data points. 50 | protected override IEnumerable ExtractDataPoints(IEnumerable behaviors) 51 | { 52 | foreach (var behavior in behaviors 53 | .Where(behavior => behavior.BehaviorType == BehaviorType.GazePointData)) 54 | { 55 | GazePointDataEventParams parameters; 56 | if (behavior.TryGetGazePointDataEventParams(out parameters) && 57 | parameters.GazePointDataMode == Mode) 58 | { 59 | yield return new GazePointEventArgs(parameters.X, parameters.Y, parameters.Timestamp); 60 | } 61 | } 62 | } 63 | } 64 | 65 | /// 66 | /// Provides event data for the gaze point data stream. 67 | /// 68 | [SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1402:FileMayOnlyContainASingleClass", Justification = "Belongs here.")] 69 | public sealed class GazePointEventArgs : EventArgs 70 | { 71 | /// 72 | /// Initializes a new instance of the class. 73 | /// 74 | /// X coordinate in physical pixels. 75 | /// Y coordinate in physical pixels. 76 | /// The point in time when the data point was captured. Milliseconds. 77 | public GazePointEventArgs(double x, double y, double timestamp) 78 | { 79 | X = x; 80 | Y = y; 81 | Timestamp = timestamp; 82 | } 83 | 84 | /// 85 | /// Gets the X coordinate in physical pixels. 86 | /// 87 | public double X { get; private set; } 88 | 89 | /// 90 | /// Gets the Y coordinate in physical pixels. 91 | /// 92 | public double Y { get; private set; } 93 | 94 | /// 95 | /// Gets the point in time when the data point was captured. Milliseconds. 96 | /// 97 | public double Timestamp { get; private set; } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/IDataStreamObserver.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework 6 | { 7 | using System; 8 | using Tobii.EyeX.Client; 9 | 10 | /// 11 | /// Interface for a data stream observer. 12 | /// This is an internal interface used by the EyeXHost. 13 | /// 14 | internal interface IDataStreamObserver 15 | { 16 | /// 17 | /// Event raised when the observer is disposed. 18 | /// 19 | event EventHandler Disposed; 20 | 21 | /// 22 | /// Gets the unique ID of the observer. 23 | /// 24 | string Id { get; } 25 | 26 | /// 27 | /// Creates an interactor for the data stream. 28 | /// 29 | /// Snapshot to add the interactor to. 30 | void CreateInteractor(Snapshot snapshot); 31 | 32 | /// 33 | /// Handles an event from the EyeX Engine. 34 | /// 35 | /// Event to be handled. 36 | void HandleEvent(InteractionEvent event_); 37 | } 38 | } -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/IEyeXBehavior.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework 6 | { 7 | using System.Collections.Generic; 8 | using Tobii.EyeX.Client; 9 | using Tobii.EyeX.Framework; 10 | 11 | /// 12 | /// Interface of an EyeX behavior adapter, capable of assigning a certain type 13 | /// of behavior to an interactor, and of interpreting the corresponding events. 14 | /// 15 | /// Note: this package includes adapters for the most common behaviors, so there is 16 | /// usually no need to write your own. 17 | /// 18 | /// 19 | public interface IEyeXBehavior 20 | { 21 | /// 22 | /// Gets the type of EyeX behavior. 23 | /// 24 | BehaviorType BehaviorType { get; } 25 | 26 | /// 27 | /// Assigns the behavior to an Interactor. 28 | /// This method is invoked when a snapshot is being prepared for the EyeX Engine. 29 | /// 30 | /// Interactor to be modified. 31 | void AssignBehavior(Interactor interactor); 32 | 33 | /// 34 | /// Handles an event from the EyeX Engine and calls the registered event handlers/callbacks. 35 | /// 36 | /// Object associated with the interactor. 37 | /// The instances containing the event data. 38 | void HandleEvent(object sender, IEnumerable behaviors); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/InteractorIDGenerator.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework 6 | { 7 | using System.Globalization; 8 | 9 | /// 10 | /// Generates unique IDs for interactors. 11 | /// 12 | internal static class InteractorIDGenerator 13 | { 14 | private static readonly object Lock = new object(); 15 | private static int _nextId; 16 | 17 | /// 18 | /// Returns a unique ID. 19 | /// 20 | /// A unique ID. 21 | public static string CreateUniqueID() 22 | { 23 | lock (Lock) 24 | { 25 | int id = _nextId; 26 | _nextId++; 27 | return string.Format(CultureInfo.InvariantCulture, "I{0:00}", id); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | using System; 6 | using System.Reflection; 7 | using System.Runtime.CompilerServices; 8 | using System.Runtime.InteropServices; 9 | 10 | // General Information about an assembly is controlled through the following 11 | // set of attributes. Change these attribute values to modify the information 12 | // associated with an assembly. 13 | [assembly: AssemblyTitle("EyeXFramework")] 14 | [assembly: AssemblyDescription("")] 15 | [assembly: AssemblyConfiguration("")] 16 | [assembly: AssemblyCompany("Tobii Technology AB")] 17 | [assembly: AssemblyProduct("Tobii EyeX SDK for .NET")] 18 | [assembly: AssemblyCopyright("Copyright © 2014 Tobii Technology AB")] 19 | [assembly: AssemblyTrademark("")] 20 | [assembly: AssemblyCulture("")] 21 | 22 | // Setting ComVisible to false makes the types in this assembly not visible 23 | // to COM components. If you need to access a type in this assembly from 24 | // COM, set the ComVisible attribute to true on that type. 25 | [assembly: ComVisible(false)] 26 | 27 | // The following GUID is for the ID of the typelib if this project is exposed to COM 28 | [assembly: Guid("95ec5f5c-5473-4303-b45f-46636043b4c2")] 29 | 30 | // Version information for an assembly consists of the following four values: 31 | // 32 | // Major Version 33 | // Minor Version 34 | // Build Number 35 | // Revision 36 | // 37 | // You can specify all the values or you can default the Build and Revision Numbers 38 | // by using the '*' as shown below: 39 | // [assembly: AssemblyVersion("1.0.*")] 40 | [assembly: AssemblyVersion("1.0.0.0")] 41 | [assembly: AssemblyFileVersion("1.0.0.0")] 42 | 43 | [assembly: CLSCompliant(true)] 44 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/Settings.StyleCop: -------------------------------------------------------------------------------- 1 | 2 | 3 | ..\Settings.StyleCop 4 | Linked 5 | 6 | 7 | 8 | 9 | True 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/Wpf/Behavior.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework.Wpf 6 | { 7 | using System.Diagnostics.CodeAnalysis; 8 | using System.Windows; 9 | using Tobii.EyeX.Framework; 10 | 11 | /// 12 | /// Class that contains all the EyeX Behavior related attached 13 | /// properties and events. 14 | /// 15 | /// The class implementation is split into one file per EyeX 16 | /// Behavior, with the Behavior.cs file containing generic 17 | /// implementation. 18 | /// 19 | /// 20 | /// File naming convention: Behavior.Xyz.cs contains all 21 | /// implementation related explicitly to the EyeX Xyz behavior. 22 | /// 23 | /// 24 | public static partial class Behavior 25 | { 26 | /// 27 | /// Indicates whether the FrameworkElement represents an EyeX 28 | /// interactor or not. That is, if it has any EyeX Behaviors 29 | /// set on it. 30 | /// 31 | /// The 32 | /// 33 | /// A value indicating whether the FrameworkElement represents 34 | /// an EyeX interactor. 35 | /// 36 | [SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1201:ElementsMustAppearInTheCorrectOrder", Justification = "Reviewed.")] 37 | public static bool IsInteractor(this FrameworkElement element) 38 | { 39 | var wpfInteractor = element.GetWpfInteractor(); 40 | return (null != wpfInteractor) && wpfInteractor.IsInteractor; 41 | } 42 | 43 | #region WpfInteractor property 44 | 45 | /// 46 | /// Holds the WpfInteractor object associated with a FrameworkElement. 47 | /// 48 | /// The WpfInteractor class stores information about EyeX behaviors 49 | /// set on the element, and other information needed to create an EyeX 50 | /// interactor based on the element, and also delegates handling of 51 | /// events from the EyeX Engine to the attached EyeX behaviors. 52 | /// 53 | /// 54 | public static readonly DependencyProperty WpfInteractorProperty = DependencyProperty.RegisterAttached( 55 | "WpfInteractor", 56 | typeof(WpfInteractor), 57 | typeof(Behavior), 58 | new FrameworkPropertyMetadata(null)); 59 | 60 | /// 61 | /// Sets the WpfInteractor property for a given FrameworkElement. 62 | /// 63 | /// The to set the property for. 64 | /// The value of the property. 65 | [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "FrameworkElement required.")] 66 | public static void SetWpfInteractor(this FrameworkElement element, WpfInteractor value) 67 | { 68 | element.SetValue(WpfInteractorProperty, value); 69 | } 70 | 71 | /// 72 | /// Gets the WpfInteractor of the FrameworkElement. 73 | /// 74 | /// This method returns null for a FrameworkElement with no set EyeX 75 | /// Behaviors. Code that need a reference to the WpfInteractor, to be 76 | /// able to add an EyeX Behavior to it, should use the 77 | /// GetWpfInteractorOrDefault method instead. 78 | /// 79 | /// 80 | /// The to get the interactor from. 81 | /// The attached, or null. 82 | [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "FrameworkElement required.")] 83 | public static WpfInteractor GetWpfInteractor(this FrameworkElement element) 84 | { 85 | return (WpfInteractor)element.GetValue(WpfInteractorProperty); 86 | } 87 | 88 | /// 89 | /// Gets the WpfInteractor for the FrameworkElement, or if the 90 | /// WpfInteractor is null, creates, sets and returns an empty 91 | /// WpfInteractor. 92 | /// 93 | /// This method should be used for code that need a reference to the 94 | /// WpfInteractor to add an EyeX Behavior to it. 95 | /// 96 | /// 97 | /// The to get the object from. 98 | /// The WpfInteractor for the FrameworkElement, or a default instance. 99 | [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "FrameworkElement required.")] 100 | public static WpfInteractor GetWpfInteractorOrDefault(this FrameworkElement element) 101 | { 102 | var wpfInteractor = element.GetWpfInteractor(); 103 | if (null == wpfInteractor) 104 | { 105 | wpfInteractor = WpfInteractor.CreateEmpty(); 106 | element.SetWpfInteractor(wpfInteractor); 107 | } 108 | 109 | return wpfInteractor; 110 | } 111 | 112 | #endregion 113 | 114 | #region Utility methods for adding and removing behaviors to/from a WpfInteractor 115 | 116 | private static void AddBehavior(FrameworkElement element, IEyeXBehavior behavior) 117 | { 118 | var wpfInteractor = element.GetWpfInteractorOrDefault(); 119 | wpfInteractor.AddBehavior(element, behavior); 120 | } 121 | 122 | private static void RemoveBehavior(FrameworkElement element, BehaviorType behaviorType) 123 | { 124 | var wpfInteractor = element.GetWpfInteractorOrDefault(); 125 | wpfInteractor.RemoveBehavior(behaviorType); 126 | } 127 | 128 | #endregion 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/Wpf/WpfCrawler.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------- 2 | // Copyright 2014 Tobii Technology AB. All rights reserved. 3 | //----------------------------------------------------------------------- 4 | 5 | namespace EyeXFramework.Wpf 6 | { 7 | using System.Collections.Generic; 8 | using System.Diagnostics.CodeAnalysis; 9 | using System.Windows; 10 | using System.Windows.Media; 11 | 12 | /// 13 | /// Helper class for traversing and hit testing visual trees in Windows 14 | /// Presentation Foundation (WPF). 15 | /// 16 | public static class WpfCrawler 17 | { 18 | /// 19 | /// Gets the set of interactors within a given query rectangle. 20 | /// 21 | /// In interactor is defined as a FrameworkElement with an Behavior attached property set on it. 22 | /// 23 | /// 24 | /// A top level window 25 | /// Query rectangle in screen coordinates 26 | /// The set of interactors. 27 | public static IEnumerable GetInteractors(Visual window, Rect queryRectangle) 28 | { 29 | var intersectingInteractors = new List(); 30 | var hitTestRectangle = new RectangleGeometry(GetBoundsInLocalCoordinates(window, queryRectangle)); 31 | 32 | VisualTreeHelper.HitTest( 33 | window, 34 | potentialHitTestTarget => 35 | { 36 | var frameworkElement = potentialHitTestTarget as FrameworkElement; 37 | if (frameworkElement == null) 38 | { 39 | return HitTestFilterBehavior.ContinueSkipSelfAndChildren; 40 | } 41 | 42 | if (frameworkElement.Visibility != Visibility.Visible) 43 | { 44 | return HitTestFilterBehavior.ContinueSkipSelfAndChildren; 45 | } 46 | 47 | if (!frameworkElement.IsHitTestVisible) 48 | { 49 | return HitTestFilterBehavior.ContinueSkipSelf; 50 | } 51 | 52 | if (frameworkElement.IsInteractor()) 53 | { 54 | intersectingInteractors.Add(frameworkElement.GetWpfInteractor()); 55 | } 56 | 57 | return HitTestFilterBehavior.Continue; 58 | }, 59 | result => HitTestResultBehavior.Continue, 60 | new GeometryHitTestParameters(hitTestRectangle)); 61 | 62 | return intersectingInteractors; 63 | } 64 | 65 | /// 66 | /// Updates the ParentId and Z properties of all interactors in the visual tree rooted 67 | /// at the given topElement. 68 | /// 69 | /// The root element of the currently traversed visual tree. 70 | /// Id of the interactor parent. 71 | [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "GetWpfInteractor requires FrameworkElement.")] 72 | public static void UpdateInteractorProperties(FrameworkElement topElement, string topId) 73 | { 74 | int nextChildZ = 0; 75 | foreach (var childElement in GetChildInteractorElements(topElement)) 76 | { 77 | var wpfInteractor = childElement.GetWpfInteractor(); 78 | wpfInteractor.ParentId = topId; 79 | wpfInteractor.Z = nextChildZ; 80 | nextChildZ++; 81 | 82 | UpdateInteractorProperties(childElement, wpfInteractor.Id); 83 | } 84 | } 85 | 86 | /// 87 | /// Returns all children of the given framework element that are also interactors. 88 | /// 89 | /// The framework element to get children of. 90 | /// The child elements. 91 | private static IEnumerable GetChildInteractorElements(DependencyObject parent) 92 | { 93 | for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++) 94 | { 95 | var child = VisualTreeHelper.GetChild(parent, i); 96 | var childAsFrameworkElement = child as FrameworkElement; 97 | 98 | if (null != childAsFrameworkElement && childAsFrameworkElement.IsInteractor()) 99 | { 100 | yield return childAsFrameworkElement; 101 | } 102 | else 103 | { 104 | foreach (var grandchild in GetChildInteractorElements(child)) 105 | { 106 | yield return grandchild; 107 | } 108 | } 109 | } 110 | } 111 | 112 | private static Rect GetBoundsInLocalCoordinates(Visual visual, Rect boundsInScreenCoordinates) 113 | { 114 | var localBoundsUpperLeft = visual.PointFromScreen(new Point(boundsInScreenCoordinates.X, boundsInScreenCoordinates.Y)); 115 | var localBoundsLowerRight = visual.PointFromScreen(new Point( 116 | boundsInScreenCoordinates.X + boundsInScreenCoordinates.Width, 117 | boundsInScreenCoordinates.Y + boundsInScreenCoordinates.Height)); 118 | return new Rect(localBoundsUpperLeft, localBoundsLowerRight); 119 | } 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/bin/x86/Debug/EyeXFramework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/bin/x86/Debug/EyeXFramework.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/bin/x86/Debug/EyeXFramework.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/bin/x86/Debug/EyeXFramework.pdb -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/bin/x86/Debug/Tobii.EyeX.Client.Net20.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/bin/x86/Debug/Tobii.EyeX.Client.Net20.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/EyeXFramework.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | D:\work\sdk\TobiiEyeXSdk-DotNet-1.3.443\source\EyeXFramework\bin\x86\Debug\EyeXFramework.dll 2 | D:\work\sdk\TobiiEyeXSdk-DotNet-1.3.443\source\EyeXFramework\bin\x86\Debug\EyeXFramework.pdb 3 | D:\work\sdk\TobiiEyeXSdk-DotNet-1.3.443\source\EyeXFramework\bin\x86\Debug\Tobii.EyeX.Client.Net20.dll 4 | D:\work\sdk\TobiiEyeXSdk-DotNet-1.3.443\source\EyeXFramework\bin\x86\Debug\Tobii.EyeX.Client.Net20.xml 5 | D:\work\sdk\TobiiEyeXSdk-DotNet-1.3.443\source\EyeXFramework\obj\x86\Debug\EyeXFramework.csprojResolveAssemblyReference.cache 6 | D:\work\sdk\TobiiEyeXSdk-DotNet-1.3.443\source\EyeXFramework\obj\x86\Debug\EyeXFramework.dll 7 | D:\work\sdk\TobiiEyeXSdk-DotNet-1.3.443\source\EyeXFramework\obj\x86\Debug\EyeXFramework.pdb 8 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/EyeXFramework.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/EyeXFramework.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/EyeXFramework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/EyeXFramework.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/EyeXFramework.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/EyeXFramework.pdb -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/EyeXFramework/obj/x86/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #region Using directives 2 | 3 | using System; 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | #endregion 8 | 9 | // General Information about an assembly is controlled through the following 10 | // set of attributes. Change these attribute values to modify the information 11 | // associated with an assembly. 12 | [assembly: AssemblyTitle("DemoPlugin")] 13 | [assembly: AssemblyDescription("")] 14 | [assembly: AssemblyConfiguration("")] 15 | [assembly: AssemblyCompany("")] 16 | [assembly: AssemblyProduct("DemoPlugin")] 17 | [assembly: AssemblyCopyright("Copyright 2010")] 18 | [assembly: AssemblyTrademark("")] 19 | [assembly: AssemblyCulture("")] 20 | 21 | // This sets the default COM visibility of types in the assembly to invisible. 22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type. 23 | [assembly: ComVisible(false)] 24 | 25 | // The assembly version has following format : 26 | // 27 | // Major.Minor.Build.Revision 28 | // 29 | // You can specify all the values or you can use the default the Revision and 30 | // Build Numbers by using the '*' as shown below: 31 | [assembly: AssemblyVersion("1.0.*")] 32 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/Tobii.EyeX.Client.Net20.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/Tobii.EyeX.Client.Net20.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/Tobii.EyeX.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/Tobii.EyeX.Client.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/CommandLine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/CommandLine.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/DevicesTobiiEyeX.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/DevicesTobiiEyeX.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/DevicesTobiiEyeX.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/DevicesTobiiEyeX.pdb -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/EyeXFramework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/EyeXFramework.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/EyeXFramework.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/EyeXFramework.pdb -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/ICSharpCode.NRefactory.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/ICSharpCode.NRefactory.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/ICSharpCode.SharpDevelop.Dom.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/ICSharpCode.SharpDevelop.Dom.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Microsoft.Practices.ServiceLocation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Microsoft.Practices.ServiceLocation.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Microsoft.Practices.Unity.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Microsoft.Practices.Unity.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Mono.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Mono.Cecil.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/SlimDX.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/SlimDX.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.ComponentModel.Composition.Codeplex.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.ComponentModel.Composition.Codeplex.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.Reactive.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.Reactive.Core.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.Reactive.Interfaces.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.Reactive.Interfaces.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.Reactive.Linq.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.Reactive.Linq.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.Reflection.Context.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/System.Reflection.Context.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Tobii.EyeX.Client.Net20.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Tobii.EyeX.Client.Net20.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Tobii.EyeX.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/Tobii.EyeX.Client.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.Core.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.PluginInterfaces.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.PluginInterfaces.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.Utils.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.Utils.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.Utils3rdParty.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.Utils3rdParty.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.UtilsIL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.UtilsIL.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/VVVV.UtilsIL.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | VVVV.UtilsIL 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/log4net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/AnyCPU/Debug/log4net.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/Dynamic/1278305982._dynamic_.21.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/Dynamic/1278305982._dynamic_.21.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/Dynamic/1508555595._dynamic_.1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/Dynamic/1508555595._dynamic_.1.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/Dynamic/EyeXFramework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/Dynamic/EyeXFramework.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/Dynamic/Tobii.EyeX.Client.Net20.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/Dynamic/Tobii.EyeX.Client.Net20.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/bin/Dynamic/Tobii.EyeX.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/bin/Dynamic/Tobii.EyeX.Client.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/Debug/DevicesTobiiEyeX.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\DevicesTobiiEyeX.dll 2 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\DevicesTobiiEyeX.pdb 3 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\SlimDX.dll 4 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.ComponentModel.Composition.Codeplex.dll 5 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Core.dll 6 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.PluginInterfaces.dll 7 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Utils.dll 8 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Utils3rdParty.dll 9 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reflection.Context.dll 10 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\Microsoft.Practices.Unity.dll 11 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\ICSharpCode.SharpDevelop.Dom.dll 12 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\ICSharpCode.NRefactory.dll 13 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\CommandLine.dll 14 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Linq.dll 15 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Interfaces.dll 16 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Core.dll 17 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.UtilsIL.dll 18 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\Microsoft.Practices.ServiceLocation.dll 19 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\Mono.Cecil.dll 20 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\log4net.dll 21 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\SlimDX.xml 22 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.ComponentModel.Composition.Codeplex.xml 23 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.PluginInterfaces.xml 24 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Utils.xml 25 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Utils3rdParty.xml 26 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\Microsoft.Practices.Unity.xml 27 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\CommandLine.xml 28 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Linq.xml 29 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Interfaces.xml 30 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Core.xml 31 | D:\work\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.UtilsIL.xml 32 | D:\work\plugins\DevicesTobiiEyeX\obj\Debug\DevicesTobiiEyeX.csprojResolveAssemblyReference.cache 33 | D:\work\plugins\DevicesTobiiEyeX\obj\Debug\DevicesTobiiEyeX.dll 34 | D:\work\plugins\DevicesTobiiEyeX\obj\Debug\DevicesTobiiEyeX.pdb 35 | D:\work\vvvv\plugins\DevicesTobiiEyeX\obj\Debug\DevicesTobiiEyeX.csprojResolveAssemblyReference.cache 36 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\DevicesTobiiEyeX.dll 37 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\DevicesTobiiEyeX.pdb 38 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\EyeXFramework.dll 39 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\SlimDX.dll 40 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.ComponentModel.Composition.Codeplex.dll 41 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\Tobii.EyeX.Client.Net20.dll 42 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Core.dll 43 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.PluginInterfaces.dll 44 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Utils.dll 45 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Utils3rdParty.dll 46 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reflection.Context.dll 47 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\Microsoft.Practices.Unity.dll 48 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\ICSharpCode.SharpDevelop.Dom.dll 49 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\ICSharpCode.NRefactory.dll 50 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\CommandLine.dll 51 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Linq.dll 52 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Interfaces.dll 53 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Core.dll 54 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.UtilsIL.dll 55 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\Microsoft.Practices.ServiceLocation.dll 56 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\Mono.Cecil.dll 57 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\log4net.dll 58 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\EyeXFramework.pdb 59 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\SlimDX.xml 60 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.ComponentModel.Composition.Codeplex.xml 61 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.PluginInterfaces.xml 62 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Utils.xml 63 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.Utils3rdParty.xml 64 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\Microsoft.Practices.Unity.xml 65 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\CommandLine.xml 66 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Linq.xml 67 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Interfaces.xml 68 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\System.Reactive.Core.xml 69 | D:\work\vvvv\plugins\DevicesTobiiEyeX\bin\AnyCPU\Debug\VVVV.UtilsIL.xml 70 | D:\work\vvvv\plugins\DevicesTobiiEyeX\obj\Debug\DevicesTobiiEyeX.dll 71 | D:\work\vvvv\plugins\DevicesTobiiEyeX\obj\Debug\DevicesTobiiEyeX.pdb 72 | -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/Debug/DevicesTobiiEyeX.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/obj/Debug/DevicesTobiiEyeX.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/Debug/DevicesTobiiEyeX.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/obj/Debug/DevicesTobiiEyeX.dll -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/Debug/DevicesTobiiEyeX.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/obj/Debug/DevicesTobiiEyeX.pdb -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /plugins/DevicesTobiiEyeX/obj/x86/Debug/build.force: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/DevicesTobiiEyeX/obj/x86/Debug/build.force -------------------------------------------------------------------------------- /plugins/NetworkSendTexture/NetworkSendTexture.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16} 5 | Debug 6 | x86 7 | Library 8 | VVVV.Nodes 9 | NetworkSendTexture 10 | v4.0 11 | bin\$(Platform)\$(Configuration)\ 12 | True 13 | ..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\core\;..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\nodes\plugins\ 14 | 15 | 16 | DEBUG;TRACE 17 | False 18 | True 19 | Full 20 | True 21 | 22 | 23 | TRACE 24 | True 25 | False 26 | None 27 | False 28 | 29 | 30 | AnyCPU 31 | 32 | 33 | x86 34 | 35 | 36 | x64 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /plugins/NetworkSendTexture/NetworkSendTextureNode.cs: -------------------------------------------------------------------------------- 1 | #region usings 2 | using System; 3 | using System.IO; 4 | using System.ComponentModel.Composition; 5 | 6 | using VVVV.PluginInterfaces.V1; 7 | using VVVV.PluginInterfaces.V2; 8 | using VVVV.Utils.VColor; 9 | using VVVV.Utils.VMath; 10 | 11 | using VVVV.Core.Logging; 12 | #endregion usings 13 | 14 | namespace VVVV.Nodes 15 | { 16 | #region PluginInfo 17 | [PluginInfo(Name = "SendTexture", Category = "Network", Help = "Basic raw template which copies up to count bytes from the input to the output", Tags = "")] 18 | #endregion PluginInfo 19 | public class NetworkSendTextureNode : IPluginEvaluate, IPartImportsSatisfiedNotification 20 | { 21 | #region fields & pins 22 | [Input("Input")] 23 | public ISpread FStreamIn; 24 | 25 | [Input("Count", MinValue = 0)] 26 | public ISpread FCountIn; 27 | 28 | [Output("Output")] 29 | public ISpread FStreamOut; 30 | 31 | //when dealing with byte streams (what we call Raw in the GUI) it's always 32 | //good to have a byte buffer around. we'll use it when copying the data. 33 | readonly byte[] FBuffer = new byte[1024]; 34 | #endregion fields & pins 35 | 36 | //called when all inputs and outputs defined above are assigned from the host 37 | public void OnImportsSatisfied() 38 | { 39 | //start with an empty stream output 40 | FStreamOut.SliceCount = 0; 41 | } 42 | 43 | //called when data for any output pin is requested 44 | public void Evaluate(int spreadMax) 45 | { 46 | //ResizeAndDispose will adjust the spread length and thereby call 47 | //the given constructor function for new slices and Dispose on old 48 | //slices. 49 | FStreamOut.ResizeAndDispose(spreadMax, () => new MemoryStream()); 50 | for (int i = 0; i < spreadMax; i++) { 51 | //get the input stream 52 | var inputStream = FStreamIn[i]; 53 | //get the output stream (this works because of ResizeAndDispose above) 54 | var outputStream = FStreamOut[i]; 55 | //get the number of bytes we should copy (avoid negative values) 56 | var count = Math.Max(FCountIn[i], 0); 57 | //see how many bytes should be copied from the input stream 58 | var numBytesToCopy = Math.Min(inputStream.Length, count); 59 | 60 | //reset the positions of the streams 61 | inputStream.Position = 0; 62 | outputStream.Position = 0; 63 | 64 | //set the length of the output stream 65 | outputStream.SetLength(numBytesToCopy); 66 | 67 | //finally copy the data 68 | while (numBytesToCopy > 0) { 69 | //make sure we don't read more than we need or more than 70 | //our byte buffer can hold 71 | var chunkSize = (int)Math.Min(numBytesToCopy, FBuffer.Length); 72 | //the stream's read method returns how many bytes have actually 73 | //been read into the buffer 74 | var numBytesRead = inputStream.Read(FBuffer, 0, chunkSize); 75 | //in case nothing has been read we need to leave the loop 76 | //as we requested more than there was available 77 | if (numBytesRead == 0) 78 | break; 79 | //write the number of bytes read to the output stream 80 | outputStream.Write(FBuffer, 0, numBytesRead); 81 | //decrease the total amount of bytes we still need to read 82 | numBytesToCopy -= numBytesRead; 83 | } 84 | } 85 | //this will force the changed flag of the output pin to be set 86 | FStreamOut.Flush(true); 87 | } 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /plugins/NetworkSendTexture/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #region Using directives 2 | 3 | using System; 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | #endregion 8 | 9 | // General Information about an assembly is controlled through the following 10 | // set of attributes. Change these attribute values to modify the information 11 | // associated with an assembly. 12 | [assembly: AssemblyTitle("DemoPlugin")] 13 | [assembly: AssemblyDescription("")] 14 | [assembly: AssemblyConfiguration("")] 15 | [assembly: AssemblyCompany("")] 16 | [assembly: AssemblyProduct("DemoPlugin")] 17 | [assembly: AssemblyCopyright("Copyright 2010")] 18 | [assembly: AssemblyTrademark("")] 19 | [assembly: AssemblyCulture("")] 20 | 21 | // This sets the default COM visibility of types in the assembly to invisible. 22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type. 23 | [assembly: ComVisible(false)] 24 | 25 | // The assembly version has following format : 26 | // 27 | // Major.Minor.Build.Revision 28 | // 29 | // You can specify all the values or you can use the default the Revision and 30 | // Build Numbers by using the '*' as shown below: 31 | [assembly: AssemblyVersion("1.0.*")] 32 | -------------------------------------------------------------------------------- /plugins/NetworkSendTexture/bin/Dynamic/1302268752._dynamic_.1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/NetworkSendTexture/bin/Dynamic/1302268752._dynamic_.1.dll -------------------------------------------------------------------------------- /plugins/RawSendTexture/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #region Using directives 2 | 3 | using System; 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | #endregion 8 | 9 | // General Information about an assembly is controlled through the following 10 | // set of attributes. Change these attribute values to modify the information 11 | // associated with an assembly. 12 | [assembly: AssemblyTitle("DemoPlugin")] 13 | [assembly: AssemblyDescription("")] 14 | [assembly: AssemblyConfiguration("")] 15 | [assembly: AssemblyCompany("")] 16 | [assembly: AssemblyProduct("DemoPlugin")] 17 | [assembly: AssemblyCopyright("Copyright 2010")] 18 | [assembly: AssemblyTrademark("")] 19 | [assembly: AssemblyCulture("")] 20 | 21 | // This sets the default COM visibility of types in the assembly to invisible. 22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type. 23 | [assembly: ComVisible(false)] 24 | 25 | // The assembly version has following format : 26 | // 27 | // Major.Minor.Build.Revision 28 | // 29 | // You can specify all the values or you can use the default the Revision and 30 | // Build Numbers by using the '*' as shown below: 31 | [assembly: AssemblyVersion("1.0.*")] 32 | -------------------------------------------------------------------------------- /plugins/RawSendTexture/RawSendTexture.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16} 5 | Debug 6 | x86 7 | Library 8 | VVVV.Nodes 9 | RawSendTexture 10 | v4.0 11 | bin\$(Platform)\$(Configuration)\ 12 | True 13 | ..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\core\;..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\nodes\plugins\ 14 | 15 | 16 | DEBUG;TRACE 17 | False 18 | True 19 | Full 20 | True 21 | 22 | 23 | TRACE 24 | True 25 | False 26 | None 27 | False 28 | 29 | 30 | AnyCPU 31 | 32 | 33 | x86 34 | 35 | 36 | x64 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /plugins/RawSendTexture/RawSendTextureNode.cs: -------------------------------------------------------------------------------- 1 | #region usings 2 | using System; 3 | using System.IO; 4 | using System.ComponentModel.Composition; 5 | using System.Net; 6 | using System.Net.Sockets; 7 | using System.Text; 8 | using System.Threading; 9 | 10 | using VVVV.PluginInterfaces.V1; 11 | using VVVV.PluginInterfaces.V2; 12 | using VVVV.Utils.VColor; 13 | using VVVV.Utils.VMath; 14 | 15 | using VVVV.Core.Logging; 16 | #endregion usings 17 | 18 | namespace VVVV.Nodes 19 | { 20 | #region PluginInfo 21 | [PluginInfo(Name = "SendTexture", Category = "Raw", Help = "Basic raw template which copies up to count bytes from the input to the output", Tags = "")] 22 | #endregion PluginInfo 23 | public class RawSendTextureNode : IPluginEvaluate, IStartable 24 | { 25 | #region fields & pins 26 | [Input("Input")] 27 | public ISpread FStreamIn; 28 | 29 | [Output("Output")] 30 | public ISpread running; 31 | 32 | [Import()] 33 | public ILogger FLogger; 34 | 35 | byte[] FBuffer = new byte[1024*1024]; 36 | 37 | int size = 0; 38 | bool sending = false; 39 | Socket s; 40 | Thread trd = null; 41 | 42 | #endregion fields & pins 43 | 44 | private void recvTask() 45 | { 46 | while(true){ 47 | if(sending && s != null){ 48 | s.Send(FBuffer, 0, size, SocketFlags.None); 49 | sending = false; 50 | FLogger.Log(LogType.Debug, size+"da:"); 51 | } 52 | Thread.Sleep(5); 53 | } 54 | } 55 | 56 | //called when all inputs and outputs defined above are assigned from the host 57 | public void Start() 58 | { 59 | if (s==null) 60 | { 61 | TcpClient tcpClient = new TcpClient(); 62 | tcpClient.Connect("localhost", 4444); 63 | s = tcpClient.Client; 64 | } 65 | if (trd != null) trd.Abort(); 66 | trd = new Thread(new ThreadStart(recvTask)); 67 | trd.IsBackground = true; 68 | trd.Start(); 69 | FLogger.Log(LogType.Debug,"Start"); 70 | } 71 | 72 | public void Shutdown() 73 | { 74 | trd.Abort(); 75 | s.Close(); 76 | } 77 | 78 | //called when data for any output pin is requested 79 | public void Evaluate(int spreadMax) 80 | { 81 | if (sending) return; 82 | if (s == null) { 83 | Start(); 84 | return; 85 | } 86 | for (int i = 0; i < spreadMax; i++) { 87 | var inputStream = FStreamIn[i]; 88 | size = (int)inputStream.Length; 89 | inputStream.Read(FBuffer, 0, size); 90 | sending = true; 91 | } 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /plugins/RawSendTexture/bin/Dynamic/-1277556148._dynamic_.19.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/RawSendTexture/bin/Dynamic/-1277556148._dynamic_.19.dll -------------------------------------------------------------------------------- /plugins/StringFFDamageMove/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #region Using directives 2 | 3 | using System; 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | #endregion 8 | 9 | // General Information about an assembly is controlled through the following 10 | // set of attributes. Change these attribute values to modify the information 11 | // associated with an assembly. 12 | [assembly: AssemblyTitle("DemoPlugin")] 13 | [assembly: AssemblyDescription("")] 14 | [assembly: AssemblyConfiguration("")] 15 | [assembly: AssemblyCompany("")] 16 | [assembly: AssemblyProduct("DemoPlugin")] 17 | [assembly: AssemblyCopyright("Copyright 2010")] 18 | [assembly: AssemblyTrademark("")] 19 | [assembly: AssemblyCulture("")] 20 | 21 | // This sets the default COM visibility of types in the assembly to invisible. 22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type. 23 | [assembly: ComVisible(false)] 24 | 25 | // The assembly version has following format : 26 | // 27 | // Major.Minor.Build.Revision 28 | // 29 | // You can specify all the values or you can use the default the Revision and 30 | // Build Numbers by using the '*' as shown below: 31 | [assembly: AssemblyVersion("1.0.*")] 32 | -------------------------------------------------------------------------------- /plugins/StringFFDamageMove/StringFFDamageMove.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16} 5 | Debug 6 | x86 7 | Library 8 | VVVV.Nodes 9 | StringFFDamageMove 10 | v4.0 11 | bin\$(Platform)\$(Configuration)\ 12 | True 13 | ..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\core\;..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\nodes\plugins\ 14 | 15 | 16 | DEBUG;TRACE 17 | False 18 | True 19 | Full 20 | True 21 | 22 | 23 | TRACE 24 | True 25 | False 26 | None 27 | False 28 | 29 | 30 | AnyCPU 31 | 32 | 33 | x86 34 | 35 | 36 | x64 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /plugins/StringFFDamageMove/StringFFDamageMoveNode.cs: -------------------------------------------------------------------------------- 1 | #region usings 2 | using System; 3 | using System.ComponentModel.Composition; 4 | 5 | using VVVV.PluginInterfaces.V1; 6 | using VVVV.PluginInterfaces.V2; 7 | using VVVV.Utils.VColor; 8 | using VVVV.Utils.VMath; 9 | 10 | using VVVV.Core.Logging; 11 | #endregion usings 12 | 13 | namespace VVVV.Nodes 14 | { 15 | #region PluginInfo 16 | [PluginInfo(Name = "FFDamageMove", Category = "String", Help = "Basic template with one value in/out", Tags = "")] 17 | #endregion PluginInfo 18 | public class StringFFDamageMoveNode : IPluginEvaluate 19 | { 20 | #region fields & pins 21 | [Input("Text", DefaultString = "text")] 22 | public ISpread FInputText; 23 | [Input("PosXY", DefaultValue = 0)] 24 | public ISpread FInputPosXY; 25 | [Input("Time", DefaultValue = 0)] 26 | public ISpread FInputTime; 27 | [Input("Width", DefaultValue = 1.0)] 28 | public ISpread FInputWidth; 29 | 30 | [Output("Char")] 31 | public ISpread FOutputChar; 32 | [Output("PosXY")] 33 | public ISpread FOutputXY; 34 | [Output("LocalTime")] 35 | public ISpread FOutputLocalTime; 36 | 37 | [Import()] 38 | public ILogger FLogger; 39 | #endregion fields & pins 40 | 41 | //called when data for any output pin is requested 42 | public void Evaluate(int SpreadMax) 43 | { 44 | FOutputChar.SliceCount = 0; 45 | FOutputXY.SliceCount = 0; 46 | FOutputLocalTime.SliceCount = 0; 47 | 48 | SpreadMax = Math.Max(Math.Max(FInputText.SliceCount, FInputTime.SliceCount), FInputWidth.SliceCount); 49 | 50 | for (int i=0; i < SpreadMax; ++i) 51 | { 52 | String text = FInputText[i%FInputText.SliceCount]; 53 | double time = FInputTime[i%FInputTime.SliceCount]; 54 | double width = FInputWidth[i%FInputWidth.SliceCount]; 55 | double x = FInputPosXY[(i*2+0)%FInputPosXY.SliceCount]; 56 | double y = FInputPosXY[(i*2+1)%FInputPosXY.SliceCount]; 57 | f(text, time, width, x, y); 58 | } 59 | 60 | //FLogger.Log(LogType.Debug, "hi tty!"); 61 | } 62 | 63 | private void f(String s, double t, double width, double x, double y) 64 | { 65 | for (int i=0; i < s.Length; ++i) 66 | { 67 | double tt = (t + (s.Length-i-1)*0.1)*2; 68 | double lt = ((tt > 1) ? 1 : tt); 69 | double dy = Math.Sin(lt * Math.PI)/5; 70 | FOutputChar.Add(s[i].ToString()); 71 | FOutputLocalTime.Add(t); 72 | FOutputXY.Add(x + width*i); //x 73 | FOutputXY.Add(y + dy); //y 74 | } 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /plugins/StringFFDamageMove/bin/Dynamic/348075696._dynamic_.51.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/StringFFDamageMove/bin/Dynamic/348075696._dynamic_.51.dll -------------------------------------------------------------------------------- /plugins/ValueCS_Test/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #region Using directives 2 | 3 | using System; 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | #endregion 8 | 9 | // General Information about an assembly is controlled through the following 10 | // set of attributes. Change these attribute values to modify the information 11 | // associated with an assembly. 12 | [assembly: AssemblyTitle("DemoPlugin")] 13 | [assembly: AssemblyDescription("")] 14 | [assembly: AssemblyConfiguration("")] 15 | [assembly: AssemblyCompany("")] 16 | [assembly: AssemblyProduct("DemoPlugin")] 17 | [assembly: AssemblyCopyright("Copyright 2010")] 18 | [assembly: AssemblyTrademark("")] 19 | [assembly: AssemblyCulture("")] 20 | 21 | // This sets the default COM visibility of types in the assembly to invisible. 22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type. 23 | [assembly: ComVisible(false)] 24 | 25 | // The assembly version has following format : 26 | // 27 | // Major.Minor.Build.Revision 28 | // 29 | // You can specify all the values or you can use the default the Revision and 30 | // Build Numbers by using the '*' as shown below: 31 | [assembly: AssemblyVersion("1.0.*")] 32 | -------------------------------------------------------------------------------- /plugins/ValueCS_Test/ValueCS_Test.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16} 5 | Debug 6 | x86 7 | Library 8 | VVVV.Nodes 9 | ValueCS_Test 10 | v4.0 11 | bin\$(Platform)\$(Configuration)\ 12 | True 13 | ..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\core\;..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\nodes\plugins\ 14 | 15 | 16 | DEBUG;TRACE 17 | False 18 | True 19 | Full 20 | True 21 | 22 | 23 | TRACE 24 | True 25 | False 26 | None 27 | False 28 | 29 | 30 | AnyCPU 31 | 32 | 33 | x86 34 | 35 | 36 | x64 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /plugins/ValueCS_Test/ValueCS_TestNode.cs: -------------------------------------------------------------------------------- 1 | #region usings 2 | using System; 3 | using System.ComponentModel.Composition; 4 | using System.Collections.Generic; 5 | 6 | using VVVV.PluginInterfaces.V1; 7 | using VVVV.PluginInterfaces.V2; 8 | using VVVV.Utils.VColor; 9 | using VVVV.Utils.VMath; 10 | 11 | using VVVV.Core.Logging; 12 | #endregion usings 13 | 14 | namespace VVVV.Nodes 15 | { 16 | #region PluginInfo 17 | [PluginInfo(Name = "CS_Test", Category = "Value", Help = "Basic template with one value in/out", Tags = "")] 18 | #endregion PluginInfo 19 | public class ValueCS_TestNode : IPluginEvaluate 20 | { 21 | #region fields & pins 22 | [Input("MouseXY", DefaultValue = 1.0)] 23 | public ISpread FMouseXY; 24 | [Input("Click", DefaultValue = 0)] 25 | public ISpread FClick; 26 | [Input("QuadLocation", DefaultValue = 1.0)] 27 | public ISpread FLocation; 28 | [Input("QuadSize", DefaultValue = 1.0)] 29 | public ISpread FSize; 30 | [Input("Init", DefaultValue = 0)] 31 | public ISpread FInit; 32 | 33 | [Output("On")] 34 | public ISpread FOn; 35 | 36 | [Import()] 37 | public ILogger FLogger; 38 | 39 | List state; 40 | 41 | #endregion fields & pins 42 | 43 | bool isOn(Vector2D mouse, Vector2D location, Vector2D size) 44 | { 45 | bool isOnX = (location.x - size.x/2 < mouse.x && mouse.x < location.x + size.x/2); 46 | bool isOnY = (location.y - size.y/2 < mouse.y && mouse.y < location.y + size.y/2); 47 | return (isOnX && isOnY); 48 | } 49 | 50 | //called when data for any output pin is requested 51 | public void Evaluate(int SpreadMax) 52 | { 53 | int n = FLocation.SliceCount; 54 | if (state == null || n != state.Count || FInit[0]) { 55 | state = new List(); 56 | for (int i=0; i < n; ++i) state.Add(0); 57 | } 58 | 59 | FOn.SliceCount = n; 60 | for (int i=0; i < n; ++i) 61 | { 62 | if (isOn(FMouseXY[0], FLocation[i], FSize[i])) 63 | { 64 | if (FClick[0]) 65 | { 66 | ++state[i]; 67 | if (state[i] >= 3) state[i] = 0; 68 | } 69 | } 70 | 71 | FOn[i] = state[i]; 72 | } 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /plugins/ValueCS_Test/bin/Dynamic/-1925375871._dynamic_.9.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/ValueCS_Test/bin/Dynamic/-1925375871._dynamic_.9.dll -------------------------------------------------------------------------------- /plugins/ValueSortPoint2/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #region Using directives 2 | 3 | using System; 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | #endregion 8 | 9 | // General Information about an assembly is controlled through the following 10 | // set of attributes. Change these attribute values to modify the information 11 | // associated with an assembly. 12 | [assembly: AssemblyTitle("DemoPlugin")] 13 | [assembly: AssemblyDescription("")] 14 | [assembly: AssemblyConfiguration("")] 15 | [assembly: AssemblyCompany("")] 16 | [assembly: AssemblyProduct("DemoPlugin")] 17 | [assembly: AssemblyCopyright("Copyright 2010")] 18 | [assembly: AssemblyTrademark("")] 19 | [assembly: AssemblyCulture("")] 20 | 21 | // This sets the default COM visibility of types in the assembly to invisible. 22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type. 23 | [assembly: ComVisible(false)] 24 | 25 | // The assembly version has following format : 26 | // 27 | // Major.Minor.Build.Revision 28 | // 29 | // You can specify all the values or you can use the default the Revision and 30 | // Build Numbers by using the '*' as shown below: 31 | [assembly: AssemblyVersion("1.0.*")] 32 | -------------------------------------------------------------------------------- /plugins/ValueSortPoint2/ValueSortPoint2.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | {6A0AFB1F-8219-4A08-85F7-B7F19B66AC16} 5 | Debug 6 | x86 7 | Library 8 | VVVV.Nodes 9 | ValueSortPoint2 10 | v4.0 11 | bin\$(Platform)\$(Configuration)\ 12 | True 13 | ..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\core\;..\..\..\..\Program Files (x86)\vvvv_45beta33.1_x86\lib\nodes\plugins\ 14 | 15 | 16 | DEBUG;TRACE 17 | False 18 | True 19 | Full 20 | True 21 | 22 | 23 | TRACE 24 | True 25 | False 26 | None 27 | False 28 | 29 | 30 | AnyCPU 31 | 32 | 33 | x86 34 | 35 | 36 | x64 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /plugins/ValueSortPoint2/ValueSortPoint2Node.cs: -------------------------------------------------------------------------------- 1 | #region usings 2 | using System; 3 | using System.ComponentModel.Composition; 4 | 5 | using VVVV.PluginInterfaces.V1; 6 | using VVVV.PluginInterfaces.V2; 7 | using VVVV.Utils.VColor; 8 | using VVVV.Utils.VMath; 9 | 10 | using VVVV.Core.Logging; 11 | #endregion usings 12 | 13 | namespace VVVV.Nodes 14 | { 15 | #region PluginInfo 16 | [PluginInfo(Name = "SortPoint2", Category = "Value", Help = "Basic template with one value in/out", Tags = "")] 17 | #endregion PluginInfo 18 | public class ValueSortPoint2Node : IPluginEvaluate 19 | { 20 | #region fields & pins 21 | [Input("Input", DefaultValue = 1.0)] 22 | public ISpread FInput; 23 | [Input("Dist1", DefaultValue = 1.0)] 24 | public ISpread FDist1; 25 | [Input("Dist2", DefaultValue = 1.0)] 26 | public ISpread FDist2; 27 | [Input("Dist3", DefaultValue = 1.0)] 28 | public ISpread FDist3; 29 | 30 | [Output("Output")] 31 | public ISpread FOutput; 32 | 33 | [Import()] 34 | public ILogger FLogger; 35 | #endregion fields & pins 36 | 37 | void swap(ref int a, ref int b) 38 | { 39 | int t = a; 40 | a = b; 41 | b = t; 42 | } 43 | 44 | //called when data for any output pin is requested 45 | public void Evaluate(int SpreadMax) 46 | { 47 | int ct = FInput.SliceCount/3; 48 | FOutput.SliceCount = ct*4; 49 | 50 | int [] table = new int[]{0,1,0,2,1,2}; 51 | int p = 0; 52 | for (int i = 0; i < ct; i++) 53 | { 54 | int [] idx = new int[]{ 0, 1, 2 }; 55 | if (FDist1[i] > FDist2[i]) swap(ref idx[0], ref idx[1]); 56 | if (FDist1[i] > FDist3[i]) swap(ref idx[0], ref idx[2]); 57 | if (FDist2[i] > FDist3[i]) swap(ref idx[1], ref idx[2]); 58 | 59 | FOutput[p++] = FInput[i*3+table[idx[0]*2+0]]; 60 | FOutput[p++] = FInput[i*3+table[idx[0]*2+1]]; 61 | FOutput[p++] = FInput[i*3+table[idx[1]*2+0]]; 62 | FOutput[p++] = FInput[i*3+table[idx[1]*2+1]]; 63 | } 64 | //FLogger.Log(LogType.Debug, "hi tty!"); 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /plugins/ValueSortPoint2/bin/Dynamic/23580670._dynamic_.7.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/plugins/ValueSortPoint2/bin/Dynamic/23580670._dynamic_.7.dll -------------------------------------------------------------------------------- /shoot.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/shoot.wav -------------------------------------------------------------------------------- /sky_star.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sky_star.jpg -------------------------------------------------------------------------------- /sounds/01ƒh.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/01ƒh.wav -------------------------------------------------------------------------------- /sounds/02ƒŒ.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/02ƒŒ.wav -------------------------------------------------------------------------------- /sounds/03ƒ~.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/03ƒ~.wav -------------------------------------------------------------------------------- /sounds/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/05.wav -------------------------------------------------------------------------------- /sounds/06ƒ‰.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/06ƒ‰.wav -------------------------------------------------------------------------------- /sounds/08ƒhi‚j.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/08ƒhi‚j.wav -------------------------------------------------------------------------------- /sounds/09ƒŒi‚j.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/09ƒŒi‚j.wav -------------------------------------------------------------------------------- /sounds/10ƒ~i‚j.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/10ƒ~i‚j.wav -------------------------------------------------------------------------------- /sounds/12.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/12.wav -------------------------------------------------------------------------------- /sounds/13ƒ‰i‚j.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/sounds/13ƒ‰i‚j.wav -------------------------------------------------------------------------------- /ssao_test.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yhyjp/vvvv_tutorial/efaec92dfdde4be81f103cc5faf9775c2417d585/star.png -------------------------------------------------------------------------------- /vl_async.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /vl_class.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /vl_region.v4p: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | --------------------------------------------------------------------------------