1window.CABLES.ARTWORK_lineLogo={settings:{opExample:[],licence:"none",isPublic:!1},ops:[{opId:"b0472a1d-db16-4ba6-8787-f300fbdc77bb",objName:"Ops.Gl.MainLoop",id:"aa218bf3-e713-4977-9fcd-0b090001bf86",uiAttribs:{subPatch:0,translate:{x:252,y:-340},notWorkingMsg:null,extendTitle:"",selected:!1},portsIn:[{name:"FPS Limit",value:0},{name:"Reduce FPS loading",value:!1},{name:"Clear",value:!1},{name:"ClearAlpha",value:!1},{name:"Fullscreen Button",value:!1},{name:"Active",links:[{portIn:"Active",portOut:"Result",objIn:"aa218bf3-e713-4977-9fcd-0b090001bf86",objOut:"02542d2c-31af-4500-bfbd-7f77acd5a1d2"}]},{name:"Hires Displays",value:!1}],portsOut:[{name:"trigger"},{name:"width"},{name:"height"}]},{opId:"a75265c2-957b-4719-9d03-7bbf00ace364",objName:"Ops.Gl.Meshes.LinesArray",id:"62fe996a-195e-46c3-ad34-2c7ba1bced89",uiAttribs:{title:"LineArray",subPatch:0,translate:{x:252,y:760},notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"62fe996a-195e-46c3-ad34-2c7ba1bced89",objOut:"24c9895b-9db8-426e-9761-44fed488f39a"}]},{name:"width",value:2},{name:"height",value:2},{name:"Logarithmic",value:!1},{name:"pivot x index",value:0},{name:"pivot x",value:"center"},{name:"pivot y index",value:0},{name:"pivot y",value:"center"},{name:"num columns",links:[{portIn:"num columns",portOut:"result",objIn:"62fe996a-195e-46c3-ad34-2c7ba1bced89",objOut:"fa83f970-e431-45db-82a3-17842825af88"}]},{name:"num rows",links:[{portIn:"num rows",portOut:"result",objIn:"62fe996a-195e-46c3-ad34-2c7ba1bced89",objOut:"8770a98e-6592-4376-b644-2f883560001e"}]},{name:"axis index",value:0},{name:"axis",value:"xy"}],portsOut:[{name:"trigger",value:0},{name:"Point Arrays"}]},{opId:"85ae5cfa-5eca-4dd8-8b30-850ac34f7cd5",objName:"Ops.Gl.Shader.BasicMaterial",id:"f28930e0-762a-4108-a4c5-91aeb89e8e63",uiAttribs:{subPatch:0,translate:{x:252,y:440},notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"f28930e0-762a-4108-a4c5-91aeb89e8e63",objOut:"48b8bdc1-c8a8-4315-a85f-c4a92305ad4a"}]},{name:"r",value:1},{name:"g",value:1},{name:"b",value:1},{name:"a",value:1},{name:"texture",links:[{portIn:"texture",portOut:"texture_out",objIn:"f28930e0-762a-4108-a4c5-91aeb89e8e63",objOut:"cba5b932-a8d3-4841-9de9-276d4a0b21f7"}]},{name:"textureOpacity",value:0},{name:"colorizeTexture",value:!1},{name:"billboard",value:!1},{name:"Opacity TexCoords Transform",value:!1},{name:"preMultiplied alpha",value:!1},{name:"diffuseRepeatX",value:1},{name:"diffuseRepeatY",value:1},{name:"Tex Offset X",value:0},{name:"Tex Offset Y",value:0}],portsOut:[{name:"trigger"},{name:"shader"}]},{opId:"94ffa0de-2926-4d02-842e-a1ad6f5846c2",objName:"Ops.Gl.ShaderEffects.VertexDisplacementMap",id:"24c9895b-9db8-426e-9761-44fed488f39a",uiAttribs:{title:"VertexDisplacement",subPatch:0,translate:{x:252,y:600},notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"24c9895b-9db8-426e-9761-44fed488f39a",objOut:"f28930e0-762a-4108-a4c5-91aeb89e8e63"}]},{name:"texture",links:[{portIn:"texture",portOut:"texture_out",objIn:"24c9895b-9db8-426e-9761-44fed488f39a",objOut:"cba5b932-a8d3-4841-9de9-276d4a0b21f7"}]},{name:"extrude",value:.5},{name:"flip",value:!0},{name:"Ignore Zero Values",value:!1},{name:"invert",value:!1},{name:"offset X",value:0},{name:"offset Y",value:0},{name:"colorize",value:!1},{name:"colorize add",value:.138},{name:"mode index",value:0},{name:"mode",value:"add z"}],portsOut:[{name:"trigger"}]},{opId:"eaf4f7ce-08a3-4d1b-b9f4-ebc0b7b1cde1",objName:"Ops.Gl.Matrix.OrbitControls",id:"64a889f9-2899-46f5-9b64-2ccc2f40f6ce",uiAttribs:{subPatch:0,translate:{x:252,y:180},notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"64a889f9-2899-46f5-9b64-2ccc2f40f6ce",objOut:"3a9aee0f-43d5-4503-8f01-ab9eadf809e1"}]},{name:"min distance",value:.05},{name:"max distance",value:4},{name:"min rot y",value:75},{name:"max rot y",value:105},{name:"initial radius",value:1.74,useVariable:"defaultZoom"},{name:"initial axis y",value:.5}
1,{name:"initial axis x",value:"0.25"},{name:"mul",value:1},{name:"Smoothness",value:1},{name:"Speed X",value:0},{name:"Speed Y",value:0},{name:"Active",value:!0},{name:"Allow Panning",value:!1},{name:"Allow Zooming",value:!1},{name:"Allow Rotation",value:!0},{name:"restricted",value:!0},{name:"Pointerlock",value:!1},{name:"Reset",value:null}],portsOut:[{name:"trigger"},{name:"radius",value:1.74},{name:"Rot X",value:90},{name:"Rot Y",value:90}]},{opId:"50e7f565-0cdb-47ca-912b-87c04e2f00e3",objName:"Ops.Gl.Matrix.Scale",id:"ad35eb10-13fb-4b14-87a3-69059ee63a2e",uiAttribs:{title:"scale",subPatch:0,translate:{x:252,y:320},notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"ad35eb10-13fb-4b14-87a3-69059ee63a2e",objOut:"944b5c64-8a68-4ca3-97b9-3e43f173aee4"}]},{name:"scale",value:2}],portsOut:[{name:"trigger"}]},{opId:"8fb2bb5d-665a-4d0a-8079-12710ae453be",objName:"Ops.Value.Number",id:"8770a98e-6592-4376-b644-2f883560001e",uiAttribs:{title:"Rows",subPatch:0,translate:{x:408,y:680},notWorkingMsg:null,selected:!1},portsIn:[{name:"value",value:150}],portsOut:[{name:"result"}]},{opId:"8fb2bb5d-665a-4d0a-8079-12710ae453be",objName:"Ops.Value.Number",id:"fa83f970-e431-45db-82a3-17842825af88",uiAttribs:{title:"Columns",subPatch:0,translate:{x:324,y:680},notWorkingMsg:null,selected:!1},portsIn:[{name:"value",value:200}],portsOut:[{name:"result"}]},{opId:"7a78e163-d28c-4f70-a6d0-6d952da79f50",objName:"Ops.Gl.Perspective",id:"b957939c-13ad-4154-8acb-04b8d6e1fdca",uiAttribs:{translate:{x:252,y:-100},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"b957939c-13ad-4154-8acb-04b8d6e1fdca",objOut:"30474837-d585-41fd-b221-fb0cc710ebae"}]},{name:"fov y",value:41.31},{name:"frustum near",value:.01},{name:"frustum far",value:1e3},{name:"Auto Aspect Ratio",value:!0},{name:"Aspect Ratio",value:0}],portsOut:[{name:"trigger"}]},{opId:"65ae3c2e-90d7-48fe-93df-30245f0bcf34",objName:"Ops.Anim.Timer",id:"6a51eacd-7810-4ee9-bf5e-b186b23d8c9c",uiAttribs:{translate:{x:1380,y:-220},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Play",value:!0},{name:"Reset",value:0},{name:"Speed",value:.5}],portsOut:[{name:"Time"}]},{opId:"5c04608d-1e42-4e36-be00-1be4a81fc309",objName:"Ops.Gl.TextureEffects.ImageCompose",id:"a62bdc38-f860-4b98-89bf-4343f05166d6",uiAttribs:{title:"image compose",translate:{x:1296,y:-340},subPatch:0,hint:null,warning:null,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger 14",objIn:"a62bdc38-f860-4b98-89bf-4343f05166d6",objOut:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1"}]},{name:"use viewport size",value:!1},{name:"width",value:256},{name:"height",value:256},{name:"filter index",value:1},{name:"filter",value:"linear"},{name:"wrap index",value:0},{name:"wrap",value:"clamp to edge"},{name:"HDR",value:!1},{name:"Background Alpha",value:1}],portsOut:[{name:"trigger"},{name:"texture_out"},{name:"Aspect Ratio",value:1}]},{opId:"54f26f53-f637-44c1-9bfb-a2f2b722e998",objName:"Ops.Gl.TextureEffects.Blur",id:"cebb6bf3-fbc5-4c20-94c8-7c432b54cec8",uiAttribs:{translate:{x:1296,y:0},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"cebb6bf3-fbc5-4c20-94c8-7c432b54cec8",objOut:"d427b54f-21ae-4c8a-8462-4d1ca543faac"}]},{name:"amount",value:10},{name:"direction index",value:0},{name:"direction",value:"both"},{name:"Fast",value:!0},{name:"mask",value:0}],portsOut:[{name:"trigger",value:0}]},{opId:"641934f6-5143-4a6b-b592-08ab26e2cab0",objName:"Ops.Trigger.Sequence",id:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1",uiAttribs:{title:"sequence",translate:{x:252,y:0},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"exe",links:[{portIn:"exe",portOut:"trigger",objIn:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1",objOut:"b957939c-13ad-4154-8acb-04b8d6e1fdca"}]},{name:"exe 0",value:0},{name:"exe 1",value:0},{name:"exe 2",value:0},{name:"exe 3",value:0},{name:"exe 4",value:0},{name:"exe 5",value:0},{name:"exe 6",value:0},{name:"exe 7",value:0},{name:"exe 8",value:0},{name:"exe 9",value:0},{name:"exe 10",value:0},{name:"exe 11",value:0},{name:"exe 12",value:0},{name:"exe 13",value:0},{name:"exe 14",value:0}],portsOut:[{name:"trigger 0"},{name:"trigger 1"},{name:"trigger 2",value:0},{name:"trigger 3"},{name:"trigger 4",value:0},{name:"trigger 5",value:0},{name:"trigger 6",value:0},{name:"trigger 7",value:0},{name:"trigger 8"},{name:"trigger 9",value:0},{name:"trigger 10"},{name:"trigger 11"},{name:"trigger 12"},{name:"trigger 13",value:0},{name:"trigger 14"},{name:"trigger 15"}]},{opId:"5c04608d-1e42-4e36-be00-1be4a81fc309",objName:"Ops.Gl.TextureEffects.ImageCompose",id:"7070ede2-75f8-4197-afce-5306e83fb1cb",uiAttribs:{hint:null,warning:null,translate:{x:1152,y:200},subPatch:0,notWorkingMsg:null,comment:"Displacement Map",selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger 10",objIn:"7070ede2-75f8-4197-afce-5306e83fb1cb",objOut:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1"}]},{name:"use viewport size",value:!1},{name:"width",value:512},{name:"height",value:512},{name:"filter index",value:1},{name:"filter",value:"linear"},{name:"wrap index",value:0},{name:"wrap",value:"clamp to edge"},{name:"HDR",value:!1}
1,{name:"Background Alpha",value:1}],portsOut:[{name:"trigger"},{name:"texture_out"},{name:"Aspect Ratio",value:1}]},{opId:"0b3e04f7-323e-4ac8-8a22-a21e2f36e0e9",objName:"Ops.Gl.Matrix.TransformView",id:"30474837-d585-41fd-b221-fb0cc710ebae",uiAttribs:{translate:{x:252,y:-160},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"30474837-d585-41fd-b221-fb0cc710ebae",objOut:"aa218bf3-e713-4977-9fcd-0b090001bf86"}]},{name:"posX",value:0},{name:"posY",value:0},{name:"posZ",value:0},{name:"scale",value:1},{name:"rotX",value:0},{name:"rotY",value:0},{name:"rotZ",value:0}],portsOut:[{name:"trigger"}]},{opId:"650baeb1-db2d-4781-9af6-ab4e9d4277be",objName:"Ops.Gl.Matrix.Transform",id:"944b5c64-8a68-4ca3-97b9-3e43f173aee4",uiAttribs:{translate:{x:252,y:280},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"944b5c64-8a68-4ca3-97b9-3e43f173aee4",objOut:"64a889f9-2899-46f5-9b64-2ccc2f40f6ce"}]},{name:"posX",value:0},{name:"posY",value:0},{name:"posZ",value:0},{name:"scale",value:1},{name:"rotX",links:[{portIn:"rotX",portOut:"Result",objIn:"944b5c64-8a68-4ca3-97b9-3e43f173aee4",objOut:"ea0a3cc5-e240-47ee-ab8a-d4e60faaf3fa"}]},{name:"rotY",links:[{portIn:"rotY",portOut:"Result",objIn:"944b5c64-8a68-4ca3-97b9-3e43f173aee4",objOut:"a8e65115-fe52-40af-ace1-a359a479ab88"}]},{name:"rotZ",value:0}],portsOut:[{name:"trigger"}]},{opId:"53cb7b1a-56c7-405f-b427-12db78fbfd2f",objName:"Ops.TimeLine.TimeLineControls",id:"6ae8aea5-9f5f-4084-aa0e-42e77de4d2a3",uiAttribs:{translate:{x:-180,y:-540},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[],portsOut:[{name:"Play/Stop",value:!0},{name:"time"}]},{opId:"e450a850-7311-48b5-abfc-07ec1fea3b8e",objName:"Ops.TimeLine.TimeLineLoop",id:"2c6852a1-3f6f-438f-8381-77df80f4c1b1",uiAttribs:{translate:{x:-108,y:-280},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Execute",links:[{portIn:"Execute",portOut:"trigger",objIn:"2c6852a1-3f6f-438f-8381-77df80f4c1b1",objOut:"aa218bf3-e713-4977-9fcd-0b090001bf86"}]},{name:"duration",value:21.3}],portsOut:[{name:"trigger",value:0}]},{opId:"b13d13a2-ab06-4c4c-afa3-5d506ecf327a",objName:"Ops.Patch.Function",id:"37636b2a-f558-465e-9f47-095f1d65aac4",uiAttribs:{title:"fn patchPause",translate:{x:108,y:-620},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Function Name",value:"patchPause"},{name:"trigger",value:0}],portsOut:[{name:"Next"}]},{opId:"97e57613-6a51-41cf-9de5-fe3dbc2c69b2",objName:"Ops.TimeLine.TimeLinePlayer",id:"f5e28f4f-4dd6-410b-a9b1-729ff32a4642",uiAttribs:{translate:{x:-60,y:-440},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Play",links:[{portIn:"Play",portOut:"Next",objIn:"f5e28f4f-4dd6-410b-a9b1-729ff32a4642",objOut:"69d9b9b3-7480-4238-bbf9-2a202c1e3cf3"}]},{name:"Pause",links:[{portIn:"Pause",portOut:"Next",objIn:"f5e28f4f-4dd6-410b-a9b1-729ff32a4642",objOut:"37636b2a-f558-465e-9f47-095f1d65aac4"}]},{name:"rewind",value:0},{name:"Set current time",links:[{portIn:"Set current time",portOut:"time",objIn:"f5e28f4f-4dd6-410b-a9b1-729ff32a4642",objOut:"6ae8aea5-9f5f-4084-aa0e-42e77de4d2a3"}]}],portsOut:[{name:"play trigger",value:0},{name:"pause trigger",value:0},{name:"rewind trigger",value:0},{name:"is Playing",value:!0},{name:"set time (seconds)",value:.004675000003771856},{name:"current time",value:4.946129999996629},{name:"current frame",value:148}]},{opId:"cf3544e4-e392-432b-89fd-fcfb5c974388",objName:"Ops.Trigger.TriggerOnce",id:"5dcf0e2d-2acf-48bd-861c-888099f42dfc",uiAttribs:{translate:{x:-756,y:-360},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Exec",links:[{portIn:"Exec",portOut:"Next",objIn:"5dcf0e2d-2acf-48bd-861c-888099f42dfc",objOut:"e6fe3803-ae51-41bd-b130-5d6d70093c33"}]},{name:"Reset",value:0}],portsOut:[{name:"Next",value:0},{name:"Was Triggered",value:!0}]},{opId:"7ef594f3-4907-47b0-a2d3-9854eda1679d",objName:"Ops.Trigger.TriggerExtender",id:"e6fe3803-ae51-41bd-b130-5d6d70093c33",uiAttribs:{translate:{x:-756,y:-460},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Execute",links:[{portIn:"Execute",portOut:"trigger",objIn:"e6fe3803-ae51-41bd-b130-5d6d70093c33",objOut:"aa218bf3-e713-4977-9fcd-0b090001bf86"}]}],portsOut:[{name:"Next"}]},{opId:"b13d13a2-ab06-4c4c-afa3-5d506ecf327a",objName:"Ops.Patch.Function",id:"69d9b9b3-7480-4238-bbf9-2a202c1e3cf3",uiAttribs:{title:"fn patchResume",translate:{x:-60,y:-620},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Function Name",value:"patchResume"},{name:"trigger",value:null}],portsOut:[{name:"Next"}]},{opId:"31f65abe-9d6c-4ba6-a291-ef2de41d2087",objName:"Ops.Boolean.TriggerBoolean",id:"02542d2c-31af-4500-bfbd-7f77acd5a1d2",uiAttribs:{translate:{x:132,y:-540},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"True",links:[{portIn:"True",portOut:"Next",objIn:"02542d2c-31af-4500-bfbd-7f77acd5a1d2",objOut:"69d9b9b3-7480-4238-bbf9-2a202c1e3cf3"}]},{name:"false",links:[{portIn:"false",portOut:"Next",objIn:"02542d2c-31af-4500-bfbd-7f77acd5a1d2",objOut:"37636b2a-f558-465e-9f47-095f1d65aac4"}]}],portsOut:[{name:"Result"}]},{opId:"9de0c04f-666b-47cd-9722-a8cf36ab4720",objName:"Ops.Ui.Comment",id:"cc660b14-ca94-4f9d-8877-4764615ea525",uiAttribs:{0:"t",1:"i",2:"t",3:"l",4:"e",title:"Timeline",comment_title:"Timeline",comment_text:" ",translate:{x:-432,y:-720},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"title",value:"Timeline"},{name:"text",value:" "}],portsOut:[]},{opId:"5c04608d-1e42-4e36-be00-1be4a81fc309",objName:"Ops.Gl.TextureEffects.ImageCompose",id:"cba5b932-a8d3-4841-9de9-276d4a0b21f7",uiAttribs:{title:"IC Final",hint:null,warning:null,translate:{x:864,y:180},subPatch:0,notWorkingMsg:null,comment:"Final IC for \nopacity control",selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger 3",objIn:"cba5b932-a8d3-4841-9de9-276d4a0b21f7",objOut:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1"}]},{name:"use viewport size",value:!1},{name:"width",value:512},{name:"height",value:512},{name:"filter index",value:1},{name:"filter",value:"linear"},{name:"wrap index",value:0},{name:"wrap",value:"repeat"},{name:"HDR",value:!1}
1,{name:"Background Alpha",value:1}],portsOut:[{name:"trigger"},{name:"texture_out"},{name:"Aspect Ratio",value:1}]},{opId:"f94b5136-61fd-4558-8348-e7c8db5a6348",objName:"Ops.Gl.TextureEffects.DrawImage_v2",id:"46901a99-06a6-453b-bf58-74d87c2d8990",uiAttribs:{translate:{x:864,y:340},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"46901a99-06a6-453b-bf58-74d87c2d8990",objOut:"cba5b932-a8d3-4841-9de9-276d4a0b21f7"}]},{name:"blendMode index",value:0},{name:"blendMode",value:"normal"},{name:"amount",links:[{portIn:"amount",portOut:"result",objIn:"46901a99-06a6-453b-bf58-74d87c2d8990",objOut:"44681738-ef99-46a1-9cf8-ee2d1b46ae89"},{portIn:"amount",portOut:"result",objIn:"46901a99-06a6-453b-bf58-74d87c2d8990",objOut:"12bbafe4-d6a6-4770-b1cc-89876b99b200"}]},{name:"image",links:[{portIn:"image",portOut:"texture_out",objIn:"46901a99-06a6-453b-bf58-74d87c2d8990",objOut:"7070ede2-75f8-4197-afce-5306e83fb1cb"}]},{name:"removeAlphaSrc",value:!1},{name:"imageAlpha",value:0},{name:"alphaSrc index",value:0},{name:"alphaSrc",value:"alpha channel"},{name:"invert alpha channel",value:!1},{name:"Aspect Ratio",value:!1},{name:"Stretch Axis index",value:0},{name:"Stretch Axis",value:"X"},{name:"Position",value:0},{name:"Crop",value:!1},{name:"flip x",value:!1},{name:"flip y",value:!1},{name:"Transform",value:!1},{name:"Scale X",value:1},{name:"Scale Y",value:1},{name:"Position X",value:0},{name:"Position Y",value:0},{name:"Rotation",value:0},{name:"Clip Repeat",value:!1}],portsOut:[{name:"trigger",value:0}]},{opId:"b13d13a2-ab06-4c4c-afa3-5d506ecf327a",objName:"Ops.Patch.Function",id:"d0cc0465-aebb-4e67-ab5e-5d01e461199d",uiAttribs:{title:"fn patchExit",translate:{x:720,y:-640},subPatch:0,notWorkingMsg:null,comment:"to fade out patch ",selected:!1},portsIn:[{name:"Function Name",value:"patchExit"},{name:"trigger",value:null}],portsOut:[{name:"Next"}]},{opId:"5b244b6e-c505-4743-b2cc-8119ef720028",objName:"Ops.Anim.SimpleAnim",id:"44681738-ef99-46a1-9cf8-ee2d1b46ae89",uiAttribs:{title:"SimpleAnim Fadeout",translate:{x:720,y:-20},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"exe",links:[{portIn:"exe",portOut:"Next",objIn:"44681738-ef99-46a1-9cf8-ee2d1b46ae89",objOut:"dfff3e69-ab2b-4801-9625-b1e419f41a15"}]},{name:"reset",links:[{portIn:"reset",portOut:"Next",objIn:"44681738-ef99-46a1-9cf8-ee2d1b46ae89",objOut:"41e0888b-22ef-4dd2-8f99-45f4af386159"}]},{name:"rewind",value:0},{name:"start",value:1},{name:"end",value:0},{name:"duration",value:.7},{name:"loop",value:!1},{name:"Wait for Reset",value:!0},{name:"easing",value:"Cubic In Out"}],portsOut:[{name:"Next",value:0},{name:"result"},{name:"finished",value:!0},{name:"Finished Trigger",value:0}]},{opId:"cf3544e4-e392-432b-89fd-fcfb5c974388",objName:"Ops.Trigger.TriggerOnce",id:"41e0888b-22ef-4dd2-8f99-45f4af386159",uiAttribs:{translate:{x:732,y:-160},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Exec",links:[{portIn:"Exec",portOut:"Next",objIn:"41e0888b-22ef-4dd2-8f99-45f4af386159",objOut:"d0cc0465-aebb-4e67-ab5e-5d01e461199d"}]},{name:"Reset",links:[{portIn:"Reset",portOut:"Next",objIn:"41e0888b-22ef-4dd2-8f99-45f4af386159",objOut:"f29e7b10-fb41-4d34-84e2-0be2ea1c731f"}]}],portsOut:[{name:"Next"},{name:"Was Triggered",value:!1}]},{opId:"7ef594f3-4907-47b0-a2d3-9854eda1679d",objName:"Ops.Trigger.TriggerExtender",id:"dfff3e69-ab2b-4801-9625-b1e419f41a15",uiAttribs:{translate:{x:852,y:-200},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Execute",links:[{portIn:"Execute",portOut:"trigger",objIn:"dfff3e69-ab2b-4801-9625-b1e419f41a15",objOut:"aa218bf3-e713-4977-9fcd-0b090001bf86"}]}],portsOut:[{name:"Next"}]},{opId:"b13d13a2-ab06-4c4c-afa3-5d506ecf327a",objName:"Ops.Patch.Function",id:"f29e7b10-fb41-4d34-84e2-0be2ea1c731f",uiAttribs:{title:"fn patchEnter",translate:{x:888,y:-480},subPatch:0,notWorkingMsg:null,comment:"to fade out patch ",selected:!1},portsIn:[{name:"Function Name",value:"patchEnter"},{name:"trigger",value:null}],portsOut:[{name:"Next"}]},{opId:"5b244b6e-c505-4743-b2cc-8119ef720028",objName:"Ops.Anim.SimpleAnim",id:"12bbafe4-d6a6-4770-b1cc-89876b99b200",uiAttribs:{title:"SimpleAnim FadeIn",translate:{x:888,y:-20},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"exe",links:[{portIn:"exe",portOut:"Next",objIn:"12bbafe4-d6a6-4770-b1cc-89876b99b200",objOut:"dfff3e69-ab2b-4801-9625-b1e419f41a15"}]},{name:"reset",links:[{portIn:"reset",portOut:"Next",objIn:"12bbafe4-d6a6-4770-b1cc-89876b99b200",objOut:"1cf57628-59d7-4ec6-8ea2-8691046c580b"}]},{name:"rewind",value:0},{name:"start",value:0},{name:"end",value:1},{name:"duration",value:.7},{name:"loop",value:!1},{name:"Wait for Reset",value:!0},{name:"easing",value:"Cubic In Out"}],portsOut:[{name:"Next",value:0},{name:"result"},{name:"finished",value:!0},{name:"Finished Trigger",value:0}]},{opId:"cf3544e4-e392-432b-89fd-fcfb5c974388",objName:"Ops.Trigger.TriggerOnce",id:"1cf57628-59d7-4ec6-8ea2-8691046c580b",uiAttribs:{translate:{x:900,y:-160},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Exec",links:[{portIn:"Exec",portOut:"Next",objIn:"1cf57628-59d7-4ec6-8ea2-8691046c580b",objOut:"f29e7b10-fb41-4d34-84e2-0be2ea1c731f"}]},{name:"Reset",links:[{portIn:"Reset",portOut:"Next",objIn:"1cf57628-59d7-4ec6-8ea2-8691046c580b",objOut:"d0cc0465-aebb-4e67-ab5e-5d01e461199d"}]}],portsOut:[{name:"Next"},{name:"Was Triggered",value:!0}]},{opId:"b8a37747-1e84-4665-b1cc-29256d55cc7c",objName:"Ops.Gl.TextureEffects.Stripes_v2",id:"d427b54f
1-21ae-4c8a-8462-4d1ca543faac",uiAttribs:{translate:{x:1296,y:-140},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Render",links:[{portIn:"Render",portOut:"trigger",objIn:"d427b54f-21ae-4c8a-8462-4d1ca543faac",objOut:"a62bdc38-f860-4b98-89bf-4343f05166d6"}]},{name:"Blend Mode index",value:0},{name:"Blend Mode",value:"normal"},{name:"Amount",value:1},{name:"Num",value:.4},{name:"Width",links:[{portIn:"Width",portOut:"result",objIn:"d427b54f-21ae-4c8a-8462-4d1ca543faac",objOut:"66bce52c-20b0-4544-be7e-3fce89f7bd52"}]},{name:"Rotate",value:0},{name:"Offset",links:[{portIn:"Offset",portOut:"Time",objIn:"d427b54f-21ae-4c8a-8462-4d1ca543faac",objOut:"6a51eacd-7810-4ee9-bf5e-b186b23d8c9c"}]},{name:"Gradients",value:!1},{name:"Circular",value:!1},{name:"r",value:1},{name:"g",value:1},{name:"b",value:1}],portsOut:[{name:"trigger"}]},{opId:"9ba52457-5f0d-4b20-a97c-4ec4856b8e29",objName:"Ops.Gl.Matrix.ScaleXYZ",id:"48b8bdc1-c8a8-4315-a85f-c4a92305ad4a",uiAttribs:{translate:{x:252,y:380},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"48b8bdc1-c8a8-4315-a85f-c4a92305ad4a",objOut:"ad35eb10-13fb-4b14-87a3-69059ee63a2e"}]},{name:"x",value:1},{name:"y",value:1,animated:!0,anim:{keys:[{t:0,v:10,e:7},{t:3,v:1,e:7},{t:8.612745000000345,v:1,e:0},{t:8.612745000000345,v:1,e:0},{t:8.612745000000345,v:1,e:0},{t:19.333333333333332,v:1,e:7},{t:22.333333333333332,v:10,e:7}],loop:!1}},{name:"z",value:1}],portsOut:[{name:"trigger"}]},{opId:"b0190d08-82f6-45b2-bc0c-b70a3257ea92",objName:"Ops.Vars.VarSetNumber",id:"57aef37f-3bd4-4e78-8b53-f963ed7bc540",uiAttribs:{title:"set #defaultZoom",translate:{x:444,y:-420},subPatch:0,notWorkingMsg:null,comment:"zoom var for custom settings in js\n",selected:!1},portsIn:[{name:"Variable",value:"defaultZoom"},{name:"Value",links:[{portIn:"Value",portOut:"Out Value",objIn:"57aef37f-3bd4-4e78-8b53-f963ed7bc540",objOut:"a1d4274d-1bca-4cf4-bace-ea32add01e85"},{portIn:"Value",portOut:"Out Value",objIn:"57aef37f-3bd4-4e78-8b53-f963ed7bc540",objOut:"1c0425ea-37bd-43b2-be77-74cb793e9b26"}]}],portsOut:[]},{opId:"b0190d08-82f6-45b2-bc0c-b70a3257ea92",objName:"Ops.Vars.VarSetNumber",id:"4d400c1c-1c62-43ff-9a45-fdc2eddfd1ca",uiAttribs:{title:"set #canvasWidth",translate:{x:444,y:-620},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Variable",value:"canvasWidth"},{name:"Value",links:[{portIn:"Value",portOut:"result",objIn:"4d400c1c-1c62-43ff-9a45-fdc2eddfd1ca",objOut:"c1c08624-a595-479a-96bd-bd2c2cb8035f"}]}],portsOut:[]},{opId:"b0190d08-82f6-45b2-bc0c-b70a3257ea92",objName:"Ops.Vars.VarSetNumber",id:"ccbc244b-5c03-48ce-8359-0ce54396a7c7",uiAttribs:{title:"set #canvasHeight",translate:{x:444,y:-500},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Variable",value:"canvasHeight"},{name:"Value",links:[{portIn:"Value",portOut:"result",objIn:"ccbc244b-5c03-48ce-8359-0ce54396a7c7",objOut:"3f982033-2c1f-4e5c-b6a7-23cfd95fe3b0"}]}],portsOut:[]},{opId:"8fb2bb5d-665a-4d0a-8079-12710ae453be",objName:"Ops.Value.Number",id:"e9b7e35d-9cf1-4cd5-801e-5d47ca1ba327",uiAttribs:{title:"viewport height",translate:{x:2028,y:-220},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"value",value:712,useVariable:"canvasHeight",anim:{keys:[{t:20.301000000006752,v:0,e:0}],loop:!1}}],portsOut:[{name:"result"}]},{opId:"2617b407-60a0-4ff6-b4a7-18136cfa7817",objName:"Ops.Math.MapRange",id:"c11e4970-88aa-46b0-952f-5f8841dfe5bc",uiAttribs:{title:"MapRange Y",translate:{x:2004,y:-40},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"value",links:[{portIn:"value",portOut:"y",objIn:"c11e4970-88aa-46b0-952f-5f8841dfe5bc",objOut:"115e2807-aa6c-46ca-864a-7b6bfacfa493"},{portIn:"value",portOut:"result",objIn:"c11e4970-88aa-46b0-952f-5f8841dfe5bc",objOut:"adb5f316-4f52-436b-852e-07a620953ed7"}]},{name:"old min",value:0},{name:"old max",links:[{portIn:"old max",portOut:"result",objIn:"c11e4970-88aa-46b0-952f-5f8841dfe5bc",objOut:"e9b7e35d-9cf1-4cd5-801e-5d47ca1ba327"}]},{name:"new min",value:-30},{name:"new max",value:30},{name:"Easing index",value:0},{name:"Easing",value:"Smootherstep"}],portsOut:[{name:"result"}]},{opId:"8fb2bb5d-665a-4d0a-8079-12710ae453be",objName:"Ops.Value.Number",id:"19da1f17-655a-4afc-9797-7f5519e02d3f",uiAttribs:{title:"viewport width",translate:{x:1896,y:-240},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"value",value:645,useVariable:"canvasWidth"}],portsOut:[{name:"result"}]},{opId:"2617b407-60a0-4ff6-b4a7-18136cfa7817",objName:"Ops.Math.MapRange",id:"f42b7ab8-6f22-42c6-861f-f342638c4027",uiAttribs:{title:"MapRange X",translate:{x:1872,y:-40},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"value",links:[{portIn:"value",portOut:"x",objIn:"f42b7ab8-6f22-42c6-861f-f342638c4027",objOut:"115e2807-aa6c-46ca-864a-7b6bfacfa493"},{portIn:"value",portOut:"result",objIn:"f42b7ab8-6f22-42c6-861f-f342638c4027",objOut:"7cc9c5d3-7689-4555-88e4-4f704cb2a4be"}]},{name:"old min",value:0},{name:"old max",links:[{portIn:"old max",portOut:"result",objIn:"f42b7ab8-6f22-42c6-861f-f342638c4027",objOut:"19da1f17-655a-4afc-9797-7f5519e02d3f"}]},{name:"new min",value:-30},{name:"new max",value:30},{name:"Easing index",value:0},{name:"Easing",value:"Smootherstep"}],portsOut:[{name:"result"}]},{opId:"eb4aa728-d0ee-4c53-833d-d0b086b11250",objName:"Ops.Math.ApproachInterpolation",id:"ea0a3cc5-e240-47ee-ab8a-d4e60faaf3fa",uiAttribs:{translate:{x:1908,y:100},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Update",links:[{portIn:"Update",portOut:"Next",objIn:"ea0a3cc5-e240-47ee-ab8a-d4e60faaf3fa",objOut:"831b1714-4b20-402e-a64f-48f17cc0dd3e"}]},{name:"Value",links:[{portIn:"Value",portOut:"result",objIn:"ea0a3cc5-e240-47ee-ab8a-d4e60faaf3fa",objOut:"c11e4970-88aa-46b0-952f-5f8841dfe5bc"}]},{name:"Divisor",value:20}],portsOut:[{name:"Next",value:0},{name:"Result"}]},{opId:"eb4aa728-d0ee-4c53-833d-d0b086b11250",objName:"Ops.Math.ApproachInterpolation",id:"a8e6511
15-fe52-40af-ace1-a359a479ab88",uiAttribs:{translate:{x:1740,y:100},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Update",links:[{portIn:"Update",portOut:"Next",objIn:"a8e65115-fe52-40af-ace1-a359a479ab88",objOut:"831b1714-4b20-402e-a64f-48f17cc0dd3e"}]},{name:"Value",links:[{portIn:"Value",portOut:"result",objIn:"a8e65115-fe52-40af-ace1-a359a479ab88",objOut:"f42b7ab8-6f22-42c6-861f-f342638c4027"}]},{name:"Divisor",value:30}],portsOut:[{name:"Next",value:0},{name:"Result"}]},{opId:"0bf51f3e-3161-4cc5-aecf-6e9160089fd2",objName:"Ops.Devices.Mouse.Mouse",id:"115e2807-aa6c-46ca-864a-7b6bfacfa493",uiAttribs:{translate:{x:1668,y:-180},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"relative",value:!1},{name:"normalize",value:!1},{name:"Active",value:!0},{name:"smooth",value:!1},{name:"smoothSpeed",value:20},{name:"Area index",value:0},{name:"Area",value:"Canvas"},{name:"multiply",value:1},{name:"flip y",value:!1},{name:"right click prevent default",value:!0}],portsOut:[{name:"x"},{name:"y"},{name:"button down",value:!1},{name:"click",value:0},{name:"Button Up",value:0},{name:"click right",value:0},{name:"mouseOver",value:!0},{name:"button",value:0}]},{opId:"7ef594f3-4907-47b0-a2d3-9854eda1679d",objName:"Ops.Trigger.TriggerExtender",id:"831b1714-4b20-402e-a64f-48f17cc0dd3e",uiAttribs:{translate:{x:1560,y:60},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Execute",links:[{portIn:"Execute",portOut:"trigger 12",objIn:"831b1714-4b20-402e-a64f-48f17cc0dd3e",objOut:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1"}]}],portsOut:[{name:"Next"}]},{opId:"5c04608d-1e42-4e36-be00-1be4a81fc309",objName:"Ops.Gl.TextureEffects.ImageCompose",id:"c0a1a214-43b0-4ee9-851f-90a7f01e1466",uiAttribs:{title:"IC FINAL FINAL",translate:{x:588,y:240},subPatch:0,notWorkingMsg:null,hint:"texture dimensions not power of two! - texture filtering will not work.",warning:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger 8",objIn:"c0a1a214-43b0-4ee9-851f-90a7f01e1466",objOut:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1"}]},{name:"use viewport size",value:!1},{name:"width",value:645,useVariable:"canvasWidth"},{name:"height",value:712,useVariable:"canvasHeight"},{name:"filter index",value:1},{name:"filter",value:"linear"},{name:"wrap index",value:0},{name:"wrap",value:"repeat"},{name:"HDR",value:!1},{name:"Background Alpha",value:1}],portsOut:[{name:"trigger"},{name:"texture_out"},{name:"Aspect Ratio",value:.9058988764044944}]},{opId:"f94b5136-61fd-4558-8348-e7c8db5a6348",objName:"Ops.Gl.TextureEffects.DrawImage_v2",id:"30eecbee-82d2-4e16-91f9-554a9f508105",uiAttribs:{translate:{x:588,y:540},subPatch:0,notWorkingMsg:null,extendTitle:"light",selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"30eecbee-82d2-4e16-91f9-554a9f508105",objOut:"fe107d41-d6ab-4221-a65f-a287a81ee616"}]},{name:"blendMode index",value:0},{name:"blendMode",value:"lighten"},{name:"amount",value:2},{name:"image",links:[{portIn:"image",portOut:"texture",objIn:"30eecbee-82d2-4e16-91f9-554a9f508105",objOut:"3a9aee0f-43d5-4503-8f01-ab9eadf809e1"}]},{name:"removeAlphaSrc",value:!1},{name:"imageAlpha",value:0},{name:"alphaSrc index",value:0},{name:"alphaSrc",value:"alpha channel"},{name:"invert alpha channel",value:!1},{name:"Aspect Ratio",value:!1},{name:"Stretch Axis index",value:0},{name:"Stretch Axis",value:"X"},{name:"Position",value:0},{name:"Crop",value:!1},{name:"flip x",value:!1},{name:"flip y",value:!1},{name:"Transform",value:!1},{name:"Scale X",value:1},{name:"Scale Y",value:1},{name:"Position X",value:0},{name:"Position Y",value:0},{name:"Rotation",value:0},{name:"Clip Repeat",value:!1}],portsOut:[{name:"trigger"}]},{opId:"d01fa820-396c-4cb5-9d78-6b14762852af",objName:"Ops.Gl.Render2Texture",id:"3a9aee0f-43d5-4503-8f01-ab9eadf809e1",uiAttribs:{translate:{x:252,y:80},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger 0",objIn:"3a9aee0f-43d5-4503-8f01-ab9eadf809e1",objOut:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1"}]},{name:"use viewport size",value:!1},{name:"texture width",value:645,useVariable:"canvasWidth"},{name:"texture height",value:712,useVariable:"canvasHeight"},{name:"Auto Aspect",value:!1},{name:"filter index",value:1},{name:"filter",value:"linear"},{name:"MSAA index",value:0},{name:"MSAA",value:"none"},{name:"HDR",value:!1},{name:"Depth",value:!0},{name:"Clear",value:!0}],portsOut:[{name:"trigger"},{name:"texture"},{name:"textureDepth"}]},{opId:"255bd15b-cc91-4a12-9b4e-53c710cbb282",objName:"Ops.Gl.Meshes.FullscreenRectangle",id:"16503bb4-6611-41d0-a8b9-f244f56b197a",uiAttribs:{translate:{x:2220,y:340},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger 15",objIn:"16503bb4-6611-41d0-a8b9-f244f56b197a",objOut:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1"}]},{name:"Center in Canvas",value:!1},{name:"Flip Y",value:!1},{name:"Flip X",value:!1},{name:"Texture",links:[{portIn:"Texture",portOut:"texture_out",objIn:"16503bb4-6611-41d0-a8b9-f244f56b197a",objOut:"c0a1a214-43b0-4ee9-851f-90a7f01e1466"}]}],portsOut:[{name:"trigger",value:0}]},{opId:"7188ff85-e73c-4a3b-8237-49508a00d63a",objName:"Ops.Gl.TextureEffects.Invert",id:"79cd731d-0aed-4714-851b-0001ff11b132",uiAttribs:{translate:{x:588,y:820},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"79cd731d-0aed-4714-851b-0001ff11b132",objOut:"30eecbee-82d2-4e16-91f9-554a9f508105"}]},{name:"Blend Mode index",value:0},{name:"Blend Mode",value:"normal"}
1,{name:"Amount",links:[{portIn:"Amount",portOut:"result",objIn:"79cd731d-0aed-4714-851b-0001ff11b132",objOut:"93d711dd-bc75-452d-b77c-476e0c9f0da2"}]}],portsOut:[{name:"trigger",value:0}]},{opId:"e8196d70-d0a6-470a-9448-a7ac0c0e956e",objName:"Ops.Trigger.IfEqualsThen",id:"46aa266a-6c40-4826-b61b-badcb019974a",uiAttribs:{title:"if DarkMode",translate:{x:780,y:740},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"exe",links:[{portIn:"exe",portOut:"trigger",objIn:"46aa266a-6c40-4826-b61b-badcb019974a",objOut:"30eecbee-82d2-4e16-91f9-554a9f508105"}]},{name:"Value 1",value:0,useVariable:"isDarkMode"},{name:"Value 2",links:[{portIn:"Value 2",portOut:"Result",objIn:"46aa266a-6c40-4826-b61b-badcb019974a",objOut:"c19bbf4c-fb9d-4c93-9e11-be9695800bca"}]}],portsOut:[{name:"then"},{name:"else"}]},{opId:"b0190d08-82f6-45b2-bc0c-b70a3257ea92",objName:"Ops.Vars.VarSetNumber",id:"dfb0e54e-d3ba-42e1-8310-1cc893116e00",uiAttribs:{title:"set #isDarkMode",translate:{x:780,y:640},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Variable",value:"isDarkMode"},{name:"Value",value:0}],portsOut:[]},{opId:"8fb2bb5d-665a-4d0a-8079-12710ae453be",objName:"Ops.Value.Number",id:"46f6ba24-3e9f-41d7-a782-d63f34244639",uiAttribs:{translate:{x:780,y:860},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"value",links:[{portIn:"value",portOut:"number",objIn:"46f6ba24-3e9f-41d7-a782-d63f34244639",objOut:"5a5cc461-7bb9-487d-bfee-c1dc15d94e32"}]}],portsOut:[{name:"result"}]},{opId:"43ed1123-1312-4383-b843-27b8ec540c09",objName:"Ops.Trigger.TriggerNumber",id:"5a5cc461-7bb9-487d-bfee-c1dc15d94e32",uiAttribs:{translate:{x:780,y:820},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"0",links:[{portIn:"0",portOut:"then",objIn:"5a5cc461-7bb9-487d-bfee-c1dc15d94e32",objOut:"46aa266a-6c40-4826-b61b-badcb019974a"}]},{name:"1",links:[{portIn:"1",portOut:"else",objIn:"5a5cc461-7bb9-487d-bfee-c1dc15d94e32",objOut:"46aa266a-6c40-4826-b61b-badcb019974a"}]},{name:"2",value:0},{name:"3",value:0},{name:"4",value:0},{name:"5",value:0},{name:"6",value:0},{name:"7",value:0}],portsOut:[{name:"number"}]},{opId:"e5b0b016-9663-4c9d-9365-f54ae3c5fbb6",objName:"Ops.Anim.AnimNumber",id:"93d711dd-bc75-452d-b77c-476e0c9f0da2",uiAttribs:{translate:{x:780,y:900},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"exe",links:[{portIn:"exe",portOut:"trigger",objIn:"93d711dd-bc75-452d-b77c-476e0c9f0da2",objOut:"30eecbee-82d2-4e16-91f9-554a9f508105"}]},{name:"Value",links:[{portIn:"Value",portOut:"result",objIn:"93d711dd-bc75-452d-b77c-476e0c9f0da2",objOut:"46f6ba24-3e9f-41d7-a782-d63f34244639"}]},{name:"duration",value:0},{name:"easing",value:"Cubic In Out"}],portsOut:[{name:"Next",value:0},{name:"result"},{name:"Finished",value:0}]},{opId:"c0acfc80-16f9-4f17-978d-bad650f3ed1c",objName:"Ops.Gl.TextureEffects.Color",id:"fe107d41-d6ab-4221-a65f-a287a81ee616",uiAttribs:{translate:{x:588,y:340},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"fe107d41-d6ab-4221-a65f-a287a81ee616",objOut:"c0a1a214-43b0-4ee9-851f-90a7f01e1466"}]},{name:"Blend Mode index",value:0},{name:"Blend Mode",value:"normal"},{name:"Amount",value:1},{name:"Mask",value:0},{name:"Mask Invert",value:!1},{name:"r",value:.07058823529411765,useVariable:"bgColor"},{name:"g",value:.07058823529411765,useVariable:"bgColor"},{name:"b",value:.07058823529411765,useVariable:"bgColor"}],portsOut:[{name:"trigger"}]},{opId:"b0190d08-82f6-45b2-bc0c-b70a3257ea92",objName:"Ops.Vars.VarSetNumber",id:"c392611a-bbb3-43a3-bfcd-d98d12313b63",uiAttribs:{title:"set #bgColor",translate:{x:924,y:700},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Variable",value:"bgColor"},{name:"Value",links:[{portIn:"Value",portOut:"result",objIn:"c392611a-bbb3-43a3-bfcd-d98d12313b63",objOut:"529f0275-311e-46d4-a229-d1fe4bfceb59"}]}],portsOut:[]},{opId:"9989b1c0-1073-4d5f-bfa0-36dd98b66e27",objName:"Ops.Trigger.SetNumberOnTrigger",id:"84d5d791-343f-411e-8a74-fbac8ae304a5",uiAttribs:{translate:{x:816,y:480},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Set",links:[{portIn:"Set",portOut:"then",objIn:"84d5d791-343f-411e-8a74-fbac8ae304a5",objOut:"46aa266a-6c40-4826-b61b-badcb019974a"}]},{name:"Number",value:.07058823529411765}],portsOut:[{name:"Next",value:0},{name:"Out Value"}]}
1,{opId:"9989b1c0-1073-4d5f-bfa0-36dd98b66e27",objName:"Ops.Trigger.SetNumberOnTrigger",id:"c7333bbe-0d5d-43eb-9ac9-258d5cc2d0e7",uiAttribs:{translate:{x:984,y:480},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Set",links:[{portIn:"Set",portOut:"else",objIn:"c7333bbe-0d5d-43eb-9ac9-258d5cc2d0e7",objOut:"46aa266a-6c40-4826-b61b-badcb019974a"}]},{name:"Number",value:0}],portsOut:[{name:"Next",value:0},{name:"Out Value"}]},{opId:"8fb2bb5d-665a-4d0a-8079-12710ae453be",objName:"Ops.Value.Number",id:"b10d4fdc-1d65-49ce-9831-cd25fd895beb",uiAttribs:{translate:{x:924,y:560},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"value",links:[{portIn:"value",portOut:"Out Value",objIn:"b10d4fdc-1d65-49ce-9831-cd25fd895beb",objOut:"84d5d791-343f-411e-8a74-fbac8ae304a5"},{portIn:"value",portOut:"Out Value",objIn:"b10d4fdc-1d65-49ce-9831-cd25fd895beb",objOut:"c7333bbe-0d5d-43eb-9ac9-258d5cc2d0e7"}]}],portsOut:[{name:"result"}]},{opId:"e5b0b016-9663-4c9d-9365-f54ae3c5fbb6",objName:"Ops.Anim.AnimNumber",id:"529f0275-311e-46d4-a229-d1fe4bfceb59",uiAttribs:{translate:{x:912,y:620},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"exe",links:[{portIn:"exe",portOut:"trigger",objIn:"529f0275-311e-46d4-a229-d1fe4bfceb59",objOut:"30eecbee-82d2-4e16-91f9-554a9f508105"}]},{name:"Value",links:[{portIn:"Value",portOut:"result",objIn:"529f0275-311e-46d4-a229-d1fe4bfceb59",objOut:"b10d4fdc-1d65-49ce-9831-cd25fd895beb"}]},{name:"duration",value:.7},{name:"easing",value:"Cubic In Out"}],portsOut:[{name:"Next",value:0},{name:"result"},{name:"Finished",value:0}]},{opId:"9989b1c0-1073-4d5f-bfa0-36dd98b66e27",objName:"Ops.Trigger.SetNumberOnTrigger",id:"dfc05e70-ce79-4738-b3ea-472b31d88405",uiAttribs:{title:"If Dark",translate:{x:1056,y:-140},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Set",links:[{portIn:"Set",portOut:"then",objIn:"dfc05e70-ce79-4738-b3ea-472b31d88405",objOut:"46aa266a-6c40-4826-b61b-badcb019974a"}]},{name:"Number",value:.995}],portsOut:[{name:"Next",value:0},{name:"Out Value"}]},{opId:"9989b1c0-1073-4d5f-bfa0-36dd98b66e27",objName:"Ops.Trigger.SetNumberOnTrigger",id:"bf04530a-d10d-41b4-80f1-2e8b30db1783",uiAttribs:{title:"!If Dark",translate:{x:1068,y:-80},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Set",links:[{portIn:"Set",portOut:"else",objIn:"bf04530a-d10d-41b4-80f1-2e8b30db1783",objOut:"46aa266a-6c40-4826-b61b-badcb019974a"}]},{name:"Number",value:.99}],portsOut:[{name:"Next",value:0},{name:"Out Value"}]},{opId:"8fb2bb5d-665a-4d0a-8079-12710ae453be",objName:"Ops.Value.Number",id:"66bce52c-20b0-4544-be7e-3fce89f7bd52",uiAttribs:{title:"Out Value",translate:{x:1344,y:-260},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"value",links:[{portIn:"value",portOut:"Out Value",objIn:"66bce52c-20b0-4544-be7e-3fce89f7bd52",objOut:"bf04530a-d10d-41b4-80f1-2e8b30db1783"},{portIn:"value",portOut:"Out Value",objIn:"66bce52c-20b0-4544-be7e-3fce89f7bd52",objOut:"dfc05e70-ce79-4738-b3ea-472b31d88405"}]}],portsOut:[{name:"result"}]},{opId:"86fcfd8c-038d-4b91-9820-a08114f6b7eb",objName:"Ops.Math.Divide",id:"7cc9c5d3-7689-4555-88e4-4f704cb2a4be",uiAttribs:{translate:{x:1824,y:-180},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"number1",links:[{portIn:"number1",portOut:"result",objIn:"7cc9c5d3-7689-4555-88e4-4f704cb2a4be",objOut:"19da1f17-655a-4afc-9797-7f5519e02d3f"}]},{name:"number2",value:2}],portsOut:[{name:"result"}]},{opId:"86fcfd8c-038d-4b91-9820-a08114f6b7eb",objName:"Ops.Math.Divide",id:"adb5f316-4f52-436b-852e-07a620953ed7",uiAttribs:{translate:{x:1956,y:-160},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"number1",links:[{portIn:"number1",portOut:"result",objIn:"adb5f316-4f52-436b-852e-07a620953ed7",objOut:"e9b7e35d-9cf1-4cd5-801e-5d47ca1ba327"}]},{name:"number2",value:3}],portsOut:[{name:"result"}]},{opId:"04fd113f-ade1-43fb-99fa-f8825f8814c0",objName:"Ops.Math.Compare.LessThan",id:"a4a3a783-9120-4ef3-bac1-976dc246e13e",uiAttribs:{translate:{x:-564,y:220},subPatch:0,notWorkingMsg:null,comment:"if less than \n520px (mobile)",selected:!1},portsIn:[{name:"number1",value:645,useVariable:"canvasWidth"},{name:"number2",value:520}],portsOut:[{name:"result"}]},{opId:"99892fda-8821-4660-ac57-3103d1546924",objName:"Ops.Boolean.IfTrueThen",id:"450129ff-1657-47eb-86f5-84eb86876478",uiAttribs:{translate:{x:-372,y:280},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"exe",links:[{portIn:"exe",portOut:"Next",objIn:"450129ff-1657-47eb-86f5-84eb86876478",objOut:"3abda99f-62c5-4d75-8c56-6440b9f12328"}]},{name:"boolean",links:[{portIn:"boolean",portOut:"result",objIn:"450129ff-1657-47eb-86f5-84eb86876478",objOut:"a4a3a783-9120-4ef3-bac1-976dc246e13e"}]}],portsOut:[{name:"then"},{name:"else"}]},{opId:"7ef594f3-4907-47b0-a2d3-9854eda1679d",objName:"Ops.Trigger.TriggerExtender",id:"3abda99f-62c5-4d75-8c56-6440b9f12328",uiAttribs:{translate:{x:-372,y:220},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Execute",links:[{portIn:"Execute",portOut:"trigger 1",objIn:"3abda99f-62c5-4d75-8c56-6440b9f12328",objOut:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1"}]}],portsOut:[{name:"Next"}]}
1,{opId:"9989b1c0-1073-4d5f-bfa0-36dd98b66e27",objName:"Ops.Trigger.SetNumberOnTrigger",id:"a1d4274d-1bca-4cf4-bace-ea32add01e85",uiAttribs:{translate:{x:-420,y:400},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Set",links:[{portIn:"Set",portOut:"then",objIn:"a1d4274d-1bca-4cf4-bace-ea32add01e85",objOut:"450129ff-1657-47eb-86f5-84eb86876478"}]},{name:"Number",value:3}],portsOut:[{name:"Next",value:0},{name:"Out Value"}]},{opId:"9989b1c0-1073-4d5f-bfa0-36dd98b66e27",objName:"Ops.Trigger.SetNumberOnTrigger",id:"1c0425ea-37bd-43b2-be77-74cb793e9b26",uiAttribs:{translate:{x:-264,y:400},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Set",links:[{portIn:"Set",portOut:"else",objIn:"1c0425ea-37bd-43b2-be77-74cb793e9b26",objOut:"450129ff-1657-47eb-86f5-84eb86876478"}]},{name:"Number",value:1.74}],portsOut:[{name:"Next",value:0},{name:"Out Value"}]},{opId:"118df748-16d1-46f4-b8fc-38d7cc5a0aab",objName:"Ops.Sidebar.Button",id:"5e341bce-2150-4adb-b3f5-fa5117e85562",uiAttribs:{title:"Button: Reset Camera",translate:{x:-540,y:1020},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"link",links:[{portIn:"link",portOut:"childs",objIn:"5e341bce-2150-4adb-b3f5-fa5117e85562",objOut:"25001727-68e9-44c2-8cf9-9ea0a9f0886f"}]},{name:"Text",value:"Reset Camera"},{name:"Grey Out",value:!1},{name:"Visible",value:!0}],portsOut:[{name:"childs"},{name:"Pressed Trigger",value:0}]},{opId:"eb3232e5-e947-4683-a17f-27a72d464b2c",objName:"Ops.Sidebar.Slider",id:"c19bbf4c-fb9d-4c93-9e11-be9695800bca",uiAttribs:{title:"Slider: Dark Mode ",translate:{x:-540,y:1200},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"link",links:[{portIn:"link",portOut:"childs",objIn:"c19bbf4c-fb9d-4c93-9e11-be9695800bca",objOut:"5e341bce-2150-4adb-b3f5-fa5117e85562"}]},{name:"Text",value:"Dark Mode "},{name:"Min",value:0},{name:"Max",value:1},{name:"Step",value:1},{name:"Grey Out",value:!1},{name:"Visible",value:!0},{name:"Input",value:0},{name:"Set Default",value:0},{name:"Reset",value:0},{name:"Default",value:0}],portsOut:[{name:"childs"},{name:"Result"}]},{opId:"118df748-16d1-46f4-b8fc-38d7cc5a0aab",objName:"Ops.Sidebar.Button",id:"25001727-68e9-44c2-8cf9-9ea0a9f0886f",uiAttribs:{title:"Button: Start",translate:{x:-528,y:900},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"link",links:[{portIn:"link",portOut:"childs",objIn:"25001727-68e9-44c2-8cf9-9ea0a9f0886f",objOut:"77868301-d1b9-4062-9930-eb5c0da7f008"}]},{name:"Text",value:"Start"},{name:"Grey Out",value:!1},{name:"Visible",value:!0}],portsOut:[{name:"childs"},{name:"Pressed Trigger",value:0}]},{opId:"5a681c35-78ce-4cb3-9858-bc79c34c6819",objName:"Ops.Sidebar.Sidebar",id:"77868301-d1b9-4062-9930-eb5c0da7f008",uiAttribs:{translate:{x:-540,y:580},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Visible",value:!1},{name:"Opacity",value:1},{name:"Default Minimized",value:!1},{name:"Minimized Opacity",value:.465},{name:"Title",value:"Sidebar"},{name:"Side",value:!1}],portsOut:[{name:"childs"}]},{opId:"f94b5136-61fd-4558-8348-e7c8db5a6348",objName:"Ops.Gl.TextureEffects.DrawImage_v2",id:"72b2c198-7af4-4962-9755-2675fe7038d3",uiAttribs:{translate:{x:1260,y:720},subPatch:0,notWorkingMsg:"to work, this op needs to be a child of: ImageCompose, IMAGE",extendTitle:"add",working:!1,selected:!1,error:null},portsIn:[{name:"render",value:null},{name:"blendMode index",value:0},{name:"blendMode",value:"add"},{name:"amount",value:1},{name:"image",value:0},{name:"removeAlphaSrc",value:!1},{name:"imageAlpha",value:0},{name:"alphaSrc index",value:0},{name:"alphaSrc",value:"alpha channel"},{name:"invert alpha channel",value:!1},{name:"Aspect Ratio",value:!1},{name:"Stretch Axis index",value:0},{name:"Stretch Axis",value:"X"},{name:"Position",value:0},{name:"Crop",value:!1},{name:"flip x",value:!1},{name:"flip y",value:!1},{name:"Transform",value:!1},{name:"Scale X",value:1},{name:"Scale Y",value:1},{name:"Position X",value:0},{name:"Position Y",value:0},{name:"Rotation",value:0},{name:"Clip Repeat",value:!1}],portsOut:[{name:"trigger",value:0}]},{opId:"ee274501-ac60-49ab-a854-80aa38c36f76",objName:"Ops.Gl.TextureEffects.Vignette_v2",id:"7eb71844-f267-4030-ad16-7fc4e39dbf35",uiAttribs:{translate:{x:1152,y:920},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Render",links:[{portIn:"Render",portOut:"Next",objIn:"7eb71844-f267-4030-ad16-7fc4e39dbf35",objOut:"b07aef88-3fad-4073-aa1e-6c7b2b5e4ee8"}]},{name:"Blend Mode index",value:0},{name:"Blend Mode",value:"normal"},{name:"Amount",value:1},{name:"Strength",value:1}
1,{name:"Radius",value:"0.006"},{name:"Sharp",value:.545},{name:"Aspect",value:1},{name:"r",value:.07058823529411765,useVariable:"bgColor"},{name:"g",value:.07058823529411765,useVariable:"bgColor",anim:{keys:[{t:14.018969999999856,v:0,e:0}],loop:!1}},{name:"b",value:.07058823529411765,useVariable:"bgColor"}],portsOut:[{name:"Trigger",value:0}]},{opId:"54f26f53-f637-44c1-9bfb-a2f2b722e998",objName:"Ops.Gl.TextureEffects.Blur",id:"9ce97abe-f766-488e-aea4-fac9463cbb01",uiAttribs:{translate:{x:1152,y:680},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"9ce97abe-f766-488e-aea4-fac9463cbb01",objOut:"f8e695cb-6f29-4092-a93c-ba344f87b93a"}]},{name:"amount",value:2.5},{name:"direction index",value:0},{name:"direction",value:"both"},{name:"Fast",value:!0},{name:"mask",value:0}],portsOut:[{name:"trigger"}]},{opId:"f94b5136-61fd-4558-8348-e7c8db5a6348",objName:"Ops.Gl.TextureEffects.DrawImage_v2",id:"da541bfb-d7ed-4cad-9a8b-acad0a1755cd",uiAttribs:{title:"DrawImage Plus",translate:{x:1152,y:380},subPatch:0,notWorkingMsg:null,comment:"timeline",selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"da541bfb-d7ed-4cad-9a8b-acad0a1755cd",objOut:"7070ede2-75f8-4197-afce-5306e83fb1cb"}]},{name:"blendMode index",value:0},{name:"blendMode",value:"normal"},{name:"amount",value:1,animated:!0,anim:{keys:[{t:3.3333333333333335,v:0,e:13},{t:4.333333333333333,v:1,e:13},{t:17.666666666666668,v:1,e:7},{t:19,v:0,e:7}],loop:!1}},{name:"image",links:[{portIn:"image",portOut:"texture",objIn:"da541bfb-d7ed-4cad-9a8b-acad0a1755cd",objOut:"181115f6-3612-4dc6-9999-d7ccadecf2ad"}]},{name:"removeAlphaSrc",value:!1},{name:"imageAlpha",value:0},{name:"alphaSrc index",value:0},{name:"alphaSrc",value:"alpha channel"},{name:"invert alpha channel",value:!1},{name:"Aspect Ratio",value:!1},{name:"Stretch Axis index",value:0},{name:"Stretch Axis",value:"X"},{name:"Position",value:0},{name:"Crop",value:!1},{name:"flip x",value:!1},{name:"flip y",value:!1},{name:"Transform",value:!1},{name:"Scale X",value:1},{name:"Scale Y",value:1},{name:"Position X",value:0},{name:"Position Y",value:0},{name:"Rotation",value:0},{name:"Clip Repeat",value:!1}],portsOut:[{name:"trigger"}]},{opId:"aac7f721-208f-411a-adb3-79adae2e471a",objName:"Ops.Anim.Timer_v2",id:"9881dc5b-0354-4268-b1ed-74470f087c1d",uiAttribs:{translate:{x:1284,y:520},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"Speed",value:3},{name:"Play",value:!0},{name:"Reset",value:0},{name:"Sync to timeline",value:!1}],portsOut:[{name:"Time"}]},{opId:"7073186c-b776-48c2-a01e-041df88ad88a",objName:"Ops.Gl.TextureEffects.Noise.FBMNoise",id:"f8e695cb-6f29-4092-a93c-ba344f87b93a",uiAttribs:{translate:{x:1152,y:580},subPatch:0,notWorkingMsg:null,extendTitle:"light",comment:"timeline",selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"f8e695cb-6f29-4092-a93c-ba344f87b93a",objOut:"da541bfb-d7ed-4cad-9a8b-acad0a1755cd"}]},{name:"Blend Mode index",value:0},{name:"Blend Mode",value:"lighten"},{name:"Amount",value:.4003206922536616,animated:!0,anim:{keys:[{t:0,v:0,e:7},{t:3,v:.55,e:13},{t:4.915304999999469,v:.4,e:0},{t:19.333333333333332,v:.55,e:7},{t:22.333333333333332,v:0,e:7}],loop:!1}},{name:"r",value:1},{name:"g",value:1},{name:"b",value:1},{name:"scale",value:1},{name:"anim",links:[{portIn:"anim",portOut:"Time",objIn:"f8e695cb-6f29-4092-a93c-ba344f87b93a",objOut:"9881dc5b-0354-4268-b1ed-74470f087c1d"}]},{name:"scrollX",value:9},{name:"scrollY",value:0},{name:"repeat",value:1},{name:"aspect",value:1},{name:"Layer 1",value:!0},{name:"Layer 2",value:!0},{name:"Layer 3",value:!0},{name:"Layer 4",value:!0},{name:"Tileable",value:!1}],portsOut:[{name:"trigger"}]},{opId:"d01fa820-396c-4cb5-9d78-6b14762852af",objName:"Ops.Gl.Render2Texture",id:"181115f6-3612-4dc6-9999-d7ccadecf2ad",uiAttribs:{translate:{x:1572,y:300},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger 11",objIn:"181115f6-3612-4dc6-9999-d7ccadecf2ad",objOut:"2300c1ae-d1d4-4ced-8098-e8b0c971ebb1"}]},{name:"use viewport size",value:!1},{name:"texture width",value:512},{name:"texture height",value:512},{name:"Auto Aspect",value:!1},{name:"filter index",value:1},{name:"filter",value:"linear"},{name:"MSAA index",value:0},{name:"MSAA",value:"none"},{name:"HDR",value:!1},{name:"Depth",value:!0},{name:"Clear",value:!0}],portsOut:[{name:"trigger"},{name:"texture"},{name:"textureDepth"}]},{opId:"264b5f8d-82dd-44c6-ae03-741a702e904a",objName:"Ops.Gl.Shader.MatCapMaterialNew_v2",id:"90a88279-e9be-4c21-808a-fe71021a5680",uiAttribs:{translate:{x:1560,y:620},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"90a88279-e9be-4c21-808a-fe71021a5680",objOut:"59a20d95-4c31-49c0-9271-8ca8c91d168b"}]},{name:"MatCap",value:0},{name:"Diffuse",value:0},{name:"Normal",value:0},{name:"Specular",value:0},{name:"Specular MatCap",value:0},{name:"AO Texture",value:0},{name:"Opacity Texture",value:0},{name:"r",value:1},{name:"g",value:1},{name:"b",value:1},{name:"Opacity",value:1},{name:"AO Intensity",value:1},{name:"Repeat X",value:1},{name:"Repeat Y",value:1}
1,{name:"Offset X",value:0},{name:"Offset Y",value:0},{name:"calc normal tangents",value:!0},{name:"projectCoords index",value:0},{name:"projectCoords",value:"no"},{name:"Screen Space Normals",value:!1},{name:"Alpha Mask Source index",value:0},{name:"Alpha Mask Source",value:"Luminance"},{name:"Opacity TexCoords Transform",value:!1},{name:"Discard Transparent Pixels",value:!1}],portsOut:[{name:"trigger"},{name:"Shader"}]},{opId:"b4f17994-3028-4203-9a8d-d5e5377a58fc",objName:"Ops.Gl.AspectRatio",id:"823daafa-3f6c-4913-bbb0-2117000ae000",uiAttribs:{translate:{x:1572,y:460},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"823daafa-3f6c-4913-bbb0-2117000ae000",objOut:"181115f6-3612-4dc6-9999-d7ccadecf2ad"}]},{name:"Aspect Ratio index",value:0},{name:"Aspect Ratio",value:"custom"},{name:"Custom",value:1},{name:"use viewport size",value:!1},{name:"texture width",value:512},{name:"texture height",value:512}],portsOut:[{name:"trigger"},{name:"Width",value:512},{name:"Height",value:512}]},{opId:"650baeb1-db2d-4781-9af6-ab4e9d4277be",objName:"Ops.Gl.Matrix.Transform",id:"59a20d95-4c31-49c0-9271-8ca8c91d168b",uiAttribs:{translate:{x:1572,y:520},subPatch:0,notWorkingMsg:null,comment:"TIMELINE KEYED HERE",selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"59a20d95-4c31-49c0-9271-8ca8c91d168b",objOut:"823daafa-3f6c-4913-bbb0-2117000ae000"}]},{name:"posX",value:.021},{name:"posY",value:0},{name:"posZ",value:0},{name:"scale",value:.01,animated:!0,anim:{keys:[{t:6.166666666666667,v:.01,e:0},{t:9.833333333333334,v:.01,e:13},{t:10.666666666666666,v:.013,e:13},{t:11.5,v:.01,e:13},{t:15.533333333333333,v:.01,e:13},{t:16.333333333333332,v:.013,e:13},{t:17.166666666666668,v:.01,e:13}],loop:!1}},{name:"rotX",value:1.3214929355219147,animated:!0,anim:{keys:[{t:9.666666666666666,v:1.3214929355219147,e:24},{t:11.666666666666666,v:181.32149293552192,e:24},{t:15.333333333333334,v:181.32149293552192,e:24},{t:17.333333333333332,v:361.3214929355219,e:24}],loop:!1}},{name:"rotY",value:0},{name:"rotZ",value:0,animated:!0,anim:{keys:[{t:6.666666666666667,v:0,e:24},{t:8.666666666666666,v:180,e:24},{t:9.666666666666666,v:180,e:24},{t:11.666666666666666,v:225,e:24},{t:12.666666666666666,v:225,e:13},{t:14.333333333333334,v:405,e:13},{t:15.333333333333334,v:405,e:24},{t:17.333333333333332,v:450,e:24},{t:18.666666666666668,v:450,e:0}],loop:!1}}],portsOut:[{name:"trigger"}]},{opId:"650baeb1-db2d-4781-9af6-ab4e9d4277be",objName:"Ops.Gl.Matrix.Transform",id:"558db57d-fc23-4eec-b9f8-0fef9dcd47ba",uiAttribs:{translate:{x:1548,y:800},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"558db57d-fc23-4eec-b9f8-0fef9dcd47ba",objOut:"90a88279-e9be-4c21-808a-fe71021a5680"}]},{name:"posX",value:0},{name:"posY",value:0},{name:"posZ",value:0},{name:"scale",value:36},{name:"rotX",value:0},{name:"rotY",value:90},{name:"rotZ",value:0}],portsOut:[{name:"trigger"}]},{opId:"ff0535e2-603a-4c07-9ce6-e9e0db857dfe",objName:"Ops.Gl.Meshes.Cube",id:"b918bcc1-2518-4290-aab6-91e64cdc78b1",uiAttribs:{translate:{x:1548,y:1e3},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"b918bcc1-2518-4290-aab6-91e64cdc78b1",objOut:"558db57d-fc23-4eec-b9f8-0fef9dcd47ba"}]},{name:"width",value:.7},{name:"height",value:2.7},{name:"length",value:.7},{name:"center",value:!0},{name:"Active",value:!0},{name:"Mapping index",value:0},{name:"Mapping",value:"Default"}],portsOut:[{name:"trigger",value:0},{name:"geometry"}]},{opId:"ff0535e2-603a-4c07-9ce6-e9e0db857dfe",objName:"Ops.Gl.Meshes.Cube",id:"8722270b-c8ba-43c7-9fee-1a9e6648df80",uiAttribs:{translate:{x:1884,y:960},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"8722270b-c8ba-43c7-9fee-1a9e6648df80",objOut:"557cac1f-519e-4a2d-9cee-ca0bb5df65ad"}]},{name:"width",value:.7},{name:"height",value:2.7},{name:"length",value:.7},{name:"center",value:!0},{name:"Active",value:!0},{name:"Mapping index",value:0},{name:"Mapping",value:"Default"}],portsOut:[{name:"trigger",value:0},{name:"geometry"}]},{opId:"650baeb1-db2d-4781-9af6-ab4e9d4277be",objName:"Ops.Gl.Matr
1ix.Transform",id:"557cac1f-519e-4a2d-9cee-ca0bb5df65ad",uiAttribs:{translate:{x:1884,y:780},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"557cac1f-519e-4a2d-9cee-ca0bb5df65ad",objOut:"6ddb267d-8c20-44ee-b250-27a5ee6fbb69"}]},{name:"posX",value:0},{name:"posY",value:0},{name:"posZ",value:0},{name:"scale",value:36},{name:"rotX",value:90},{name:"rotY",value:0},{name:"rotZ",value:0}],portsOut:[{name:"trigger"}]},{opId:"81253441-cc73-42fa-b903-6d23806873d9",objName:"Ops.Gl.TextureEffects.Noise.Noise",id:"b07aef88-3fad-4073-aa1e-6c7b2b5e4ee8",uiAttribs:{translate:{x:1152,y:840},subPatch:0,notWorkingMsg:null,extendTitle:"mul",selected:!1},portsIn:[{name:"Render",links:[{portIn:"Render",portOut:"trigger",objIn:"b07aef88-3fad-4073-aa1e-6c7b2b5e4ee8",objOut:"20c72ed5-00c6-4304-ac5f-4d7afebe7b07"}]},{name:"Blend Mode index",value:0},{name:"Blend Mode",value:"multiply"},{name:"Amount",value:.06},{name:"Animated",value:!0},{name:"RGB",value:!1}],portsOut:[{name:"Next"}]},{opId:"264b5f8d-82dd-44c6-ae03-741a702e904a",objName:"Ops.Gl.Shader.MatCapMaterialNew_v2",id:"6ddb267d-8c20-44ee-b250-27a5ee6fbb69",uiAttribs:{translate:{x:1896,y:640},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"6ddb267d-8c20-44ee-b250-27a5ee6fbb69",objOut:"59a20d95-4c31-49c0-9271-8ca8c91d168b"}]},{name:"MatCap",value:0},{name:"Diffuse",value:0},{name:"Normal",value:0},{name:"Specular",value:0},{name:"Specular MatCap",value:0},{name:"AO Texture",value:0},{name:"Opacity Texture",value:0},{name:"r",value:1},{name:"g",value:1},{name:"b",value:1},{name:"Opacity",value:1},{name:"AO Intensity",value:1},{name:"Repeat X",value:1},{name:"Repeat Y",value:1},{name:"Offset X",value:0},{name:"Offset Y",value:0},{name:"calc normal tangents",value:!0},{name:"projectCoords index",value:0},{name:"projectCoords",value:"no"},{name:"Screen Space Normals",value:!1},{name:"Alpha Mask Source index",value:0},{name:"Alpha Mask Source",value:"Luminance"},{name:"Opacity TexCoords Transform",value:!1},{name:"Discard Transparent Pixels",value:!1}],portsOut:[{name:"trigger"},{name:"Shader"}]},{opId:"f94b5136-61fd-4558-8348-e7c8db5a6348",objName:"Ops.Gl.TextureEffects.DrawImage_v2",id:"20c72ed5-00c6-4304-ac5f-4d7afebe7b07",uiAttribs:{translate:{x:1152,y:780},subPatch:0,notWorkingMsg:null,extendTitle:"add",selected:!1},portsIn:[{name:"render",links:[{portIn:"render",portOut:"trigger",objIn:"20c72ed5-00c6-4304-ac5f-4d7afebe7b07",objOut:"9ce97abe-f766-488e-aea4-fac9463cbb01"}]},{name:"blendMode index",value:0},{name:"blendMode",value:"add"},{name:"amount",value:1},{name:"image",links:[{portIn:"image",portOut:"texture_out",objIn:"20c72ed5-00c6-4304-ac5f-4d7afebe7b07",objOut:"a62bdc38-f860-4b98-89bf-4343f05166d6"}]},{name:"removeAlphaSrc",value:!1},{name:"imageAlpha",value:0},{name:"alphaSrc index",value:0},{name:"alphaSrc",value:"alpha channel"},{name:"invert alpha channel",value:!1},{name:"Aspect Ratio",value:!1},{name:"Stretch Axis index",value:0},{name:"Stretch Axis",value:"X"},{name:"Position",value:0},{name:"Crop",value:!1},{name:"flip x",value:!1},{name:"flip y",value:!1},{name:"Transform",value:!1},{name:"Scale X",value:1},{name:"Scale Y",value:1},{name:"Position X",value:0},{name:"Position Y",value:0},{name:"Rotation",value:0},{name:"Clip Repeat",value:!1}],portsOut:[{name:"trigger"}]},{opId:"cda1a98e-5e16-40bd-9b18-a67e9eaad5a1",objName:"Ops.Math.Clamp",id:"c1c08624-a595-479a-96bd-bd2c2cb8035f",uiAttribs:{title:"Clamp Width",translate:{x:492,y:-720},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"val",links:[{portIn:"val",portOut:"width",objIn:"c1c08624-a595-479a-96bd-bd2c2cb8035f",objOut:"aa218bf3-e713-4977-9fcd-0b090001bf86"}]},{name:"min",value:0},{name:"max",value:1920},{name:"ignore outside values",value:!1}],portsOut:[{name:"result"}]},{opId:"cda1a98e-5e16-40bd-9b18-a67e9eaad5a1",objName:"Ops.Math.Clamp",id:"3f982033-2c1f-4e5c-b6a7-23cfd95fe3b0",uiAttribs:{title:"Clamp Height",translate:{x:444,y:-580},subPatch:0,notWorkingMsg:null,selected:!1},portsIn:[{name:"val",links:[{portIn:"val",portOut:"height",objIn:"3f982033-2c1f-4e5c-b6a7-23cfd95fe3b0",objOut:"aa218bf3-e713-4977-9fcd-0b090001bf86"}]},{name:"min",value:0},{name:"max",value:1080},{name:"ignore outside values",value:!1}],portsOut:[{name:"result"}]}
1],users:[],userOps:[],tags:[],_id:"5ed09f8d3f726435962f054a",name:"px - rutt-etra v1N - new version",userId:"5be105af3b6bdf385d576ee8",created:"2020-05-29T05:37:17.796Z",updated:"2020-05-29T05:56:40.854Z",__v:3,shortId:"G3QXu9",opsHash:"069215a23acf9df0267083e22b4297f31f723026",ui:{viewBox:{x:-1198.29646570223,y:-1289.837824121058,w:2832.103853558079,h:1557.579781831232},timeLineLength:50,bookmarks:[],subPatchViewBoxes:[],renderer:{w:645,h:712,s:1}},updatedByUser:"fariskassim",exports:4,cachedUsername:"fariskassim",views:0,cachedNumComments:0,cachedNumFavs:0,statsAdmin:{filenameScreenshots:[],filenameExports:["_exports/cables_px_-_rutt-etra_v1N_-_new_version1.zip","_exports/cables_px_-_rutt-etra_v1N_-_new_version2.zip"],filenameAssets:[],hasOldScreenshots:!1,hasOldExports:!1,sizeScreenshots:0,sizeExports:304.3828125,sizeAssets:0}};var CABLES=CABLES||{};CABLES.OPS=CABLES.OPS||{};var Ops=Ops||{};Ops.Gl=Ops.Gl||{},Ops.Ui=Ops.Ui||{},Ops.Math=Ops.Math||{},Ops.Anim=Ops.Anim||{},Ops.Vars=Ops.Vars||{},Ops.Patch=Ops.Patch||{},Ops.Value=Ops.Value||{},Ops.Devices=Ops.Devices||{},Ops.Trigger=Ops.Trigger||{},Ops.Boolean=Ops.Boolean||{},Ops.Sidebar=Ops.Sidebar||{},Ops.TimeLine=Ops.TimeLine||{},Ops.Gl.Matrix=Ops.Gl.Matrix||{},Ops.Gl.Meshes=Ops.Gl.Meshes||{},Ops.Gl.Shader=Ops.Gl.Shader||{},Ops.Math.Compare=Ops.Math.Compare||{},Ops.Devices.Mouse=Ops.Devices.Mouse||{},Ops.Gl.ShaderEffects=Ops.Gl.ShaderEffects||{},Ops.Gl.TextureEffects=Ops.Gl.TextureEffects||{},Ops.Gl.TextureEffects.Noise=Ops.Gl.TextureEffects.Noise||{},Ops.Gl.MainLoop=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inValue("FPS Limit",0),t=e.outTrigger("trigger"),a=e.outValue("width"),r=e.outValue("height"),o=e.inValueBool("Reduce FPS loading"),i=e.inValueBool("Clear",!0),l=e.inValueBool("ClearAlpha",!0),s=e.inValueBool("Fullscreen Button",!1),u=e.inValueBool("Active",!0),c=e.inValueBool("Hires Displays",!1);e.onAnimFrame=x,c.onChange=function(){c.get()?e.patch.cgl.pixelDensity=window.devicePixelRatio:e.patch.cgl.pixelDensity=1,e.patch.cgl.updateSize(),CABLES.UI&&gui.setLayout()},u.onChange=function(){e.patch.removeOnAnimFrame(e),u.get()?(e.setUiAttrib({extendTitle:""}
1),e.onAnimFrame=x,e.patch.addOnAnimFrame(e)):e.setUiAttrib({extendTitle:"Inactive"})};var d=e.patch.cgl,p=0,g=0;e.patch.cgl||e.uiAttr({error:"No webgl cgl context"});var f=vec3.create();vec3.set(f,0,0,0);var m=vec3.create();vec3.set(m,0,0,-2),s.onChange=v,setTimeout(v,100);var b=null;function v(){function n(){b&&(b.style.display="block")}if(e.patch.cgl.canvas.addEventListener("mouseleave",function(){b&&(b.style.display="none")}),e.patch.cgl.canvas.addEventListener("mouseenter",n),s.get()){if(!b){b=document.createElement("div");var t=e.patch.cgl.canvas.parentElement;t&&t.appendChild(b),b.addEventListener("mouseenter",n),b.addEventListener("click",function(e){CABLES.UI&&!e.shiftKey?gui.cycleRendererSize():d.fullScreen()})}b.style.padding="10px",b.style.position="absolute",b.style.right="5px",b.style.top="5px",b.style.width="20px",b.style.height="20px",b.style.cursor="pointer",b.style["border-radius"]="40px",b.style.background="#444",b.style["z-index"]="9999",b.style.display="none",b.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 490 490" style="width:20px;height:20px;" xml:space="preserve" width="512px" height="512px"><g><path d="M173.792,301.792L21.333,454.251v-80.917c0-5.891-4.776-10.667-10.667-10.667C4.776,362.667,0,367.442,0,373.333V480 c0,5.891,4.776,10.667,10.667,10.667h106.667c5.891,0,10.667-4.776,10.667-10.667s-4.776-10.667-10.667-10.667H36.416 l152.459-152.459c4.093-4.237,3.975-10.99-0.262-15.083C184.479,297.799,177.926,297.799,173.792,301.792z" fill="#FFFFFF"/><path d="M480,0H373.333c-5.891,0-10.667,4.776-10.667,10.667c0,5.891,4.776,10.667,10.667,10.667h80.917L301.792,173.792 c-4.237,4.093-4.354,10.845-0.262,15.083c4.093,4.237,10.845,4.354,15.083,0.262c0.089-0.086,0.176-0.173,0.262-0.262 L469.333,36.416v80.917c0,5.891,4.776,10.667,10.667,10.667s10.667-4.776,10.667-10.667V10.667C490.667,4.776,485.891,0,480,0z" fill="#FFFFFF"/><path d="M36.416,21.333h80.917c5.891,0,10.667-4.776,10.667-10.667C128,4.776,123.224,0,117.333,0H10.667 C4.776,0,0,4.776,0,10.667v106.667C0,123.224,4.776,128,10.667,128c5.891,0,10.667-4.776,10.667-10.667V36.416l152.459,152.459 c4.237,4.093,10.99,3.975,15.083-0.262c3.992-4.134,3.992-10.687,0-14.82L36.416,21.333z" fill="#FFFFFF"/><path d="M480,362.667c-5.891,0-10.667,4.776-10.667,10.667v80.917L316.875,301.792c-4.237-4.093-10.99-3.976-15.083,0.261 c-3.993,4.134-3.993,10.688,0,14.821l152.459,152.459h-80.917c-5.891,0-10.667,4.776-10.667,10.667s4.776,10.667,10.667,10.667 H480c5.891,0,10.667-4.776,10.667-10.667V373.333C490.667,367.442,485.891,362.667,480,362.667z" fill="#FFFFFF"/></g></svg>'}else b&&(b.style.display="none",b.remove(),b=null)}function x(n){if(!u.get())return;if(d.aborted||0===d.canvas.clientWidth||0===d.canvas.clientHeight)return;const s=performance.now();e.patch.loading.getProgress()<1&&o.get()&&(e.patch.config.fpsLimit=5),-1!=d.canvasWidth?(d.canvasWidth==a.get()&&d.canvasHeight==r.get()||(a.set(d.canvasWidth),r.set(d.canvasHeight)),CABLES.now()-g>1e3&&(CGL.fpsReport=CGL.fpsReport||[],e.patch.loading.getProgress()>=1&&0!==g&&CGL.fpsReport.push(p),p=0,g=CABLES.now()),CGL.MESH.lastShader=null,CGL.MESH.lastMesh=null,d.renderStart(d,f,m),i.get()&&(d.gl.clearColor(0,0,0,1),d.gl.clear(d.gl.COLOR_BUFFER_BIT|d.gl.DEPTH_BUFFER_BIT)),t.trigger(),CGL.MESH.lastMesh&&CGL.MESH.lastMesh.unBind(),CGL.Texture.previewTexture&&(CGL.Texture.texturePreviewer||(CGL.Texture.texturePreviewer=new CGL.Texture.texturePreview(d)),CGL.Texture.texturePreviewer.render(CGL.Texture.previewTexture)),d.renderEnd(d),l.get()&&(d.gl.clearColor(1,1,1,1),d.gl.colorMask(!1,!1,!1,!0),d.gl.clear(d.gl.COLOR_BUFFER_BIT),d.gl.colorMask(!0,!0,!0,!0)),d.frameStore.phong||(d.frameStore.phong={}),p++,CGL.profileData.profileMainloopMs=performance.now()-s):d.setCanvas(e.patch.config.glCanvasId)}n.onChange=function(){e.patch.config.fpsLimit=n.get()||0},e.onDelete=function(){d.gl.clearColor(0,0,0,0),d.gl.clear(d.gl.COLOR_BUFFER_BIT|d.gl.DEPTH_BUFFER_BIT)},e.patch.loading.setOnFinishedLoading(function(t){e.patch.config.fpsLimit=n.get()})},Ops.Gl.MainLoop.prototype=new CABLES.Op,CABLES.OPS["b0472a1d-db16-4ba6-8787-f300fbdc77bb"]={f:Ops.Gl.MainLoop,objName:"Ops.Gl.MainLoop"},Ops.Gl.Meshes.LinesArray=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=e.inValueFloat("width",10),a=e.inValueFloat("height",1),r=e.inValueBool("Logarithmic",!1),o=e.inValueSelect("pivot x",["center","left","right"],"center"),i=e.inValueSelect("pivot y",["center","top","bottom"],"center"),l=e.inValueInt("num columns",10),s=e.inValueInt("num rows",10),u=e.inValueSelect("axis",["xy","xz"],"xy"),c=e.outTrigger("trigger"),d=e.outArray("Point Arrays"),p=e.patch.cgl;var g=[];e.setPortGroup("Size",[t,a]),e.setPortGroup("Alignment",[o,i]),u.onChange=o.onChange=i.onChange=t.onChange=a.onChange=s.onChange=l.onChange=r.onChange=function(){clearTimeout(f),f=setTimeout(m,60)},m(),n.onTriggered=function(){for(var e=0;e<g.length;e++)g[e].render(p.getShader());c.trigger()};var f=0;function m(){var e=0,n=0;"center"==o.get()&&(e=0),"right"==o.get()&&(e=-t.get()/2),"left"==o.get()&&(e=+t.get()/2),"center"==i.get()&&(n=0),"top"==i.get()&&(n=-a.get()/2),"bottom"==i.get()&&(n=+a.get()/2);var c,f,m,b,v,x=parseInt(s.get(),10),h=parseInt(l.get(),10),I=t.get()/h,O=a.get()/x;g.length=0;var C=[],T=[],A=[],E=0;function S(){var e=new CGL.Geometry;e.vertices=C,e.texCoords=T,e.verticesIndices=A;var n=new CGL.Mesh(p,e,p.gl.LINES);n.setGeom(e),g.push(n),C.length=0,T.length=0,A.length=0,E=0,y=null}var L=Math.log(1/x),M=(Math.log(1),[]);for(f=x;f>=0;f--){var y=null,N=null,w=null,_=null,P=null,B=r.get(),j=[];for(M.push(j),c=h;c>=0;c--){m=c*I-t.get()/2+e,b=B?Math.log(f/x)/L*a.get()-a.get()/2+n:f*O-a.get()/2+n;var G=c/h,D=1-f/x;B&&(D=Math.log(f/x)/L),v=0,"xz"==u.get()&&(v=b,b=0),"xy"==u.get()&&(v=0),null!==y&&(C.push(y),C.push(N),C.push(w),j.push(y,N,w),C.push(m),C.push(b),C.push(v),T.push(_),T.push(P),T.push(G),T.push(D),A.push(E),E++,A.push(E),E++),E>64e3&&S(),_=G,P=D,y=m,N=b,w=v}}d.set(M),S()}},Ops.Gl.Meshes.LinesArray.prototype=new CABLES.Op,CABLES.OPS["a75265c2-957b-4719-9d03-7bbf00ace364"]={f:Ops.Gl.Meshes.LinesArray,objName:"Ops.Gl.Meshes.LinesArray"},Ops.Gl.Shader.BasicMaterial=function(){CABLES.Op.apply(this,arguments);const e=this,n="{{MODULES_HEAD}}\n\nIN vec2 texCoord;\n#ifdef HAS_TEXTURES\n IN vec2 texCoordOrig;\n #ifdef HAS_TEXTURE_DIFFUSE\n UNI sampler2D tex;\n #endif\n #ifdef HAS_TEXTURE_OPACITY\n UNI sampler2D texOpacity;\n #endif\n#endif\nUNI float r;\nUNI float g;\nUNI float b;\nUNI float a;\n\nvoid main()\n{\n {{MODULE_BEGIN_FRAG}}\n vec4 col=vec4(r,g,b,a);\n\n #ifdef HAS_TEXTURES\n #ifdef HAS_TEXTURE_DIFFUSE\n\n col=texture(tex,vec2(texCoord.x,(1.0-texCoord.y)));\n\n #ifdef COLORIZE_TEXTURE\n col.r*=r;\n col.g*=g;\n col.b*=b;\n #endif\n #endif\n\n col.a*=a;\n #ifdef HAS_TEXTURE_OPACITY\n #ifdef TRANSFORMALPHATEXCOORDS\n col.a*=texture(texOpacity,vec2(texCoordOrig.s,1.0-texCoordOrig.t)).g;\n #endif\n #ifndef TRANSFORMALPHATEXCOORDS\n col.a*=texture(texOpacity,vec2(texCoord.s,1.0-texCoord.t)).g;\n #endif\n #endif\n\n #endif\n\n {{MODULE_COLOR}}\n\n outColor = col;\n\n\n}\n",t="{{MODULES_HEAD}}\n\nIN vec3 vPosition;\nIN vec3 attrVertNormal;\nIN vec2 attrTexCoord;\n\nOUT vec3 norm;\nOUT vec2 texCoord;\nOUT vec2 texCoordOrig;\n\nUNI mat4 projMatrix;\nUNI mat4 modelMatrix;\nUNI mat4 viewMatrix;\n\n#ifdef HAS_TEXTURES\n #ifdef TEXTURE_REPEAT\n UNI float diffuseRepeatX;\n UNI float diffuseRepeatY;\n UNI float texOffsetX;\n UNI float texOffsetY;\n #endif\n#endif\n\n\nvoid main()\n{\n mat4 mMatrix=modelMatrix;\n mat4 mvMatrix;\n\n texCoordOrig=attrTexCoord;\n texCoord=attrTexCoord;\n #ifdef HAS_TEXTURES\n #ifdef TEXTURE_REPEAT\n texCoord.x=texCoord.x*diffuseRepeatX+texOffsetX;\n texCoord.y=texCoord.y*diffuseRepeatY+texOffsetY;\n #endif\n #endif\n\n vec4 pos = vec4( vPosition, 1. );\n\n\n #ifdef BILLBOARD\n vec3 position=vPosition;\n mvMatrix=viewMatrix*modelMatrix;\n\n gl_Position = projMatrix * mvMatrix * vec4((\n position.x * vec3(\n mvMatrix[0][0],\n mvMatrix[1][0],\n mvMatrix[2][0] ) +\n position.y * vec3(\n mvMatrix[0][1],\n mvMatrix[1][1],\n mvMatrix[2][1]) ), 1.0);\n #endif\n\n {{MODULE_VERTEX_POSITION}}\n\n #ifndef BILLBOARD\n mvMatrix=viewMatrix * mMatrix;\n #endif\n\n\n #ifndef BILLBOARD\n // gl_Position = projMatrix * viewMatrix * modelMatrix * pos;\n gl_Position = projMatrix * mvMatrix * pos;\n #endif\n}\n",a=e.inTrigger("render"),r=e.outTrigger("trigger"),o=e.outObject("shader");o.ignoreValueSerialize=!0;const i=e.patch.cgl;var l=new CGL.Shader(i,"BasicMaterial");l.setModules(["MODULE_VERTEX_POSITION","MODULE_COLOR","MODULE_BEGIN_FRAG"]),l.bindTextures=c,l.setSource(t,n),o.set(l),a.onTriggered=d;var s=null,u=null;function c(){p.get()&&i.setTexture(0,p.get().tex),s.get()&&i.setTexture(1,s.get().tex)}function d(){l&&(i.pushShader(l),l.bindTextures(),r.trigger(),i.popShader())}e.preRender=function(){l.bind(),d()};{const n=e.inValueSlider("r",Math.random()),t=e.inValueSlider("g",Math.random()),a=e.inValueSlider("b",Math.random()),r=e.inValueSlider("a",1);n.setUiAttribs({colorPick:!0}),r.uniform=new CGL.Uniform(l,"f","a",r),a.uniform=new CGL.Uniform(l,"f","b",a),n.uniform=new CGL.Uniform(l,"f","r",n),t.uniform=new CGL.Uniform(l,"f","g",t),e.setPortGroup("Color",[n,t,a,r])}var p=e.inTexture("texture"),g=null;l.bindTextures=c,p.onChange=function(){p.get()?(l.hasDefine("HAS_TEXTURE_DIFFUSE")||l.define("HAS_TEXTURE_DIFFUSE"),g||(g=ne
1w CGL.Uniform(l,"t","texDiffuse",0)),m()):(l.removeUniform("texDiffuse"),l.removeDefine("HAS_TEXTURE_DIFFUSE"),g=null)},(s=e.inTexture("textureOpacity")).onChange=function(){if(s.get()){if(null!==u)return;l.removeUniform("texOpacity"),l.define("HAS_TEXTURE_OPACITY"),u||(u=new CGL.Uniform(l,"t","texOpacity",1))}else l.removeUniform("texOpacity"),l.removeDefine("HAS_TEXTURE_OPACITY"),u=null},e.colorizeTexture=e.inValueBool("colorizeTexture"),e.colorizeTexture.set(!1),e.colorizeTexture.onChange=function(){e.colorizeTexture.get()?l.define("COLORIZE_TEXTURE"):l.removeDefine("COLORIZE_TEXTURE")},e.doBillboard=e.inValueBool("billboard"),e.doBillboard.set(!1),e.doBillboard.onChange=function(){e.doBillboard.get()?l.define("BILLBOARD"):l.removeDefine("BILLBOARD")};var f=e.inValueBool("Opacity TexCoords Transform",!1);f.onChange=function(){f.get()?l.define("TRANSFORMALPHATEXCOORDS"):l.removeDefine("TRANSFORMALPHATEXCOORDS")};e.inValueBool("preMultiplied alpha");function m(){I||(I=new CGL.Uniform(l,"f","diffuseRepeatX",b),O=new CGL.Uniform(l,"f","diffuseRepeatY",v),C=new CGL.Uniform(l,"f","texOffsetX",x),T=new CGL.Uniform(l,"f","texOffsetY",h)),I.setValue(b.get()),O.setValue(v.get()),C.setValue(x.get()),T.setValue(h.get())}var b=e.inValueFloat("diffuseRepeatX",1),v=e.inValueFloat("diffuseRepeatY",1),x=e.inValueFloat("Tex Offset X"),h=e.inValueFloat("Tex Offset Y");e.setPortGroup("Transform Texture",[b,v,x,h]),b.onChange=m,v.onChange=m,h.onChange=m,x.onChange=m;var I=null,O=null,C=null,T=null;l.define("TEXTURE_REPEAT"),x.set(0),h.set(0),b.set(1),v.set(1),m()},Ops.Gl.Shader.BasicMaterial.prototype=new CABLES.Op,CABLES.OPS["85ae5cfa-5eca-4dd8-8b30-850ac34f7cd5"]={f:Ops.Gl.Shader.BasicMaterial,objName:"Ops.Gl.Shader.BasicMaterial"},Ops.Gl.ShaderEffects.VertexDisplacementMap=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.patch.cgl;var t="mod"+Math.floor(1e4*Math.random());e.render=e.inTrigger("render"),e.trigger=e.outTrigger("trigger");var a=e.inTexture("texture"),r=e.inValue("extrude",.5),o=e.inValueBool("flip",!0),i=e.inValueBool("Ignore Zero Values"),l=e.inValueBool("invert"),s=e.inValueFloat("offset X"),u=e.inValueFloat("offset Y"),c=e.inValueBool("colorize"),d=e.inValueSlider("colorize add"),p=e.inValueSelect("mode",["normal","normal xy","mul xyz","sub x","add x","add y","add z","mul y","mul z","sub z"]);function g(){v&&v.toggleDefine(t+"HEIGHTMAP_COLORIZE",c.get())}function f(){v&&v.toggleDefine(t+"HEIGHTMAP_INVERT",l.get())}function m(){v&&v.toggleDefine(t+"DISPLACE_REMOVE_ZERO",i.get())}c.set(!1),c.onChange=g,l.onChange=f,i.onChange=m;var b=function(){v&&(v.toggleDefine(t+"FLIPY",o.get()),v.toggleDefine(t+"DISPLACE_METH_MULXYZ","mul xyz"==p.get()),v.toggleDefine(t+"DISPLACE_METH_ADDZ","add z"==p.get()),v.toggleDefine(t+"DISPLACE_METH_ADDY","add y"==p.get()),v.toggleDefine(t+"DISPLACE_METH_ADDX","add x"==p.get()),v.toggleDefine(t+"DISPLACE_METH_SUBX","sub x"==p.get()),v.toggleDefine(t+"DISPLACE_METH_MULY","mul y"==p.get()),v.toggleDefine(t+"DISPLACE_METH_MULZ","mul z"==p.get()),v.toggleDefine(t+"DISPLACE_METH_NORMAL","normal"==p.get()),v.toggleDefine(t+"DISPLACE_METH_NORMAL_XY","normal xy"==p.get()),m())};o.onChange=b,p.onChange=b,p.set("normal");var v=null,x="".endl()+"UNI float {{mod}}_extrude;".endl()+"UNI sampler2D {{mod}}_texture;".endl()+"UNI float {{mod}}_offsetX;".endl()+"UNI float {{mod}}_offsetY;".endl()+"OUT float "+t+"displHeightMapColor;".endl(),h="".endl()+"vec2 {{mod}}tc=texCoord;".endl()+"#ifdef "+t+"FLIPY".endl()+" {{mod}}tc.y=1.0-{{mod}}tc.y;".endl()+"#endif".endl()+"float {{mod}}_texVal=texture2D( {{mod}}_texture, vec2({{mod}}tc.x+{{mod}}_offsetX,{{mod}}tc.y+{{mod}}_offsetY) ).b;".endl()+"#ifdef "+t+"HEIGHTMAP_INVERT".endl()+" {{mod}}_texVal=1.0-{{mod}}_texVal;".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_METH_MULXYZ".endl()+" {{mod}}_texVal+=1.0;".endl()+" pos.xyz *= {{mod}}_texVal * {{mod}}_extrude;".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_METH_ADDZ".endl()+" pos.z+=({{mod}}_texVal * {{mod}}_extrude);".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_METH_ADDY".endl()+" pos.y+=({{mod}}_texVal * {{mod}}_extrude);".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_METH_ADDX".endl()+" pos.x+=({{mod}}_texVal * {{mod}}_extrude);".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_METH_SUBX".endl()+" pos.x-=({{mod}}_texVal * {{mod}}_extrude);".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_METH_MULY".endl()+" pos.y+=(({{mod}}_texVal-0.5) * {{mod}}_extrude);".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_METH_MULZ".endl()+" pos.z+=(({{mod}}_texVal-0.5) * {{mod}}_extrude);".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_METH_NORMAL".endl()+" pos.xyz+=norm*{{mod}}_texVal*{{mod}}_extrude;".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_METH_NORMAL_XY".endl()+" pos.xy+=(pos.xy*{{mod}}_texVal*{{mod}}_extrude).xy;".endl()+"#endif".endl()+t+"displHeightMapColor={{mod}}_texVal;".endl(),I="".endl()+"UNI float {{mod}}_colorizeAdd;".endl()+"IN float "+t+"displHeightMapColor;".endl()+"UNI sampler2D {{mod}}_texture;".endl(),O="".endl()+"#ifdef "+t+"HEIGHTMAP_COLORIZE".endl()+" col.rgb*="+t+"displHeightMapColor*(1.0-{{mod}}_colorizeAdd);".endl()+" col+={{mod}}_colorizeAdd;".endl()+"#endif".endl()+"#ifdef "+t+"DISPLACE_REMOVE_ZERO".endl()+"if("+t+"displHeightMapColor==0.0)discard;".endl()+"#endif".endl(),C=null,T=null;function A(){v&&C&&v.removeModule(C),v&&T&&v.removeModule(T),v=null}var E=null,S=null;e.render.onLinkChanged=A,e.render.onTriggered=function(){if(n.getShader()){if(n.getShader()!=v&&(v&&A(),v=n.getShader(),T=v.addModule({title:e.objName,name:"MODULE_VERTEX_POSITION",srcHeadVert:x,srcBodyVert:h}),E=new CGL.Uniform(v,"t",T.prefix+"_texture",0),new CGL.Uniform(v,"f",T.prefix+"_extrude",r),new CGL.Uniform(v,"f",T.prefix+"_offsetX",s),new CGL.Uniform(v,"f",T.prefix+"_offsetY",u),C=v.addModule({title:e.objName,name:"MODULE_COLOR",srcHeadFrag:I,srcBodyFrag:O}),S=new CGL.Uniform(v,"t",C.prefix+"_texture",0),new CGL.Uniform(v,"f",C.prefix+"_colorizeAdd",d),b(),f(),g()),v){var t=T.num+7;a.get()&&(E.setValue(t),S.setValue(t),n.setTexture(0+t,a.get().tex)),e.trigger.trigger()}}else e.trigger.trigger()}},Ops.Gl.ShaderEffects.VertexDisplacementMap.prototype=new CABLES.Op,CABLES.OPS["94ffa0de-2926-4d02-842e-a1ad6f5846c2"]={f:Ops.Gl.ShaderEffects.VertexDisplacementMap,objName:"Ops.Gl.ShaderEffects.VertexDisplacementMap"}
1,Ops.Gl.Matrix.OrbitControls=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=e.inValueFloat("min distance"),a=e.inValueFloat("max distance"),r=e.inValue("min rot y",0),o=e.inValue("max rot y",0),i=e.inValue("initial radius",0),l=e.inValueSlider("initial axis y"),s=e.inValueSlider("initial axis x"),u=e.inValueFloat("mul"),c=e.inValueSlider("Smoothness",1),d=e.inValue("Speed X",1),p=e.inValue("Speed Y",1),g=e.inValueBool("Active",!0),f=e.inValueBool("Allow Panning",!0),m=e.inValueBool("Allow Zooming",!0),b=e.inValueBool("Allow Rotation",!0),v=e.inValueBool("restricted",!0),x=e.inValueBool("Pointerlock",!1),h=e.outTrigger("trigger"),I=e.outValue("radius"),O=e.outValue("Rot X"),C=e.outValue("Rot Y"),T=e.inTriggerButton("Reset");e.setPortGroup("Initial Values",[l,s,i]),e.setPortGroup("Interaction",[u,c,d,p]),e.setPortGroup("Boundaries",[r,o,t,a]),u.set(1),t.set(.05),a.set(99999),T.onTriggered=X;const A=e.patch.cgl;var E=vec3.create(),S=vec3.create(),L=vec3.create(),M=mat4.create(),y=(mat4.create(),vec3.create());vec3.create();l.set(.5);var N=!1,w=5;I.set(w);var _=0,P=0,B=0,j=0;vec3.set(L,0,0,0),vec3.set(S,0,1,0);var G=vec3.create(),D=vec3.create(),k=vec3.create(),V=vec3.create(),U=0,R=0,z=1,F=null;H(),e.onDelete=se;var W=!1;function X(){U%=2*Math.PI,R%=2*Math.PI,vec3.set(y,0,0,0),vec3.set(L,0,0,0),vec3.set(S,0,1,0),B=s.get()*Math.PI*2,j=l.get()-.5,w=i.get(),E=q(j)}function H(){z=10*c.get()+1}x.onChange=function(){W=x.get(),console.log("doLockPointer",W)},c.onChange=H;var Z=!0;function Y(e,n){return Z?n:e+(n-e)/z}var J=0;function q(e){const n=u.get();w<t.get()*n&&(w=t.get()*n),w>a.get()*n&&(w=a.get()*n),I.set(w*n);var r,o=vec3.create();return r=360*e/2*CGL.DEG2RAD,vec3.set(o,Math.cos(r)*w*n,Math.sin(r)*w*n,0),o}function Q(e){if(N){var n=e.clientX,t=e.clientY,a=n-_,r=t-P;W&&(a=e.movementX*u.get(),r=e.movementY*u.get()),a*=d.get(),r*=p.get(),3==e.which&&f.get()?(y[2]+=.01*a*u.get(),y[1]+=.01*r*u.get()):2==e.which&&m.get()?(w+=.05*r,E=q(j)):b.get()&&(B+=.003*a,j+=.002*r,v.get()&&(j>.5&&(j=.5),j<-.5&&(j=-.5))),_=n,P=t}}function K(n){if(_=n.clientX,P=n.clientY,N=!0,W){var t=e.patch.cgl.canvas;t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock,t.requestPointerLock?t.requestPointerLock():console.log("no t found"),document.addEventListener("pointerlockchange",ee,!1),document.addEventListener("mozpointerlockchange",ee,!1),document.addEventListener("webkitpointerlockchange",ee,!1)}}function $(){N=!1,W&&(document.removeEventListener("pointerlockchange",ee,!1),document.removeEventListener("mozpointerlockchange",ee,!1),document.removeEventListener("webkitpointerlockchange",ee,!1),document.exitPointerLock&&document.exitPointerLock(),document.removeEventListener("mousemove",x,!1))}function ee(){var n=e.patch.cgl.canvas;document.pointerLockElement!==n&&document.mozPointerLockElement!==n&&document.webkitPointerLockElement!==n||(document.addEventListener("mousemove",Q,!1),console.log("listening..."))}function ne(e){}n.onTriggered=function(){A.pushViewMatrix(),U=Y(U,B);var e=180*((R=Y(R,j))+.5);0!==r.get()&&e<r.get()?(e=r.get(),R=J):0!==o.get()&&e>o.get()?(e=o.get(),R=J):J=R;var n=U*CGL.RAD2DEG;C.set(e),O.set(n),function(e,n){const r=u.get();w<t.get()*r&&(w=t.get()*r);w>a.get()*r&&(w=a.get()*r);I.set(w*r);var o=0;o=360*n/2*CGL.DEG2RAD,vec3.set(e,Math.cos(o)*w*r,Math.sin(o)*w*r,0)}(E,R),vec3.add(G,E,y),vec3.add(k,L,y),D[0]=Y(D[0],G[0]),D[1]=Y(D[1],G[1]),D[2]=Y(D[2],G[2]),V[0]=Y(V[0],k[0]),V[1]=Y(V[1],k[1]),V[2]=Y(V[2],k[2]);vec3.create();mat4.lookAt(M,D,V,S),mat4.rotate(M,M,U,S),mat4.multiply(A.vMatrix,A.vMatrix,M),h.trigger(),A.popViewMatrix(),Z=!1},i.onChange=function(){w=i.get(),X()},s.onChange=function(){U=B=s.get()*Math.PI*2},l.onChange=function(){R=j=l.get()-.5,E=q(j)};var te,ae=function(e){if(m.get()){var n=.06*CGL.getWheelSpeed(e);w+=1.2*parseFloat(n),E=q(j),e.preventDefault()}},re=function(e){W=!1,e.touches&&e.touches.length>0&&K(e.touches[0])},oe=function(e){W=!1,$()},ie=function(e){W=!1,e.touches&&e.touches.length>0&&Q(e.touches[0])};function le(){F.addEventListener("mousemove",Q),F.addEventListener("mousedown",K),F.addEventListener("mouseup",$),F.addEventListener("mouseleave",$),F.addEventListener("mouseenter",ne),F.addEventListener("contextmenu",function(e){e.preventDefault()}),F.addEventListener("wheel",ae),F.addEventListener("touchmove",ie),F.addEventListener("touchstart",re),F.addEventListener("touchend",oe)}function se(){F&&(F.removeEventListener("mousemove",Q),F.removeEventListener("mousedown",K),F.removeEventListener("mouseup",$),F.removeEventListener("mouseleave",$),F.removeEventListener("mouseenter",$),F.removeEventListener("wheel",ae),F.removeEventListener("touchmove",ie),F.removeEventListener("touchstart",re),F.removeEventListener("touchend",oe))}g.onChange=function(){g.get()?le():se()},E=q(0),te=A.canvas,se(),F=te,le(),le(),s.set(.25),i.set(.05)}
1,Ops.Gl.Matrix.OrbitControls.prototype=new CABLES.Op,CABLES.OPS["eaf4f7ce-08a3-4d1b-b9f4-ebc0b7b1cde1"]={f:Ops.Gl.Matrix.OrbitControls,objName:"Ops.Gl.Matrix.OrbitControls"},Ops.Gl.Matrix.Scale=function(){CABLES.Op.apply(this,arguments);const e=this.inTrigger("render"),n=this.inValueFloat("scale",1),t=this.outTrigger("trigger"),a=this.patch.cgl,r=vec3.create();function o(){var e=n.get();vec3.set(r,e,e,e)}n.onChange=o,o(),e.onTriggered=function(){a.pushModelMatrix(),mat4.scale(a.mMatrix,a.mMatrix,r),t.trigger(),a.popModelMatrix()}},Ops.Gl.Matrix.Scale.prototype=new CABLES.Op,CABLES.OPS["50e7f565-0cdb-47ca-912b-87c04e2f00e3"]={f:Ops.Gl.Matrix.Scale,objName:"Ops.Gl.Matrix.Scale"},Ops.Value.Number=function(){CABLES.Op.apply(this,arguments);const e=this.inValueFloat("value"),n=this.outValue("result");e.onChange=function(){n.set(parseFloat(e.get()))}},Ops.Value.Number.prototype=new CABLES.Op,CABLES.OPS["8fb2bb5d-665a-4d0a-8079-12710ae453be"]={f:Ops.Value.Number,objName:"Ops.Value.Number"},Ops.Gl.Perspective=function(){CABLES.Op.apply(this,arguments);const e=this;var n=e.inTrigger("render"),t=e.inValueFloat("fov y",45),a=e.inValueFloat("frustum near",.01),r=e.inValueFloat("frustum far",20),o=e.inValueBool("Auto Aspect Ratio",!0),i=e.inValue("Aspect Ratio"),l=e.outTrigger("trigger"),s=e.patch.cgl;t.onChange=r.onChange=a.onChange=c,c(),e.setPortGroup("Field of View",t),e.setPortGroup("Frustrum",a,r);var u=0;function c(){s.frameStore.perspective={fovy:t.get(),zFar:r.get(),zNear:a.get()}}n.onTriggered=function(){u=s.getViewPort()[2]/s.getViewPort()[3],o.get()||(u=i.get()),s.pushPMatrix(),mat4.perspective(s.pMatrix,.0174533*t.get(),u,a.get(),r.get()),l.trigger(),s.popPMatrix()}},Ops.Gl.Perspective.prototype=new CABLES.Op,CABLES.OPS["7a78e163-d28c-4f70-a6d0-6d952da79f50"]={f:Ops.Gl.Perspective,objName:"Ops.Gl.Perspective"},Ops.Anim.Timer=function(){CABLES.Op.apply(this,arguments);const e=this;var n=e.inValueBool("Play",!0),t=e.inTriggerButton("Reset"),a=e.outValue("Time"),r=e.inValue("Speed",1),o=new CABLES.Timer;
1function i(){n.get()?(o.play(),e.patch.addOnAnimFrame(e)):(o.pause(),e.patch.removeOnAnimFrame(e))}n.onChange=i,i(),t.onTriggered=function(){o.setTime(0),a.set(0)},e.onAnimFrame=function(){o.update(),a.set(o.get()*r.get())}},Ops.Anim.Timer.prototype=new CABLES.Op,CABLES.OPS["65ae3c2e-90d7-48fe-93df-30245f0bcf34"]={f:Ops.Anim.Timer,objName:"Ops.Anim.Timer"},Ops.Gl.TextureEffects.ImageCompose=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=e.inBool("use viewport size"),a=e.inValueInt("width"),r=e.inValueInt("height"),o=e.inSwitch("filter",["nearest","linear","mipmap"],"linear"),i=e.inValueSelect("wrap",["clamp to edge","repeat","mirrored repeat"]),l=e.inValueBool("HDR"),s=e.outTrigger("trigger"),u=e.outTexture("texture_out"),c=e.inValueSlider("Background Alpha",1),d=e.outValue("Aspect Ratio");e.setPortGroup("Texture Size",[t,a,r]),e.setPortGroup("Texture Settings",[i,o,l]);const p=e.patch.cgl;u.set(CGL.Texture.getEmptyTexture(p));var g=null,f=null,m=8,b=8,v=[0,0,0,0],x=!0,h="".endl()+"uniform float a;".endl()+"void main()".endl()+"{".endl()+" outColor= vec4(0.0,0.0,0.0,a);".endl()+"}",I=new CGL.Shader(p,"imgcompose bg");I.setSource(I.getDefaultVertexShader(),h);new CGL.Uniform(I,"f","a",c);var O=CGL.Texture.FILTER_LINEAR,C=CGL.Texture.WRAP_CLAMP_TO_EDGE;function T(){g&&g.delete(),f&&f.delete(),g=new CGL.TextureEffect(p,{isFloatingPointTexture:l.get()}),f=new CGL.Texture(p,{name:"image compose",isFloatingPointTexture:l.get(),filter:O,wrap:C,width:Math.ceil(a.get()),height:Math.ceil(r.get())}),g.setSourceTexture(f),u.set(CGL.Texture.getEmptyTexture(p)),x=!1}function A(){g||T(),t.get()?(m=p.getViewPort()[2],b=p.getViewPort()[3]):(m=Math.ceil(a.get()),b=Math.ceil(r.get())),m==f.width&&b==f.height||0===m||0===b||(r.set(b),a.set(m),f.setSize(m,b),d.set(m/b),g.setSourceTexture(f),u.set(CGL.Texture.getEmptyTexture(p)),u.set(f)),u.get()&&(u.get().isPowerOfTwo()?e.uiAttribs.hint&&e.uiAttr({hint:null,warning:null}):e.uiAttribs.hint||e.uiAttr({hint:"texture dimensions not power of two! - texture filtering will not work.",warning:null}))}function E(){t.get()?(a.setUiAttribs({greyout:!0}),r.setUiAttribs({greyout:!0})):(a.setUiAttribs({greyout:!1}),r.setUiAttribs({greyout:!1}))}l.onChange=function(){x=!0},t.onChange=function(){E(),t.get()?(a.onChange=null,r.onChange=null):(a.onChange=A,r.onChange=A),A()},e.preRender=function(){S(),I.bind()};var S=function(){g&&!x||T();var e=p.getViewPort();v[0]=e[0],v[1]=e[1],v[2]=e[2],v[3]=e[3],p.gl.blendFunc(p.gl.SRC_ALPHA,p.gl.ONE_MINUS_SRC_ALPHA),A(),p.currentTextureEffect=g,g.setSourceTexture(f),g.startEffect(),p.pushShader(I),p.currentTextureEffect.bind(),p.setTexture(0,p.currentTextureEffect.getCurrentSourceTexture().tex),p.currentTextureEffect.finish(),p.popShader(),s.trigger(),u.set(g.getCurrentSourceTexture()),g.endEffect(),p.setViewPort(v[0],v[1],v[2],v[3]),p.gl.blendFunc(p.gl.SRC_ALPHA,p.gl.ONE_MINUS_SRC_ALPHA),p.currentTextureEffect=null};function L(){"repeat"==i.get()&&(C=CGL.Texture.WRAP_REPEAT),"mirrored repeat"==i.get()&&(C=CGL.Texture.WRAP_MIRRORED_REPEAT),"clamp to edge"==i.get()&&(C=CGL.Texture.WRAP_CLAMP_TO_EDGE),x=!0,A()}function M(){"nearest"==o.get()&&(O=CGL.Texture.FILTER_NEAREST),"linear"==o.get()&&(O=CGL.Texture.FILTER_LINEAR),"mipmap"==o.get()&&(O=CGL.Texture.FILTER_MIPMAP),x=!0,A()}i.set("repeat"),i.onChange=L,o.set("linear"),o.onChange=M,t.set(!0),n.onTriggered=S,e.preRender=S,a.set(640),r.set(360),M(),L(),E()},Ops.Gl.TextureEffects.ImageCompose.prototype=new CABLES.Op,CABLES.OPS["5c04608d-1e42-4e36-be00-1be4a81fc309"]={f:Ops.Gl.TextureEffects.ImageCompose,objName:"Ops.Gl.TextureEffects.ImageCompose"},Ops.Gl.TextureEffects.Blur=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=e.outTrigger("trigger"),a=e.inValueFloat("amount"),r=e.inSwitch("direction",["both","vertical","horizontal"],"both"),o=e.inValueBool("Fast",!0),i=e.patch.cgl;a.set(10);var l=new CGL.Shader(i);l.define("FASTBLUR"),o.onChange=function(){o.get()?l.define("FASTBLUR"):l.removeDefine("FASTBLUR")},l.setSource(l.getDefaultVertexShader(),"IN vec2 texCoord;\nUNI sampler2D tex;\nUNI float dirX;\nUNI float dirY;\nUNI float amount;
1\n\n#ifdef HAS_MASK\n UNI sampler2D imageMask;\n#endif\n\nfloat random(vec3 scale, float seed)\n{\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n}\n\nvoid main()\n{\n vec4 color = vec4(0.0);\n float total = 0.0;\n\n float am=amount;\n #ifdef HAS_MASK\n am=amount*texture(imageMask,texCoord).r;\n if(am<=0.02)\n {\n outColor=texture(tex, texCoord);\n return;\n }\n #endif\n\n vec2 delta=vec2(dirX*am*0.01,dirY*am*0.01);\n\n\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n\n #ifdef MOBILE\n offset = 0.1;\n #endif\n\n #if defined(FASTBLUR) && !defined(MOBILE)\n const float range=5.0;\n #else\n const float range=20.0;\n #endif\n\n for (float t = -range; t <= range; t+=1.0)\n {\n float percent = (t + offset - 0.5) / range;\n float weight = 1.0 - abs(percent);\n vec4 smpl = texture(tex, texCoord + delta * percent);\n\n smpl.rgb *= smpl.a;\n\n color += smpl * weight;\n total += weight;\n }\n\n outColor= color / total;\n\n outColor.rgb /= outColor.a + 0.00001;\n\n\n\n}\n");new CGL.Uniform(l,"t","tex",0);var s=new CGL.Uniform(l,"f","dirX",0),u=new CGL.Uniform(l,"f","dirY",0),c=new CGL.Uniform(l,"f","width",0),d=new CGL.Uniform(l,"f","height",0),p=new CGL.Uniform(l,"f","amount",a.get());a.onChange=function(){p.setValue(a.get())};new CGL.Uniform(l,"t","imageMask",1);var g=0;r.onChange=function(){"both"==r.get()&&(g=0),"horizontal"==r.get()&&(g=1),"vertical"==r.get()&&(g=2)};var f=e.inTexture("mask");f.onChange=function(){f.get()&&f.get().tex?l.define("HAS_MASK"):l.removeDefine("HAS_MASK")},n.onTriggered=function(){CGL.TextureEffect.checkOpInEffect(e)&&(i.pushShader(l),c.setValue(i.currentTextureEffect.getCurrentSourceTexture().width),d.setValue(i.currentTextureEffect.getCurrentSourceTexture().height),i.currentTextureEffect.getCurrentSourceTexture().width==i.canvasWidth&&i.currentTextureEffect.getCurrentSourceTexture().height==i.canvasHeight?e.setUiError("warning","Full screen blurs are slow! Try reducing the resolution to 1/2 or a 1/4",0):e.setUiError("warning",null),0!==g&&2!=g||(i.currentTextureEffect.bind(),i.setTexture(0,i.currentTextureEffect.getCurrentSourceTexture().tex),f.get()&&f.get().tex&&i.setTexture(1,f.get().tex),s.setValue(0),u.setValue(1),i.currentTextureEffect.finish()),0!==g&&1!=g||(i.currentTextureEffect.bind(),i.setTexture(0,i.currentTextureEffect.getCurrentSourceTexture().tex),f.get()&&f.get().tex&&i.setTexture(1,f.get().tex),s.setValue(1),u.setValue(0),i.currentTextureEffect.finish()),i.popShader(),t.trigger())}},Ops.Gl.TextureEffects.Blur.prototype=new CABLES.Op,CABLES.OPS["54f26f53-f637-44c1-9bfb-a2f2b722e998"]={f:Ops.Gl.TextureEffects.Blur,objName:"Ops.Gl.TextureEffects.Blur"},Ops.Trigger.Sequence=function(){CABLES.Op.apply(this,arguments);const e=this;var n=[],t=[],a=function(){for(var e=0;e<t.length;e++)t[e].trigger()};e.inTrigger("exe").onTriggered=a;for(var r=0;r<16;r++)if(t.push(e.addOutPort(new CABLES.Port(e,"trigger "+r,CABLES.OP_PORT_TYPE_FUNCTION))),r<15){var o=e.addInPort(new CABLES.Port(e,"exe "+r,CABLES.OP_PORT_TYPE_FUNCTION));o.onTriggered=a,n.push(o)}},Ops.Trigger.Sequence.prototype=new CABLES.Op,CABLES.OPS["641934f6-5143-4a6b-b592-08ab26e2cab0"]={f:Ops.Trigger.Sequence,objName:"Ops.Trigger.Sequence"},Ops.Gl.Matrix.TransformView=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=e.inValueFloat("posX"),a=e.inValueFloat("posY"),r=e.inValueFloat("posZ"),o=e.inValueFloat("scale"),i=e.inValueFloat("rotX"),l=e.inValueFloat("rotY"),s=e.inValueFloat("rotZ"),u=e.outTrigger("trigger");e.setPortGroup("Position",[t,a,r]),e.setPortGroup("Scale",[o]),e.setPortGroup("Rotation",[i,s,l]);var c=e.patch.cgl,d=vec3.create(),p=vec3.create(),g=mat4.create();mat4.identity(g);var f=!1,m=!1,b=!0,v=!0,x=!0;n.onTriggered=function(){var n=!1;b&&(!function(){m=!1,(0!==t.get()||0!==a.get()||0!==r.get())&&(m=!0);vec3.set(d,t.get(),a.get(),r.get()),b=!1}(),n=!0),v&&(!function(){f=!1,0!==o.get()&&(f=!0);vec3.set(p,o.get(),o.get(),o.get()),v=!1}(),n=!0),x&&(n=!0),n&&h(),c.pushViewMatrix(),mat4.multiply(c.vMatrix,c.vMatrix,g),u.trigger(),c.popViewMatrix(),e.isCurrentUiOp()&&gui.setTransformGizmo({posX:t,posY:a,posZ:r})},e.transform3d=function(){return{pos:[t,a,r]}};var h=function(){mat4.identity(g),m&&mat4.translate(g,g,d),0!==i.get()&&mat4.rotateX(g,g,i.get()*CGL.DEG2RAD),0!==l.get()&&mat4.rotateY(g,g,l.get()*CGL.DEG2RAD),0!==s.get()&&mat4.rotateZ(g,g,s.get()*CGL.DEG2RAD),f&&mat4.scale(g,g,p),x=!1};var I=function(){b=!0};v=function(){v=!0},x=function(){x=!0};i.onChange=x,l.onChange=x,s.onChange=x,o.onChange=v,t.onChange=I,a.onChange=I,r.onChange=I,i.set(0),l.set(0),s.set(0),o.set(1),t.set(0),a.set(0),r.set(0),h()}
1,Ops.Gl.Matrix.TransformView.prototype=new CABLES.Op,CABLES.OPS["0b3e04f7-323e-4ac8-8a22-a21e2f36e0e9"]={f:Ops.Gl.Matrix.TransformView,objName:"Ops.Gl.Matrix.TransformView"},Ops.Gl.Matrix.Transform=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=e.inValue("posX",0),a=e.inValue("posY",0),r=e.inValue("posZ",0),o=e.inValue("scale",1),i=e.inValue("rotX",0),l=e.inValue("rotY",0),s=e.inValue("rotZ",0),u=e.outTrigger("trigger");e.setPortGroup("Rotation",[i,l,s]),e.setPortGroup("Position",[t,a,r]),e.setPortGroup("Scale",[o]),e.setUiAxisPorts(t,a,r);const c=e.patch.cgl;var d=vec3.create(),p=vec3.create(),g=mat4.create();mat4.identity(g);var f=!1,m=!1,b=!0,v=!0,x=!0;function h(){mat4.identity(g),m&&mat4.translate(g,g,d),0!==i.get()&&mat4.rotateX(g,g,i.get()*CGL.DEG2RAD),0!==l.get()&&mat4.rotateY(g,g,l.get()*CGL.DEG2RAD),0!==s.get()&&mat4.rotateZ(g,g,s.get()*CGL.DEG2RAD),f&&mat4.scale(g,g,p),x=!1}i.onChange=l.onChange=s.onChange=function(){x=!0},t.onChange=a.onChange=r.onChange=function(){b=!0},o.onChange=function(){v=!0},n.onTriggered=function(){var n=!1;b&&(!function(){m=!1,(0!==t.get()||0!==a.get()||0!==r.get())&&(m=!0);vec3.set(d,t.get(),a.get(),r.get()),b=!1}(),n=!0),v&&(f=!0,vec3.set(p,o.get(),o.get(),o.get()),v=!1,n=!0),x&&(n=!0),n&&h(),c.pushModelMatrix(),mat4.multiply(c.mMatrix,c.mMatrix,g),u.trigger(),c.popMo
1delMatrix(),CABLES.UI&&CABLES.UI.showCanvasTransforms&&gui.setTransform(e.id,t.get(),a.get(),r.get()),e.isCurrentUiOp()&&gui.setTransformGizmo({posX:t,posY:a,posZ:r})},e.transform3d=function(){return{pos:[t,a,r]}},h()},Ops.Gl.Matrix.Transform.prototype=new CABLES.Op,CABLES.OPS["650baeb1-db2d-4781-9af6-ab4e9d4277be"]={f:Ops.Gl.Matrix.Transform,objName:"Ops.Gl.Matrix.Transform"},Ops.TimeLine.TimeLineControls=function(){CABLES.Op.apply(this,arguments);const e=this;var n=e.outValue("Play/Stop"),t=e.outValue("time");function a(){n.set(!1),setTimeout(function(){t.set(e.patch.timer.getTime()),n.set(e.patch.timer.isPlaying())},10)}e.patch.timer.onPlayPause(a),e.patch.timer.onTimeChange(a)},Ops.TimeLine.TimeLineControls.prototype=new CABLES.Op,CABLES.OPS["53cb7b1a-56c7-405f-b427-12db78fbfd2f"]={f:Ops.TimeLine.TimeLineControls,objName:"Ops.TimeLine.TimeLineControls"},Ops.TimeLine.TimeLineLoop=function(){CABLES.Op.apply(this,arguments);const e=this;var n=e.inTrigger("Execute"),t=e.inValueFloat("duration",2),a=e.outTrigger("trigger");n.onTriggered=function(){e.patch.timer.getTime()>t.get()&&e.patch.timer.setTime(0),a.trigger()}},Ops.TimeLine.TimeLineLoop.prototype=new CABLES.Op,CABLES.OPS["e450a850-7311-48b5-abfc-07ec1fea3b8e"]={f:Ops.TimeLine.TimeLineLoop,objName:"Ops.TimeLine.TimeLineLoop"},Ops.Patch.Function=function(){CABLES.Op.apply(this,arguments);const e=this;var n=e.addInPort(new CABLES.Port(e,"Function Name",CABLES.OP_PORT_TYPE_VALUE,{type:"string"})),t=e.inTriggerButton("trigger"),a=e.outTrigger("Next");function r(){a.trigger()}t.onTriggered=r,n.onChange=function(){e.patch.config[n.get()]=r}},Ops.Patch.Function.prototype=new CABLES.Op,CABLES.OPS["b13d13a2-ab06-4c4c-afa3-5d506ecf327a"]={f:Ops.Patch.Function,objName:"Ops.Patch.Function"},Ops.TimeLine.TimeLinePlayer=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTriggerButton("Play"),t=e.inTriggerButton("Pause"),a=e.inTriggerButton("rewind"),r=e.inFloat("Set current time",0),o=e.outTrigger("play trigger"),i=e.outTrigger("pause trigger"),l=e.outTrigger("rewind trigger"),s=e.outBool("is Playing"),u=e.outNumber("set time (seconds)"),c=e.outValue("current time"),d=e.outValue("current frame");n.onTriggered=function(){e.patch.timer.play(),e.patch.timer.setTime(r.get()),u.set(r.get()),o.trigger()},t.onTriggered=function(){e.patch.timer.pause(),i.trigger()},e.onAnimFrame=function(n){d.set(Math.round(30*n)),c.set(n),s.set(e.patch.timer.isPlaying())},a.onTriggered=function(){e.patch.timer.setTime(0),l.trigger()}},Ops.TimeLine.TimeLinePlayer.prototype=new CABLES.Op,CABLES.OPS["97e57613-6a51-41cf-9de5-fe3dbc2c69b2"]={f:Ops.TimeLine.TimeLinePlayer,objName:"Ops.TimeLine.TimeLinePlayer"}
1,Ops.Trigger.TriggerOnce=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTriggerButton("Exec"),t=e.inTriggerButton("Reset"),a=e.outTrigger("Next");var r=e.outValue("Was Triggered"),o=!1;e.toWorkPortsNeedToBeLinked(n),t.onTriggered=function(){o=!1,r.set(o)},n.onTriggered=function(){o||(o=!0,a.trigger(),r.set(o))}},Ops.Trigger.TriggerOnce.prototype=new CABLES.Op,CABLES.OPS["cf3544e4-e392-432b-89fd-fcfb5c974388"]={f:Ops.Trigger.TriggerOnce,objName:"Ops.Trigger.TriggerOnce"},Ops.Trigger.TriggerExtender=function(){CABLES.Op.apply(this,arguments);var e=this.inTriggerButton("Execute"),n=this.outTrigger("Next");e.onTriggered=function(){n.trigger()}},Ops.Trigger.TriggerExtender.prototype=new CABLES.Op,CABLES.OPS["7ef594f3-4907-47b0-a2d3-9854eda1679d"]={f:Ops.Trigger.TriggerExtender,objName:"Ops.Trigger.TriggerExtender"},Ops.Boolean.TriggerBoolean=function(){CABLES.Op.apply(this,arguments);var e=this.inTriggerButton("True"),n=this.inTriggerButton("false"),t=this.outValueBool("Result");e.onTriggered=function(){t.set(!0)},n.onTriggered=function(){t.set(!1)}},Ops.Boolean.TriggerBoolean.prototype=new CABLES.Op,CABLES.OPS["31f65abe-9d6c-4ba6-a291-ef2de41d2087"]={f:Ops.Boolean.TriggerBoolean,objName:"Ops.Boolean.TriggerBoolean"},Ops.Ui.Comment=function(){CABLES.Op.apply(this,arguments);const e=this;function n(){CABLES.UI&&(e.uiAttr({comment_title:e.inTitle.get(),comment_text:e.text.get()}),e.name=e.inTitle.get())}e.inTitle=e.inString("title"," "),e.text=e.inTextarea("text"),e.text.set(" "),e.name=" ",e.inTitle.set("new comment"),e.inTitle.onChange=n,e.text.onChange=n,e.onLoaded=n,n()},Ops.Ui.Comment.prototype=new CABLES.Op,CABLES.OPS["9de0c04f-666b-47cd-9722-a8cf36ab4720"]={f:Ops.Ui.Comment,objName:"Ops.Ui.Comment"},Ops.Gl.TextureEffects.DrawImage_v2=function(){CABLES.Op.apply(this,arguments);const e=this,n="#ifdef HAS_TEXTURES\n IN vec2 texCoord;\n UNI sampler2D tex;\n UNI sampler2D image;\n#endif\n\nIN mat3 transform;\nUNI float rotate;\n\n{{CGL.BLENDMODES}}\n\n#ifdef HAS_TEXTUREALPHA\n UNI sampler2D imageAlpha;\n#endif\n\nUNI float amount;
1\n\n#ifdef ASPECT_RATIO\n UNI float aspectTex;\n UNI float aspectPos;\n#endif\n\nvoid main()\n{\n vec4 blendRGBA=vec4(0.0,0.0,0.0,1.0);\n #ifdef HAS_TEXTURES\n vec2 tc=texCoord;\n\n #ifdef TEX_FLIP_X\n tc.x=1.0-tc.x;\n #endif\n #ifdef TEX_FLIP_Y\n tc.y=1.0-tc.y;\n #endif\n\n #ifdef ASPECT_RATIO\n #ifdef ASPECT_AXIS_X\n tc.y=(1.0-aspectPos)-(((1.0-aspectPos)-tc.y)*aspectTex);\n #endif\n #ifdef ASPECT_AXIS_Y\n tc.x=(1.0-aspectPos)-(((1.0-aspectPos)-tc.x)/aspectTex);\n #endif\n #endif\n\n #ifdef TEX_TRANSFORM\n vec3 coordinates=vec3(tc.x, tc.y,1.0);\n tc=(transform * coordinates ).xy;\n #endif\n\n blendRGBA=texture(image,tc);\n\n vec3 blend=blendRGBA.rgb;\n vec4 baseRGBA=texture(tex,texCoord);\n vec3 base=baseRGBA.rgb;\n vec3 colNew=_blend(base,blend);\n\n #ifdef REMOVE_ALPHA_SRC\n blendRGBA.a=1.0;\n #endif\n\n #ifdef HAS_TEXTUREALPHA\n vec4 colImgAlpha=texture(imageAlpha,tc);\n float colImgAlphaAlpha=colImgAlpha.a;\n\n #ifdef ALPHA_FROM_LUMINANCE\n vec3 gray = vec3(dot(vec3(0.2126,0.7152,0.0722), colImgAlpha.rgb ));\n colImgAlphaAlpha=(gray.r+gray.g+gray.b)/3.0;\n #endif\n\n #ifdef ALPHA_FROM_INV_UMINANCE\n vec3 gray = vec3(dot(vec3(0.2126,0.7152,0.0722), colImgAlpha.rgb ));\n colImgAlphaAlpha=1.0-(gray.r+gray.g+gray.b)/3.0;\n #endif\n\n blendRGBA.a=colImgAlphaAlpha*blendRGBA.a;\n #endif\n #endif\n\n #ifdef CLIP_REPEAT\n if(tc.y>1.0 || tc.y<0.0 || tc.x>1.0 || tc.x<0.0)colNew.rgb=vec3(0.0);\n #endif\n\n #ifdef ASPECT_RATIO\n #ifdef ASPECT_CROP\n if(tc.y>1.0 || tc.y<0.0 || tc.x>1.0 || tc.x<0.0) colNew.rgb=base.rgb;//vec3(0.0);\n #endif\n #endif\n\n blendRGBA.rgb=mix( colNew, base ,1.0-blendRGBA.a*amount);\n blendRGBA.a=1.0;\n\n outColor= blendRGBA;\n\n}",t="IN vec3 vPosition;\nIN vec2 attrTexCoord;\nIN vec3 attrVertNormal;\n\nUNI mat4 projMatrix;\nUNI mat4 mvMatrix;\n\nUNI float posX;\nUNI float posY;\nUNI float scaleX;\nUNI float scaleY;\nUNI float rotate;\n\nOUT vec2 texCoord;\nOUT vec3 norm;\nOUT mat3 transform;\n\nvoid main()\n{\n texCoord=attrTexCoord;\n norm=attrVertNormal;\n\n #ifdef TEX_TRANSFORM\n vec3 coordinates=vec3(attrTexCoord.x, attrTexCoord.y,1.0);\n float angle = radians( rotate );\n vec2 scale= vec2(scaleX,scaleY);\n vec2 translate= vec2(posX,posY);\n\n transform = mat3( scale.x * cos( angle ), scale.x * sin( angle ), 0.0,\n - scale.y * sin( angle ), scale.y * cos( angle ), 0.0,\n - 0.5 * scale.x * cos( angle ) + 0.5 * scale.y * sin( angle ) - 0.5 * translate.x*2.0 + 0.5, - 0.5 * scale.x * sin( angle ) - 0.5 * scale.y * cos( angle ) - 0.5 * translate.y*2.0 + 0.5, 1.0);\n #endif\n\n gl_Position = projMatrix * mvMatrix * vec4(vPosition, 1.0);\n}\n";var a=e.inTrigger("render"),r=CGL.TextureEffect.AddBlendSelect(e,"blendMode"),o=e.inValueSlider("amount",1),i=e.inTexture("image"),l=e.inValueBool("removeAlphaSrc",!1),s=e.inTexture("imageAlpha"),u=e.inValueSelect("alphaSrc",["alpha channel","luminance","luminance inv"]),c=e.inValueBool("invert alpha channel");const d=e.inValueBool("Aspect Ratio",!1),p=e.inValueSelect("Stretch Axis",["X","Y"],"X"),g=e.inValueSlider("Position",0),f=e.inValueBool("Crop",!1);var m=e.outTrigger("trigger");r.set("normal");var b=e.patch.cgl,v=new CGL.Shader(b,"drawimage");function x(){s.isLinked()?(l.setUiAttribs({greyout:!0}),u.setUiAttribs({greyout:!1}),c.setUiAttribs({greyout:!1})):(l.setUiAttribs({greyout:!1}),u.setUiAttribs({greyout:!0}),c.setUiAttribs({greyout:!0}))}s.onLinkChanged=x,e.setPortGroup("Mask",[s,u,c]),e.setPortGroup("Aspect Ratio",[d,g,f,p]),l.onChange=O,e.toWorkPortsNeedToBeLinked(i),v.setSource(t,n);new CGL.Uniform(v,"t","tex",0),new CGL.Uniform(v,"t","image",1),new CGL.Uniform(v,"t","imageAlpha",2);const h=new CGL.Uniform(v,"f","aspectTex",1);new CGL.Uniform(v,"f","aspectPos",g);function I(){v.removeDefine("ASPECT_AXIS_X"),v.removeDefine("ASPECT_AXIS_Y"),d.get()?(v.define("ASPECT_RATIO"),f.get()?v.define("ASPECT_CROP"):v.removeDefine("ASPECT_CROP"),"X"==p.get()&&v.define("ASPECT_AXIS_X"),"Y"==p.get()&&v.define("ASPECT_AXIS_Y"),g.setUiAttribs({greyout:!1}),f.setUiAttribs({greyout:!1}),p.setUiAttribs({greyout:!1})):(v.removeDefine("ASPECT_RATIO"),f.get()?v.define("ASPECT_CROP"):v.removeDefine("ASPECT_CROP"),"X"==p.get()&&v.define("ASPECT_AXIS_X"),"Y"==p.get()&&v.define("ASPECT_AXIS_Y"),g.setUiAttribs({greyout:!0}),f.setUiAttribs({greyout:!0}),p.setUiAttribs({greyout:!0}))}function O(){l.get()?v.define("REMOVE_ALPHA_SRC"):v.removeDefine("REMOVE_ALPHA_SRC")}c.onChange=function(){c.get()?v.define("INVERT_ALPHA"):v.removeDefine("INVERT_ALPHA")},d.onChange=I,f.onChange=I,p.onChange=I,u.onChange=function(){v.toggleDefine("ALPHA_FROM_LUMINANCE","luminance"==u.get()),v.toggleDefine("ALPHA_FROM_INV_UMINANCE","luminance_inv"==u.get())},u.set("alpha channel");var C=e.inValueBool("flip x"),T=e.inValueBool("flip y");C.onChange=function(){C.get()?v.define("TEX_FLIP_X"):v.removeDefine("TEX_FLIP_X")},T.onChange=function(){T.get()?v.define("TEX_FLIP_Y"):v.removeDefine("TEX_FLIP_Y")};var A=e.inValueBool("Transform"),E=e.inValueSlider("Scale X",1),S=e.inValueSlider("Scale Y",1),L=e.inValue("Position X",0),M=e.inValue("Position Y",0),y=e.inValue("Rotation",0),N=e.inValueBool("Clip Repeat",!1);N.onChange=function(){N.get()?v.define("CLIP_REPEAT"):v.removeDefine("CLIP_REPEAT")};new CGL.Uniform(v,"f","scaleX",E),new CGL.Uniform(v,"f","scaleY",S),new CGL.Uniform(v,"f","posX",L),new CGL.Uniform(v,"f","posY",M),new CGL.Uniform(v,"f","rotate",y);A.onChange=w;function w(){v.toggleDefine("TEX_TRANSFORM",A.get()),A.get()?(E.setUiAttribs({greyout:!1}),S.setUiAttribs({greyout:!1}),L.setUiAttribs({greyout:!1}),M.setUiAttribs({greyout:!1}),y.setUiAttribs({greyout:!1})):(E.setUiAttribs({greyout:!0}),S.setUiAttribs({greyout:!0}),L.setUiAttribs({greyout:!0}),M.setUiAttribs({greyout:!0}),y.setUiAttribs({greyout:!0}))}CGL.TextureEffect.setupBlending(e,v,r,o);new CGL.Uniform(v,"f","amount",o);s.onChange=function(){s.get()&&s.get().tex?v.define("HAS_TEXTUREALPHA"):v.removeDefine("HAS_TEXTUREALPHA")},a.onTriggered=function(){if(CGL.TextureEffect.checkOpInEffect(e)){var n=i.get();if(n&&n.tex&&o.get()>0){b.pushShader(v),b.currentTextureEffect.bind();const e=b.currentTextureEffect.getCurrentSourceTexture();b.setTexture(0,e.tex),h.setValue(1/(n.height/n.width*e.width/e.height)),b.setTexture(1,n.tex),s.get()&&s.get().tex&&b.setTexture(2,s.get().tex),b.currentTextureEffect.finish(),b.popShader()}m.trigger()}},w(),O(),x(),I()},Ops.Gl.TextureEffects.DrawImage_v2.prototype=new CABLES.Op,CABLES.OPS["f94b5136-61fd-4558-8348-e7c8db5a6348"]={f:Ops.Gl.TextureEffects.DrawImage_v2,objName:"Ops.Gl.TextureEffects.DrawImage_v2"},Ops.Anim.SimpleAnim=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("exe"),t=e.inTriggerButton("reset"),a=e.inTriggerButton("rewind"),r=e.inValueFloat("start",0),o=e.inValueFloat("end",1),i=e.inValueFloat("duration",.5),l=e.inValueBool("loop"),s=e.inValueBool("Wait for Reset",!0),u=e.outTrigger("Next"),c=e.outValue("result"),d=e.outValue("finished"),p=e.outTrigger("Finished Trigger"),g=new CABLES.Anim;var f=!1;g.createPort(e,"easing",b);var m=-1;function b(){3!=g.keys.length&&(g.setValue(0,0),g.setValue(1,0),g.setValue(2,0)
1),g.keys[0].time=CABLES.now()/1e3,g.keys[0].value=r.get(),g.defaultEasing!=m&&g.keys[0].setEasing(g.defaultEasing),g.keys[1].time=i.get()+CABLES.now()/1e3,g.keys[1].value=o.get(),g.defaultEasing!=m&&g.keys[1].setEasing(g.defaultEasing),g.loop=l.get(),g.loop?(g.keys[2].time=2*i.get()+CABLES.now()/1e3,g.keys[2].value=r.get(),g.defaultEasing!=m&&g.keys[2].setEasing(g.defaultEasing)):(g.keys[2].time=g.keys[1].time,g.keys[2].value=g.keys[1].value,g.defaultEasing!=m&&g.keys[2].setEasing(g.defaultEasing)),d.set(!1),m=g.defaultEasing}l.onChange=b,b(),i.onChange=b,t.onTriggered=function(){f=!0,b()},a.onTriggered=function(){g.keys[0].time=CABLES.now()/1e3,g.keys[0].value=r.get(),g.keys[1].time=CABLES.now()/1e3,g.keys[1].value=r.get(),g.keys[2].time=CABLES.now()/1e3,g.keys[2].value=r.get(),c.set(r.get())},n.onTriggered=function(){if(!s.get()||f){var e=CABLES.now()/1e3,n=g.getValue(e);c.set(n),g.hasEnded(e)&&(d.get()||p.trigger(),d.set(!0)),u.trigger()}else c.set(r.get())}},Ops.Anim.SimpleAnim.prototype=new CABLES.Op,CABLES.OPS["5b244b6e-c505-4743-b2cc-8119ef720028"]={f:Ops.Anim.SimpleAnim,objName:"Ops.Anim.SimpleAnim"},Ops.Gl.TextureEffects.Stripes_v2=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("Render"),t=CGL.TextureEffect.AddBlendSelect(e,"Blend Mode","normal"),a=e.inValueSlider("Amount",1),r=e.inValue("Num",5),o=e.inValue("Width",.5),i=e.inValueSlider("Rotate",0),l=e.inValue("Offset",0),s=e.inValueBool("Gradients"),u=e.inValueBool("Circular"),c=e.inValueSlider("r",Math.random()),d=e.inValueSlider("g",Math.random()),p=e.inValueSlider("b",Math.random()),g=e.outTrigger("trigger");function f(){b.toggleDefine("STRIPES_SMOOTHED",s.get()),b.toggleDefine("CIRCULAR",u.get())}c.setUiAttribs({colorPick:!0}),s.onChange=f,u.onChange=f;const m=e.patch.cgl,b=new CGL.Shader(m,"textureeffect stripes");b.setSource(b.getDefaultVertexShader(),"IN vec2 texCoord;\nUNI sampler2D tex;\nUNI float amount;
1\nUNI float num;\nUNI float width;\nUNI float axis;\nUNI float offset;\nUNI float rotate;\n\nUNI float r;\nUNI float g;\nUNI float b;\n\n\n{{CGL.BLENDMODES}}\n\n#define PI 3.14159265\n#define TAU (2.0*PI)\n\nvoid pR(inout vec2 p, float a)\n{\n\tp = cos(a)*p + sin(a)*vec2(p.y, -p.x);\n}\nvoid main()\n{\n vec2 uv = texCoord-0.5;\n pR(uv.xy,rotate*TAU);\n vec4 stripe=vec4(0.0);\n\n float v=0.0;\n float c=1.0;\n v=uv.y;\n v+=offset;\n\n float m=mod(v,1.0/num);\n\n #ifdef CIRCULAR\n m=mod((length(uv)+offset)*1.5,1.0/num);\n #endif\n\n float rm=width*2.0*1.0/num/2.0;\n\n if(m>rm)\n stripe.rgb=mix(stripe.rgb,vec3( r,g,b ),1.0);\n\n #ifdef STRIPES_SMOOTHED\n m*=2.0;\n stripe.rgb= vec3(r,g,b) * vec3(smoothstep(0.,1., abs(( ((m-rm) )/ (rm) ) ) ));\n //stripe.rgb= vec3(smoothstep(0.,1., abs(( ((m-rm) )/ (rm) ) ) ));\n #endif\n\n //blend section\n vec4 col=vec4(stripe.rgb,1.0);\n vec4 base=texture(tex,texCoord);\n\n outColor=cgl_blend(base,col,amount);\n}\n");new CGL.Uniform(b,"t","tex",0),new CGL.Uniform(b,"f","amount",a),new CGL.Uniform(b,"f","rotate",i),new CGL.Uniform(b,"f","num",r),new CGL.Uniform(b,"f","width",o),new CGL.Uniform(b,"f","offset",l),new CGL.Uniform(b,"f","r",c),new CGL.Uniform(b,"f","g",d),new CGL.Uniform(b,"f","b",p);CGL.TextureEffect.setupBlending(e,b,t,a),n.onTriggered=function(){CGL.TextureEffect.checkOpInEffect(e)&&(m.pushShader(b),m.currentTextureEffect.bind(),m.setTexture(0,m.currentTextureEffect.getCurrentSourceTexture().tex),m.currentTextureEffect.finish(),m.popShader(),g.trigger())}},Ops.Gl.TextureEffects.Stripes_v2.prototype=new CABLES.Op,CABLES.OPS["b8a37747-1e84-4665-b1cc-29256d55cc7c"]={f:Ops.Gl.TextureEffects.Stripes_v2,objName:"Ops.Gl.TextureEffects.Stripes_v2"},Ops.Gl.Matrix.ScaleXYZ=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=e.inValueFloat("x",1),a=e.inValueFloat("y",1),r=e.inValueFloat("z",1),o=e.outTrigger("trigger"),i=e.patch.cgl,l=vec3.create();var s=!0;function u(){s=!0}t.onChange=a.onChange=r.onChange=u,u(),n.onTriggered=function(){s&&(vec3.set(l,t.get(),a.get(),r.get()),s=!1);i.pushModelMatrix(),mat4.scale(i.mMatrix,i.mMatrix,l),o.trigger(),i.popModelMatrix()}},Ops.Gl.Matrix.ScaleXYZ.prototype=new CABLES.Op,CABLES.OPS["9ba52457-5f0d-4b20-a97c-4ec4856b8e29"]={f:Ops.Gl.Matrix.ScaleXYZ,objName:"Ops.Gl.Matrix.ScaleXYZ"},Ops.Vars.VarSetNumber=function(){CABLES.Op.apply(this,arguments);const e=this;e.varName=e.inDropDown("Variable",[],"",!0);var n=e.inValueFloat("Value",0);function t(){if(CABLES.UI){var n=[],t=e.patch.getVars();for(var a in n.push("+ create new one"),t)n.push(a);e.varName.uiAttribs.values=n}}function a(){e.patch.setVarValue(e.varName.get(),n.get())}e.varName.onChange=function(){if(CABLES.UI){if("+ create new one"==e.varName.get())return void CABLES.CMD.PATCH.createVariable(e);e.setTitle("set #"+e.varName.get())}a()},n.onChange=a,n.changeAlways=!0,e.patch.addEventListener("variablesChanged",t),t()},Ops.Vars.VarSetNumber.prototype=new CABLES.Op,CABLES.OPS["b0190d08-82f6-45b2-bc0c-b70a3257ea92"]={f:Ops.Vars.VarSetNumber,objName:"Ops.Vars.VarSetNumber"},Ops.Math.MapRange=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.outValue("result");var t=e.inValueFloat("value"),a=e.inValueFloat("old min"),r=e.inValueFloat("old max"),o=e.inValueFloat("new min"),i=e.inValueFloat("new max"),l=e.inValueSelect("Easing",["Linear","Smoothstep","Smootherstep"],"Linear");e.setPortGroup("Input Range",[a,r]),e.setPortGroup("Output Range",[o,i]);var s=0,u=0;function c(){if(t.get()>=Math.max(r.get(),a.get()))n.set(i.get());else if(t.get()<=Math.min(r.get(),a.get()))n.set(o.get());else{var e=o.get(),l=i.get(),c=a.get(),d=r.get(),p=t.get(),g=!1,f=Math.min(c,d),m=Math.max(c,d);f!=c&&(g=!0);var b=!1,v=Math.min(e,l),x=Math.max(e,l);v!=e&&(b=!0);var h=0;h=g?(m-p)*(x-v)/(m-f):(p-f)*(x-v)/(m-f),u=b?x-h:h+v,0===s?n.set(u):1==s?(p=Math.max(0,Math.min(1,(u-e)/(l-e))),n.set(e+p*p*(3-2*p)*(l-e))):2==s&&(p=Math.max(0,Math.min(1,(u-e)/(l-e))),n.set(e+p*p*p*(p*(6*p-15)+10)*(l-e)))}}l.onChange=function(){s="Smoothstep"==l.get()?1:"Smootherstep"==l.get()?2:0},t.set(0),a.set(0),r.set(1),o.set(-1),i.set(1),t.onChange=c,a.onChange=c,r.onCh
1ange=c,o.onChange=c,i.onChange=c,n.set(0),c()},Ops.Math.MapRange.prototype=new CABLES.Op,CABLES.OPS["2617b407-60a0-4ff6-b4a7-18136cfa7817"]={f:Ops.Math.MapRange,objName:"Ops.Math.MapRange"},Ops.Math.ApproachInterpolation=function(){CABLES.Op.apply(this,arguments);const e=this;var n=5,t=e.inTrigger("Update"),a=e.inValue("Value"),r=e.outTrigger("Next"),o=e.inValue("Divisor",n),i=e.outValue("Result",0),l=0,s=0,u=0;a.onChange=function(){s=a.get()},o.onChange=function(){0==(n=o.get())&&(n=5)};var c=0;t.onTriggered=function(){CABLES.now()-u>500&&(l=a.get()),u=CABLES.now(),n<=0&&(n=1e-4),(l+=(s-l)/n)>0&&l<1e-9&&(l=0),n!=n&&(l=0),c!=l&&(i.set(l),c=l),r.trigger()}},Ops.Math.ApproachInterpolation.prototype=new CABLES.Op,CABLES.OPS["eb4aa728-d0ee-4c53-833d-d0b086b11250"]={f:Ops.Math.ApproachInterpolation,objName:"Ops.Math.ApproachInterpolation"},Ops.Devices.Mouse.Mouse=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inValueBool("relative"),t=e.inValueBool("normalize"),a=e.inValueBool("Active",!0),r=e.inValueBool("smooth"),o=e.inValueFloat("smoothSpeed",20),i=e.inValueSelect("Area",["Canvas","Document","Parent Element"],"Canvas"),l=e.inValueFloat("multiply",1),s=e.inValueBool("flip y",!0),u=e.outValue("x"),c=e.outValue("y"),d=e.inBool("right click prevent default",!0),p=e.outValueBool("button down"),g=e.outTrigger("click"),f=e.outTrigger("Button Up"),m=e.outTrigger("click right"),b=e.outValueBool("mouseOver"),v=e.outValue("button");var x=0,h=e.patch.cgl,I=null;function O(e,n){if(t.get()){var a=h.canvas.width/h.pixelDensity,r=h.canvas.height/h.pixelDensity;I==document.body&&(a=I.clientWidth/h.pixelDensity,r=I.clientHeight/h.pixelDensity),u.set((e/a*2-1)*l.get()),c.set((n/r*2-1)*l.get())}else u.set(e*l.get()),c.set(n*l.get())}r.onChange=function(){r.get()?x=setInterval(w,5):x&&clearTimeout(x)};var C=0,T=0;t.onChange=function(){O(A=0,E=0)};var A=h.canvas.width/2,E=h.canvas.height/2;C=A,T=E,u.set(A),c.set(E);var S=0,L=0,M=0,y=0;z(),i.onChange=z;var N=0;function w(){(N=o.get())<=0&&(N=.01);var e=Math.abs(A-C),n=Math.round(e/N,0);C=C<A?C+n:C-n;var t=Math.abs(E-T),a=Math.round(t/N,0);O(C,T=T<E?T+a:T-a)}function _(e){p.set(!1),b.set(!0),N=o.get()}function P(e){v.set(e.which),p.set(!0)}function B(e){v.set(0),p.set(!1),f.trigger()}function j(e){m.trigger(),d.get()&&e.preventDefault()}function G(e){g.trigger()}function D(e){S=0,L=0,N=100,"Document"!=i.get()&&r.get()&&(A=h.canvas.width/2,E=h.canvas.height/2),b.set(!1),p.set(!1)}function k(e){b.set(!0),n.get()?(0!=S&&0!=L&&(M=e.offsetX-S,y=e.offsetY-L),S=e.offsetX,L=e.offsetY,A+=M,(E+=y)>460&&(E=460)):("Document"!=i.get()?(M=e.offsetX,y=e.offsetY):(M=e.clientX,y=e.clientY),r.get()?(A=M,E=s.get()?I.clientHeight-y:y):s.get()?O(M,I.clientHeight-y):O(M,y))}function V(e){p.set(!0),e.touches&&e.touches.length>0&&P(e.touches[0])}function U(e){p.set(!1),B()}function R(){I.removeEventListener("touchend",U),I.removeEventListener("touchstart",V),I.removeEventListener("click",G),I.removeEventListener("mousemove",k),I.removeEventListener("mouseleave",D),I.removeEventListener("mousedown",P),I.removeEventListener("mouseup",B),I.removeEventListener("mouseenter",_),I.removeEventListener("contextmenu",j),I=null}function z(){I&&R(),I=h.canvas,"Document"==i.get()&&(I=document.body),"Parent Element"==i.get()&&(I=h.canvas.parentElement),I.addEventListener("touchend",U),I.addEventListener("touchstart",V),I.addEventListener("click",G),I.addEventListener("mousemove",k),I.addEventListener("mouseleave",D),I.addEventListener("mousedown",P),I.addEventListener("mouseup",B),I.addEventListener("mouseenter",_),I.addEventListener("contextmenu",j)}n.onChange=function(){M=0,y=0},a.onChange=function(){I&&R(),a.get()&&z()},e.onDelete=function(){R()},z()},Ops.Devices.Mouse.Mouse.prototype=new CABLES.Op,CABLES.OPS["0bf51f3e-3161-4cc5-aecf-6e9160089fd2"]={f:Ops.Devices.Mouse.Mouse,objName:"Ops.Devices.Mouse.Mouse"},Ops.Gl.Render2Texture=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.patch.cgl,t=e.inTrigger("render"),a=e.inValueBool("use viewport size",!0),r=e.inValueInt("texture width",512),o=e.inValueInt("texture height",512),i=e.inBool("Auto Aspect",!1),l=e.inSwitch("filter",["nearest","linear","mipmap"],"linear"),s=e.inSwitch("MSAA",["
1none","2x","4x","8x"],"none"),u=e.outTrigger("trigger"),c=e.outTexture("texture"),d=e.outTexture("textureDepth"),p=e.inValueBool("HDR"),g=e.inValueBool("Depth",!0),f=e.inValueBool("Clear",!0);var m=null,b=!0;function v(){r.setUiAttribs({greyout:a.get()}),o.setUiAttribs({greyout:a.get()}),i.setUiAttribs({greyout:a.get()})}function x(){if(!m||b){if(m&&m.delete(),n.glVersion>=2){var t=!0,v=4;"none"==s.get()&&(v=0,t=!1),"2x"==s.get()&&(v=2),"4x"==s.get()&&(v=4),"8x"==s.get()&&(v=8),m=new CGL.Framebuffer2(n,8,8,{isFloatingPointTexture:p.get(),multisampling:t,depth:g.get(),multisamplingSamples:v,clear:f.get()})}else m=new CGL.Framebuffer(n,8,8,{isFloatingPointTexture:p.get()});"nearest"==l.get()?m.setFilter(CGL.Texture.FILTER_NEAREST):"linear"==l.get()?m.setFilter(CGL.Texture.FILTER_LINEAR):"mipmap"==l.get()&&m.setFilter(CGL.Texture.FILTER_MIPMAP),d.set(m.getTextureDepth()),b=!1}a.val&&(r.set(n.getViewPort()[2]),o.set(n.getViewPort()[3])),m.getWidth()==Math.ceil(r.get())&&m.getHeight()==Math.ceil(o.get())||m.setSize(Math.max(1,Math.ceil(r.get())),Math.max(1,Math.ceil(o.get()))),m.renderStart(n),i.get()&&mat4.perspective(n.pMatrix,45,r.get()/o.get(),.1,1e3),u.trigger(),m.renderEnd(n),n.resetViewPort(),c.set(CGL.Texture.getEmptyTexture(e.patch.cgl)),c.set(m.getTextureColor())}c.set(CGL.Texture.getEmptyTexture(n)),e.setPortGroup("Size",[a,r,o,i]),a.onChange=v,p.onChange=g.onChange=f.onChange=l.onChange=s.onChange=function(){b=!0},t.onTriggered=x,e.preRender=x,v()},Ops.Gl.Render2Texture.prototype=new CABLES.Op,CABLES.OPS["d01fa820-396c-4cb5-9d78-6b14762852af"]={f:Ops.Gl.Render2Texture,objName:"Ops.Gl.Render2Texture"},Ops.Gl.Meshes.FullscreenRectangle=function(){CABLES.Op.apply(this,arguments);const e=this,n="UNI sampler2D tex;\nIN vec2 texCoord;\n\nvoid main()\n{\n outColor= texture(tex,vec2(texCoord.x,(1.0-texCoord.y)));\n}\n",t="{{MODULES_HEAD}}\n\nIN vec3 vPosition;\nUNI mat4 projMatrix;\nUNI mat4 mvMatrix;\n\nOUT vec2 texCoord;\nIN vec2 attrTexCoord;\n\nvoid main()\n{\n vec4 pos=vec4(vPosition, 1.0);\n\n texCoord=attrTexCoord;\n\n gl_Position = projMatrix * mvMatrix * pos;\n}\n",a=e.inTrigger("render"),r=e.inValueBool("Center in Canvas"),o=e.inValueBool("Flip Y"),i=e.inValueBool("Flip X"),l=e.inTexture("Texture"),s=e.outTrigger("trigger"),u=e.patch.cgl;var c=null,d=new CGL.Geometry("fullscreen rectangle"),p=0,g=0;r.onChange=I,i.onChange=h,o.onChange=h;const f=new CGL.Shader(u,"fullscreenrectangle");f.setModules(["MODULE_VERTEX_POSITION","MODULE_COLOR","MODULE_BEGIN_FRAG"]),f.setSource(t,n),f.fullscreenRectUniform=new CGL.Uniform(f,"t","tex",0);var m=!1,b=!0;function v(){var e=l.get();m=!!e}function x(){if(u.getViewPort()[2]==p&&u.getViewPort()[3]==g&&c||I(),b&&v(),u.pushPMatrix(),mat4.identity(u.pMatrix),mat4.ortho(u.pMatrix,0,p,g,0,-10,1e3),u.pushModelMatrix(),mat4.identity(u.mMatrix),u.pushViewMatrix(),mat4.identity(u.vMatrix),r.get()){var e=0,n=0;p<u.canvasWidth&&(e=(u.canvasWidth-p)/2),g<u.canvasHeight&&(n=(u.canvasHeight-g)/2),u.setViewPort(e,n,p,g)}m?(l.get()&&u.setTexture(0,l.get().tex),c.render(f)):c.render(u.getShader()),u.gl.clear(u.gl.DEPTH_BUFFER_BIT),u.popPMatrix(),u.popModelMatrix(),u.popViewMatrix(),s.trigger()}function h(){c=null}function I(){const e=u.getViewPort();if(e[2]!=p||e[3]!=g||!c){p=e[2],g=e[3],d.vertices=new Float32Array([0+p,0+g,0,0,0+g,0,0+p,0,0,0,0,0]);var n=null;n=o.get()?new Float32Array([1,0,0,0,1,1,0,1]):new Float32Array([1,1,0,1,1,0,0,0]),i.get()&&(n[0]=0,n[2]=1,n[4]=0,n[6]=1),d.setTexCoords(n),d.verticesIndices=new Float32Array([2,1,0,3,1,2]),d.vertexNormals=new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1]),d.tangents=new Float32Array([-1,0,0,-1,0,0,-1,0,0,-1,0,0]),d.biTangents,new Float32Array([0,-1,0,0,-1,0,0,-1,0,0,-1,0]),c?c.setGeom(d):c=new CGL.Mesh(u,d)}}a.onTriggered=x,e.toWorkPortsNeedToBeLinked(a),l.onChange=function(){b=!0},e.preRender=function(){v(),f.bind(),c&&c.render(f),x()}},Ops.Gl.Meshes.FullscreenRectangle.prototype=new CABLES.Op,CABLES.OPS["255bd15b-cc91-4a12-9b4e-53c710cbb282"]={f:Ops.Gl.Meshes.FullscreenRectangle,objName:"Ops.Gl.Meshes.FullscreenRectangle"},Ops.Gl.TextureEffects.Invert=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=CGL.TextureEffect.AddBlendSelect(e,"Blend Mode","normal"),a=e.inValueSlider("Amount",1),r=e.outTrigger("trigger"),o=e.patch.cgl,i=new CGL.Shader(o);i.setSource(i.getDefaultVertexShader(),"IN vec2 texCoord;\nUNI sampler2D tex;\nUNI float amount;
1\n\n{{CGL.BLENDMODES}}\n\nvoid main()\n{\n vec4 col=vec4(1.0,0.0,0.0,1.0);\n col=texture(tex,texCoord);\n vec4 invert = vec4(vec3(1.0)-col.rgb,1.0);\n\n outColor=cgl_blend(col,invert,amount);\n}\n");new CGL.Uniform(i,"t","tex",0),new CGL.Uniform(i,"f","amount",a);CGL.TextureEffect.setupBlending(e,i,t,a),n.onTriggered=function(){CGL.TextureEffect.checkOpInEffect(e)&&(o.pushShader(i),o.currentTextureEffect.bind(),o.setTexture(0,o.currentTextureEffect.getCurrentSourceTexture().tex),o.currentTextureEffect.finish(),o.popShader(),r.trigger())}},Ops.Gl.TextureEffects.Invert.prototype=new CABLES.Op,CABLES.OPS["7188ff85-e73c-4a3b-8237-49508a00d63a"]={f:Ops.Gl.TextureEffects.Invert,objName:"Ops.Gl.TextureEffects.Invert"},Ops.Trigger.IfEqualsThen=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("exe");var t=e.inValue("Value 1",0),a=e.inValue("Value 2",0),r=e.addOutPort(new CABLES.Port(e,"then",CABLES.OP_PORT_TYPE_FUNCTION)),o=e.addOutPort(new CABLES.Port(e,"else",CABLES.OP_PORT_TYPE_FUNCTION));n.onTriggered=function(){t.get()==a.get()?r.trigger():o.trigger()}},Ops.Trigger.IfEqualsThen.prototype=new CABLES.Op,CABLES.OPS["e8196d70-d0a6-470a-9448-a7ac0c0e956e"]={f:Ops.Trigger.IfEqualsThen,objName:"Ops.Trigger.IfEqualsThen"},Ops.Trigger.TriggerNumber=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTriggerButton("0"),t=e.inTriggerButton("1"),a=e.inTriggerButton("2"),r=e.inTriggerButton("3"),o=e.inTriggerButton("4"),i=e.inTriggerButton("5"),l=e.inTriggerButton("6"),s=e.inTriggerButton("7"),u=e.outValue("number");n.onTriggered=function(){u.set(0)},t.onTriggered=function(){u.set(1)},a.onTriggered=function(){u.set(2)},r.onTriggered=function(){u.set(3)},o.onTriggered=function(){u.set(4)},i.onTriggered=function(){u.set(5)},l.onTriggered=function(){u.set(6)},s.onTriggered=function(){u.set(7)}},Ops.Trigger.TriggerNumber.prototype=new CABLES.Op,CABLES.OPS["43ed1123-1312-4383-b843-27b8ec540c09"]={f:Ops.Trigger.TriggerNumber,objName:"Ops.Trigger.TriggerNumber"},Ops.Anim.AnimNumber=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("exe"),t=e.inValue("Value"),a=e.inValueFloat("duration"),r=e.outTrigger("Next"),o=e.outValue("result"),i=e.outTrigger("Finished"),l=new CABLES.Anim;l.createPort(e,"easing",c),l.loop=!1,a.set(.5),a.onChange=t.onChange=c;var s=0,u=!0;function c(){performance.now(),l.clear(CABLES.now()/1e3),u&&l.setValue(CABLES.now()/1e3,t.get()),l.setValue(a.get()+CABLES.now()/1e3,t.get(),d),u=!1}function d(){i.trigger()}n.onTriggered=function(){var e=CABLES.now()/1e3;performance.now()-s>300&&(u=!0,c()),s=performance.now();var n=l.getValue(e);o.set(n),r.trigger()}},Ops.Anim.AnimNumber.prototype=new CABLES.Op,CABLES.OPS["e5b0b016-9663-4c9d-9365-f54ae3c5fbb6"]={f:Ops.Anim.AnimNumber,objName:"Ops.Anim.AnimNumber"},Ops.Gl.TextureEffects.Color=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=CGL.TextureEffect.AddBlendSelect(e,"Blend Mode","normal"),a=e.inValueSlider("Amount",1),r=e.inTexture("Mask"),o=e.inValueBool("Mask Invert"),i=e.inValueSlider("r",Math.random()),l=e.inValueSlider("g",Math.random()),s=e.inValueSlider("b",Math.random()),u=e.outTrigger("trigger");i.setUiAttribs({colorPick:!0}),e.setPortGroup("Color",[i,l,s]);const c=e.patch.cgl,d=new CGL.Shader(c,"textureeffect color");d.setSource(d.getDefaultVertexShader(),"IN vec2 texCoord;\nUNI sampler2D tex;\nUNI float r;\nUNI float g;\nUNI float b;\nUNI float amount;
1\n\n#ifdef MASK\n UNI sampler2D mask;\n#endif\n\n{{CGL.BLENDMODES}}\n\nvoid main()\n{\n vec4 col=vec4(r,g,b,1.0);\n vec4 base=texture(tex,texCoord);\n\n float am=amount;\n #ifdef MASK\n float msk=texture(mask,texCoord).r;\n #ifdef INVERTMASK\n msk=1.0-msk;\n #endif\n am*=1.0-msk;\n #endif\n\n outColor= cgl_blend(base,col,am);\n outColor.a*=base.a;\n\n}\n");new CGL.Uniform(d,"t","tex",0),new CGL.Uniform(d,"t","mask",1),new CGL.Uniform(d,"f","r",i),new CGL.Uniform(d,"f","g",l),new CGL.Uniform(d,"f","b",s),new CGL.Uniform(d,"f","amount",a);r.onChange=function(){r.get()?d.define("MASK"):d.removeDefine("MASK")},o.onChange=function(){o.get()?d.define("INVERTMASK"):d.removeDefine("INVERTMASK")},CGL.TextureEffect.setupBlending(e,d,t,a),n.onTriggered=function(){CGL.TextureEffect.checkOpInEffect(e)&&(c.pushShader(d),c.currentTextureEffect.bind(),c.setTexture(0,c.currentTextureEffect.getCurrentSourceTexture().tex),r.get()&&c.setTexture(1,r.get().tex),c.currentTextureEffect.finish(),c.popShader(),u.trigger())}},Ops.Gl.TextureEffects.Color.prototype=new CABLES.Op,CABLES.OPS["c0acfc80-16f9-4f17-978d-bad650f3ed1c"]={f:Ops.Gl.TextureEffects.Color,objName:"Ops.Gl.TextureEffects.Color"},Ops.Trigger.SetNumberOnTrigger=function(){CABLES.Op.apply(this,arguments);const e=this.inTriggerButton("Set"),n=this.inValueFloat("Number"),t=this.outTrigger("Next"),a=this.outValue("Out Value");a.changeAlways=!0,e.onTriggered=function(){a.set(n.get()),t.trigger()}},Ops.Trigger.SetNumberOnTrigger.prototype=new CABLES.Op,CABLES.OPS["9989b1c0-1073-4d5f-bfa0-36dd98b66e27"]={f:Ops.Trigger.SetNumberOnTrigger,objName:"Ops.Trigger.SetNumberOnTrigger"},Ops.Math.Divide=function(){CABLES.Op.apply(this,arguments);const e=this.inValueFloat("number1",1),n=this.inValueFloat("number2",2),t=this.outValue("result");function a(){t.set(e.get()/n.get())}e.onChange=n.onChange=a,a()},Ops.Math.Divide.prototype=new CABLES.Op,CABLES.OPS["86fcfd8c-038d-4b91-9820-a08114f6b7eb"]={f:Ops.Math.Divide,objName:"Ops.Math.Divide"},Ops.Math.Compare.LessThan=function(){CABLES.Op.apply(this,arguments);const e=this.inValue("number1"),n=this.inValue("number2"),t=this.outValue("result");function a(){t.set(e.get()<n.get())}e.onChange=a,n.onChange=a,a()},Ops.Math.Compare.LessThan.prototype=new CABLES.Op,CABLES.OPS["04fd113f-ade1-43fb-99fa-f8825f8814c0"]={f:Ops.Math.Compare.LessThan,objName:"Ops.Math.Compare.LessThan"},Ops.Boolean.IfTrueThen=function(){CABLES.Op.apply(this,arguments);const e=this.inTrigger("exe"),n=this.inValueBool("boolean",!1),t=this.outTrigger("then"),a=this.outTrigger("else");function r(){n.get()||n.get()>=1?t.trigger():a.trigger()}n.onChange=function(){if(e.isLinked())return;r()},e.onTriggered=r},Ops.Boolean.IfTrueThen.prototype=new CABLES.Op,CABLES.OPS["99892fda-8821-4660-ac57-3103d1546924"]={f:Ops.Boolean.IfTrueThen,objName:"Ops.Boolean.IfTrueThen"},Ops.Sidebar.Button=function(){CABLES.Op.apply(this,arguments);const e=this;var n=e.inObject("link"),t=e.inValueString("Text","Button"),a=e.outObject("childs"),r=e.outTrigger("Pressed Trigger");const o=e.inBool("Grey Out",!1),i=e.inBool("Visible",!0);var l=document.createElement("div");l.classList.add("sidebar__item"),l.classList.add("sidebar--button");var s=document.createElement("div");s.classList.add("sidebar__button-input"),l.appendChild(s),s.addEventListener("click",function(){r.trigger()});var u=document.createTextNode(t.get());s.appendChild(u),e.toWorkNeedsParent("Ops.Sidebar.Sidebar"),n.onChange=function(){var e=n.get();e&&e.parentElement?(e.parentElement.appendChild(l),a.set(null),a.set(e)):l.parentElement&&l.parentElement.removeChild(l)},t.onChange=function(){var n=t.get();s.textContent=n,CABLES.UI&&e.setTitle("Button: "+n)},e.onDelete=function(){!function(e){e&&e.parentNode&&e.parentNode.removeChild&&e.parentNode.removeChild(e)}(l)};var c=document.createElement("div");c.classList.add("sidebar__greyout"),l.appendChild(c),c.style.display="none",o.onChange=function(){c.style.display=o.get()?"block":"none"},i.onChange=function(){l.style.display=i.get()?"block":"none"}},Ops.Sidebar.Button.prototype=new CABLES.Op,CABLES.OPS["118df748-16d1-46f4-b8fc-38d7cc5a0aab"]={f:Ops.Sidebar.Button,objName:"Ops.Sidebar.Button"},Ops.Sidebar.Slider=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inObject("link"),t=e.inValueString("Text","Slider"),a=e.inValue("Min",0),r=e.inValue("Max",1),o=e.inValue("Step",1e-5),i=e.inBool("Grey Out",!1),l=e.inBool("Visible",!0),s=e.inValue("Input",.5),u=e.inTriggerButton("Set Default"),c=e.inTriggerButton("Reset"),d=e.inValue("Default",.5);d.setUiAttribs({hidePort:!0,greyout:!0});const p=e.outObject("childs"),g=e.outValue("Result",d.get());e.toWorkNeedsParent("Ops.Sidebar.Sidebar"),e.setPortGroup("Range",[a,r,o]),e.setPortGroup("Visibility",[i,l]);var f=document.createElement("div");f.classList.add("sidebar__item"),f.classList.add("sidebar__slider");var m=document.createElement("div");m.classList.add("sidebar__item-label");var b=document.createElement("div");b.classList.add("sidebar__greyout"),f.appendChild(b),b.style.display="none";var v=document.createTextNode(t.get());m.appendChild(v),f.appendChild(m);var x=document.createElement("input");x.value=d.get(),x.classList.add("sidebar__text-input-input"),x.setAttribute("type","text"),x.oninput=function(n){let t=parseFloat(n.target.value);isNaN(t)&&(t=0);const o=a.get(),i=r.get();t<o?t=o:t>i&&(t=i);g.set(t),C(),s.set(t),e.isCurrentUiOp()&&gui.patch().showOpParams(e)},f.appendChild(x);var h=document.createElement("div");h.classList.add("sidebar__slider-input-wrapper"),f.appendChild(h);var I=document.createElement("div");I.classList.add("sidebar__slider-input-active-track"),h.appendChild(I);var O=document.createElement("input");function C(e){let n=parseFloat(O.value);void 0!==e&&(n=e);let t=O.offsetWidth;0===t&&(t=206);var a=CABLES.map(n,parseFloat(O.min),parseFloat(O.max),0,t-16);I.style.width=a+"px"}function T(){var e=a.get();O.setAttribute("min",e),C()}function A(){var e=r.get();O.setAttribute("max",e),C()}O.classList.add("sidebar__slider-input"),O.setAttribute("min",a.get()),O.setAttribute("max",r.get()),O.setAttribute("type","range"),O.setAttribute("step",o.get()),O.setAttribute("value",d.get()),O.style.display="block",h.appendChild(O),C(),O.addEventListener("input",function(n){n.preventDefault(),n.stopPropagation(),x.value=n.target.value;const t=parseFloat(n.target.value);g.set(t),s.set(t),e.isCurrentUiOp()&&gui.patch().showOpParams(e);return C(),!1}),n.onChange=function(){var e=n.get();e&&e.parentElement?(e.parentElement.appendChild(f),p.set(null),p.set(e)):f.parentElement&&f.parentElement.removeChild(f)},t.onChange=function(){var n=t.get();m.textContent=n,CABLES.UI&&e.setTitle("Slider: "+n)},s.onChange=function(){let e=parseFloat(s.get());const n=a.get(),t=r.get();e>t?e=t:e<n&&(e=n);x.value=e,O.value=e,g.set(e),C()},d.onChange=function(){var e=d.get();g.set(parseFloat(e)),T(),A(),O.value=e,x.value=e,C(e)},u.onTriggered=function(){let n=parseFloat(s.get());const t=a.get(),o=r.get();n>o?n=o:n<t&&(n=t);x.value=n,O.value=n,g.set(n),d.set(n),e.isCurrentUiOp()&&gui.patch().showOpParams(e);C()},a.onChange=T,r.onChange=A,o.onChange=function(){var e=o.get();O.setAttribute("step",e),C()},e.onDelete=function(){!function(e){e&&e.parentNode&&e.parentNode.removeChild&&e.parentNode.removeChild(e)}(f)},e.onLoaded=e.onInit=function(){e.patch.config.sidebar?(e.patch.config.sidebar[t.get()],g.set(e.patch.config.sidebar[t.get()])):(g.set(parseFloat(d.get())),s.set(parseFloat(d.get())))},c.onTriggered=function(){const e=parseFloat(d.get());g.set(e),x.value=e,O.value=e,s.set(e),C()},i.onChange=function(){b.style.display=i.get()?"block":"none"},l.onChange=function(){f.style.display=l.get()?"block":"none"}},Ops.Sidebar.Slider.prototype=new CABLES.Op,CABLES.OPS["eb3232e5-e947-4683-a17f-27a72d464b2c"]={f:Ops.Sidebar.Slider,objName:"Ops.Sidebar.Slider"},Ops.Sidebar.Sidebar=function(){CABLES.Op.apply(this,arguments);const e=this,n={style_css:'/*\n * SIDEBAR\n http://danielstern.ca/range.css/#/\n https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-progress-value\n */\n\n\n.icon-chevron-down {\n top: 2px;\n right: 9px;\n}\n\n.iconsidebar-chevron-up {\n\tbackground-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM4ODg4ODgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWNoZXZyb24tdXAiPjxwb2x5bGluZSBwb2ludHM9IjE4IDE1IDEyIDkgNiAxNSI+PC9wb2x5bGluZT48L3N2Zz4=);\n top: 2px;\n right: 9px;\n}\n\n.sidebar-cables-right\n{\n right: 0px;\n left: initial !important;\n}\n\n.sidebar-cables {\n position: absolute;\n top: 15px;\n left: 15px;\n border-radius: 10px;\n /*border:10px solid #1a1a1a;*/\n z-index: 100000;\n color: #BBBBBB;\n width: 220px;\n max-height: 100%;\n box-sizing: border-box;\n overflow-y: auto;\n overflow-x: hidden;\n font-size: 13px;\n font-family: Arial;\n line-height: 1em; /* prevent emojis from breaking height of the title */\n --sidebar-border-radius: 4px;\n --sidebar-monospace-font-stack: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;\n --sidebar-hover-transition-time: .2s;\n}\n\n.sidebar-cables::selection {\n background-color: #24baa7;\n color: #EEEEEE;\n}\n\n.sidebar-cables::-webkit-scrollbar {\n background-color: transparent;\n --cables-scrollbar-width: 8px;\n width: var(--cables-scrollbar-width);\n}\n\n.sidebar-cables::-webkit-scrollbar-track {\n background-color: transparent;\n width: var(--cables-scrollbar-width);\n}\n\n.sidebar-cables::-webkit-scrollbar-thumb {\n background-color: #333333;\n border-radius: 4px;\n width: var(--cables-scrollbar-width);\n}\n\n.sidebar-cables--closed {\n width: auto;\n}\n\n.sidebar__close-button {\n background-color: #222;\n -webkit-user-select: none; /* Chrome all / Safari all */\n -moz-user-select: none;
1 /* Firefox all */\n -ms-user-select: none; /* IE 10+ */\n user-select: none; /* Likely future */\n transition: background-color var(--sidebar-hover-transition-time);\n color: #CCCCCC;\n height: 12px;\n box-sizing: border-box;\n padding-top: 2px;\n text-align: center;\n cursor: pointer;\n /*border-top: 1px solid #272727;*/\n border-radius: 0 0 var(--sidebar-border-radius) var(--sidebar-border-radius);\n opacity: 1.0;\n transition: opacity 0.3s;\n overflow: hidden;\n}\n\n.sidebar__close-button-icon {\n display: inline-block;\n /*opacity: 0;*/\n width: 21px;\n height: 20px;\n position: relative;\n top: -1px;\n /*background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM4ODg4ODgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWNoZXZyb24tdXAiPjxwb2x5bGluZSBwb2ludHM9IjE4IDE1IDEyIDkgNiAxNSI+PC9wb2x5bGluZT48L3N2Zz4=);*/\n /*background-size: cover;*/\n /*background-repeat: no-repeat;*/\n /*background-repeat: no-repeat;*/\n /*background-position: 0 -1px;*/\n}\n\n.sidebar--closed .sidebar__close-button {\n margin-top: 8px;\n margin-left: 8px;\n padding-top: 13px;\n padding-left: 11px;\n padding-right: 11px;\n width: 46px;\n height: 46px;\n border-radius: 50%;\n cursor: pointer;\n opacity: 0.3;\n}\n\n.sidebar--closed .sidebar__group\n{\n display:none;\n\n}\n.sidebar--closed .sidebar__close-button-icon {\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyMnB4IiBoZWlnaHQ9IjE3cHgiIHZpZXdCb3g9IjAgMCAyMiAxNyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAzPC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IkNhbnZhcy1TaWRlYmFyIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJEZXNrdG9wLWdyZWVuLWJsdWlzaC1Db3B5LTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMC4wMDAwMDAsIC0yMi4wMDAwMDApIj4gICAgICAgICAgICA8ZyBpZD0iR3JvdXAtMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjAuMDAwMDAwLCAyMi4wMDAwMDApIj4gICAgICAgICAgICAgICAgPHBhdGggZD0iTTAuNSwyLjUgTDIuNSwyLjUiIGlkPSJMaW5lLTIiIHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSI+PC9wYXRoPiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTAuNSwyLjUgTDIxLjUsMi41IiBpZD0iTGluZS0yIiBzdHJva2U9IiM5Nzk3OTciIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiPjwvcGF0aD4gICAgICAgICAgICAgICAgPHBhdGggZD0iTTAuNSw4LjUgTDExLjUsOC41IiBpZD0iTGluZS0yIiBzdHJva2U9IiM5Nzk3OTciIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiPjwvcGF0aD4gICAgICAgICAgICAgICAgPHBhdGggZD0iTTE5LjUsOC41IEwyMS41LDguNSIgaWQ9IkxpbmUtMiIgc3Ryb2tlPSIjOTc5Nzk3IiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIj48L3BhdGg+ICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLjUsMTQuNSBMNS41LDE0LjUiIGlkPSJMaW5lLTIiIHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSI+PC9wYXRoPiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTMuNSwxNC41IEwyMS41LDE0LjUiIGlkPSJMaW5lLTIiIHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSI+PC9wYXRoPiAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsLTMiIGZpbGw9IiM5Nzk3OTciIGN4PSI2LjUiIGN5PSIyLjUiIHI9IjIuNSI+PC9jaXJjbGU+ICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMyIgZmlsbD0iIzk3OTc5NyIgY3g9IjE1LjUiIGN5PSI4LjUiIHI9IjIuNSI+PC9jaXJjbGU+ICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMyIgZmlsbD0iIzk3OTc5NyIgY3g9IjkuNSIgY3k9IjE0LjUiIHI9IjIuNSI+PC9jaXJjbGU+ICAgICAgICAgICAgPC9nPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);\n background-position: 0px 0px;\n}\n\n.sidebar__close-button:hover {\n background-color: #111111;\n opacity: 1.0 !important;\n}\n\n/*\n * SIDEBAR ITEMS\n */\n\n.sidebar__items {\n /* max-height: 1000px; */\n /* transition: max-height 0.5;*/\n background-color: #222;\n}\n\n.sidebar--closed .sidebar__items {\n /* max-height: 0; */\n height: 0;\n display: none;\n pointer-interactions: none;\n}\n\n.sidebar__item__right {\n float: right;\n}\n\n/*\n * SIDEBAR GROUP\n */\n\n.sidebar__group {\n /*background-color: #1A1A1A;*/\n overflow: hidden;\n box-sizing: border-box;\n animate: height;\n /* max-height: 1000px; */\n /* transition: max-height 0.5s; */\n --sidebar-group-header-height: 28px;\n}\n\n.sidebar__group--closed {\n /* max-height: 13px; */\n height: var(--sidebar-group-header-height);\n}\n\n.sidebar__group-header {\n box-sizing: border-box;\n color: #EEEEEE;\n background-color: #151515;\n -webkit-user-select: none; /* Chrome all / Safari all */\n -moz-user-select: none;
1 /* Firefox all */\n -ms-user-select: none; /* IE 10+ */\n user-select: none; /* Likely future */\n height: var(--sidebar-group-header-height);\n padding-top: 7px;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n cursor: pointer;\n transition: background-color var(--sidebar-hover-transition-time);\n position: relative;\n}\n\n.sidebar__group-header:hover {\n background-color: #111111;\n}\n\n.sidebar__group-header-title {\n /*text-align: center;*/\n overflow: hidden;\n padding: 0 15px;\n padding-top:2px;\n font-weight:bold;\n}\n\n.sidebar__group-header-icon {\n width: 17px;\n height: 14px;\n background-repeat: no-repeat;\n display: inline-block;\n position: absolute;\n background-size: cover;\n\n /* icon open */\n /* feather icon: chevron up */\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM4ODg4ODgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWNoZXZyb24tdXAiPjxwb2x5bGluZSBwb2ludHM9IjE4IDE1IDEyIDkgNiAxNSI+PC9wb2x5bGluZT48L3N2Zz4=);\n top: 4px;\n right: 5px;\n opacity: 0.0;\n transition: opacity 0.3;\n}\n\n.sidebar__group-header:hover .sidebar__group-header-icon {\n opacity: 1.0;\n}\n\n/* icon closed */\n.sidebar__group--closed .sidebar__group-header-icon {\n /* feather icon: chevron down */\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM4ODg4ODgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWNoZXZyb24tZG93biI+PHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiPjwvcG9seWxpbmU+PC9zdmc+);\n top: 4px;\n right: 5px;\n}\n\n/*\n * SIDEBAR ITEM\n */\n\n.sidebar__item\n{\n box-sizing: border-box;\n padding: 7px;\n padding-left:15px;\n padding-right:15px;\n\n overflow: hidden;\n position: relative;\n}\n\n.sidebar__item-label {\n display: inline-block;\n -webkit-user-select: none; /* Chrome all / Safari all */\n -moz-user-select: none;
1 /* Firefox all */\n -ms-user-select: none; /* IE 10+ */\n user-select: none; /* Likely future */\n width: calc(50% - 7px);\n margin-right: 7px;\n margin-top: 2px;\n max-height: 1em;\n text-overflow: ellipsis;\n /* overflow: hidden; */\n}\n\n.sidebar__item-value-label {\n font-family: var(--sidebar-monospace-font-stack);\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 60%;\n}\n\n.sidebar__item-value-label::selection {\n background-color: #24baa7;\n color: #EEEEEE;\n}\n\n.sidebar__item + .sidebar__item,\n.sidebar__item + .sidebar__group,\n.sidebar__group + .sidebar__item,\n.sidebar__group + .sidebar__group {\n border-top: 1px solid #272727;\n}\n\n/*\n * SIDEBAR ITEM TOGGLE\n */\n\n.sidebar__toggle {\n cursor: pointer;\n}\n\n.sidebar__toggle-input {\n --sidebar-toggle-input-color: #CCCCCC;\n --sidebar-toggle-input-color-hover: #EEEEEE;\n --sidebar-toggle-input-border-size: 2px;\n display: inline;\n float: right;\n box-sizing: border-box;\n border-radius: 50%;\n cursor: pointer;\n --toggle-size: 11px;\n margin-top: 2px;\n background-color: transparent !important;\n border: var(--sidebar-toggle-input-border-size) solid var(--sidebar-toggle-input-color);\n width: var(--toggle-size);\n height: var(--toggle-size);\n transition: background-color var(--sidebar-hover-transition-time);\n transition: border-color var(--sidebar-hover-transition-time);\n}\n.sidebar__toggle:hover .sidebar__toggle-input {\n border-color: var(--sidebar-toggle-input-color-hover);\n}\n\n.sidebar__toggle .sidebar__item-value-label {\n -webkit-user-select: none; /* Chrome all / Safari all */\n -moz-user-select: none;
1 /* Firefox all */\n -ms-user-select: none; /* IE 10+ */\n user-select: none; /* Likely future */\n max-width: calc(50% - 12px);\n}\n.sidebar__toggle-input::after { clear: both; }\n\n.sidebar__toggle--active .icon_toggle\n{\n\n background-image: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE1cHgiIHdpZHRoPSIzMHB4IiBmaWxsPSIjMDZmNzhiIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAwIDEwMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGcgZGlzcGxheT0ibm9uZSI+PGcgZGlzcGxheT0iaW5saW5lIj48Zz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzA2Zjc4YiIgZD0iTTMwLDI3QzE3LjM1LDI3LDcsMzcuMzUsNyw1MGwwLDBjMCwxMi42NSwxMC4zNSwyMywyMywyM2g0MCBjMTIuNjUsMCwyMy0xMC4zNSwyMy0yM2wwLDBjMC0xMi42NS0xMC4zNS0yMy0yMy0yM0gzMHogTTcwLDY3Yy05LjM4OSwwLTE3LTcuNjEtMTctMTdzNy42MTEtMTcsMTctMTdzMTcsNy42MSwxNywxNyAgICAgUzc5LjM4OSw2Nyw3MCw2N3oiPjwvcGF0aD48L2c+PC9nPjwvZz48Zz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMwLDI3QzE3LjM1LDI3LDcsMzcuMzUsNyw1MGwwLDBjMCwxMi42NSwxMC4zNSwyMywyMywyM2g0MCAgIGMxMi42NSwwLDIzLTEwLjM1LDIzLTIzbDAsMGMwLTEyLjY1LTEwLjM1LTIzLTIzLTIzSDMweiBNNzAsNjdjLTkuMzg5LDAtMTctNy42MS0xNy0xN3M3LjYxMS0xNywxNy0xN3MxNyw3LjYxLDE3LDE3ICAgUzc5LjM4OSw2Nyw3MCw2N3oiPjwvcGF0aD48L2c+PGcgZGlzcGxheT0ibm9uZSI+PGcgZGlzcGxheT0iaW5saW5lIj48cGF0aCBmaWxsPSIjMDZmNzhiIiBzdHJva2U9IiMwNmY3OGIiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBkPSJNNyw1MGMwLDEyLjY1LDEwLjM1LDIzLDIzLDIzaDQwICAgIGMxMi42NSwwLDIzLTEwLjM1LDIzLTIzbDAsMGMwLTEyLjY1LTEwLjM1LTIzLTIzLTIzSDMwQzE3LjM1LDI3LDcsMzcuMzUsNyw1MEw3LDUweiI+PC9wYXRoPjwvZz48Y2lyY2xlIGRpc3BsYXk9ImlubGluZSIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiMwNmY3OGIiIHN0cm9rZT0iIzA2Zjc4YiIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGN4PSI3MCIgY3k9IjUwIiByPSIxNyI+PC9jaXJjbGU+PC9nPjxnIGRpc3BsYXk9Im5vbmUiPjxwYXRoIGRpc3BsYXk9ImlubGluZSIgZD0iTTcwLDI1SDMwQzE2LjIxNSwyNSw1LDM2LjIxNSw1LDUwczExLjIxNSwyNSwyNSwyNWg0MGMxMy43ODUsMCwyNS0xMS4yMTUsMjUtMjVTODMuNzg1LDI1LDcwLDI1eiBNNzAsNzEgICBIMzBDMTguNDIxLDcxLDksNjEuNTc5LDksNTBzOS40MjEtMjEsMjEtMjFoNDBjMTEuNTc5LDAsMjEsOS40MjEsMjEsMjFTODEuNTc5LDcxLDcwLDcxeiBNNzAsMzFjLTEwLjQ3NywwLTE5LDguNTIzLTE5LDE5ICAgczguNTIzLDE5LDE5LDE5czE5LTguNTIzLDE5LTE5UzgwLjQ3NywzMSw3MCwzMXogTTcwLDY1Yy04LjI3MSwwLTE1LTYuNzI5LTE1LTE1czYuNzI5LTE1LDE1LTE1czE1LDYuNzI5LDE1LDE1Uzc4LjI3MSw2NSw3MCw2NXoiPjwvcGF0aD48L2c+PC9zdmc+);\n opacity: 1;\n transform: rotate(0deg);\n}\n\n\n.icon_toggle\n{\n float: right;\n width:40px;\n height:18px;\n background-image: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE1cHgiIHdpZHRoPSIzMHB4IiBmaWxsPSIjYWFhYWFhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAwIDEwMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGcgZGlzcGxheT0ibm9uZSI+PGcgZGlzcGxheT0iaW5saW5lIj48Zz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI2FhYWFhYSIgZD0iTTMwLDI3QzE3LjM1LDI3LDcsMzcuMzUsNyw1MGwwLDBjMCwxMi42NSwxMC4zNSwyMywyMywyM2g0MCBjMTIuNjUsMCwyMy0xMC4zNSwyMy0yM2wwLDBjMC0xMi42NS0xMC4zNS0yMy0yMy0yM0gzMHogTTcwLDY3Yy05LjM4OSwwLTE3LTcuNjEtMTctMTdzNy42MTEtMTcsMTctMTdzMTcsNy42MSwxNywxNyAgICAgUzc5LjM4OSw2Nyw3MCw2N3oiPjwvcGF0aD48L2c+PC9nPjwvZz48Zz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMwLDI3QzE3LjM1LDI3LDcsMzcuMzUsNyw1MGwwLDBjMCwxMi42NSwxMC4zNSwyMywyMywyM2g0MCAgIGMxMi42NSwwLDIzLTEwLjM1LDIzLTIzbDAsMGMwLTEyLjY1LTEwLjM1LTIzLTIzLTIzSDMweiBNNzAsNjdjLTkuMzg5LDAtMTctNy42MS0xNy0xN3M3LjYxMS0xNywxNy0xN3MxNyw3LjYxLDE3LDE3ICAgUzc5LjM4OSw2Nyw3MCw2N3oiPjwvcGF0aD48L2c+PGcgZGlzcGxheT0ibm9uZSI+PGcgZGlzcGxheT0iaW5saW5lIj48cGF0aCBmaWxsPSIjYWFhYWFhIiBzdHJva2U9IiNhYWFhYWEiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBkPSJNNyw1MGMwLDEyLjY1LDEwLjM1LDIzLDIzLDIzaDQwICAgIGMxMi42NSwwLDIzLTEwLjM1LDIzLTIzbDAsMGMwLTEyLjY1LTEwLjM1LTIzLTIzLTIzSDMwQzE3LjM1LDI3LDcsMzcuMzUsNyw1MEw3LDUweiI+PC9wYXRoPjwvZz48Y2lyY2xlIGRpc3BsYXk9ImlubGluZSIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNhYWFhYWEiIHN0cm9rZT0iI2FhYWFhYSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGN4PSI3MCIgY3k9IjUwIiByPSIxNyI+PC9jaXJjbGU+PC9nPjxnIGRpc3BsYXk9Im5vbmUiPjxwYXRoIGRpc3BsYXk9ImlubGluZSIgZD0iTTcwLDI1SDMwQzE2LjIxNSwyNSw1LDM2LjI
1xNSw1LDUwczExLjIxNSwyNSwyNSwyNWg0MGMxMy43ODUsMCwyNS0xMS4yMTUsMjUtMjVTODMuNzg1LDI1LDcwLDI1eiBNNzAsNzEgICBIMzBDMTguNDIxLDcxLDksNjEuNTc5LDksNTBzOS40MjEtMjEsMjEtMjFoNDBjMTEuNTc5LDAsMjEsOS40MjEsMjEsMjFTODEuNTc5LDcxLDcwLDcxeiBNNzAsMzFjLTEwLjQ3NywwLTE5LDguNTIzLTE5LDE5ICAgczguNTIzLDE5LDE5LDE5czE5LTguNTIzLDE5LTE5UzgwLjQ3NywzMSw3MCwzMXogTTcwLDY1Yy04LjI3MSwwLTE1LTYuNzI5LTE1LTE1czYuNzI5LTE1LDE1LTE1czE1LDYuNzI5LDE1LDE1Uzc4LjI3MSw2NSw3MCw2NXoiPjwvcGF0aD48L2c+PC9zdmc+);\n background-size: 50px 37px;\n background-position: -6px -10px;\n transform: rotate(180deg);\n opacity: 0.4;\n}\n\n\n\n/*.sidebar__toggle--active .sidebar__toggle-input {*/\n/* transition: background-color var(--sidebar-hover-transition-time);*/\n/* background-color: var(--sidebar-toggle-input-color);*/\n/*}*/\n/*.sidebar__toggle--active .sidebar__toggle-input:hover*/\n/*{*/\n/* background-color: var(--sidebar-toggle-input-color-hover);*/\n/* border-color: var(--sidebar-toggle-input-color-hover);*/\n/* transition: background-color var(--sidebar-hover-transition-time);*/\n/* transition: border-color var(--sidebar-hover-transition-time);*/\n/*}*/\n\n/*\n * SIDEBAR ITEM BUTTON\n */\n\n.sidebar__button {}\n\n.sidebar__button-input {\n -webkit-user-select: none; /* Chrome all / Safari all */\n -moz-user-select: none;
1 /* Firefox all */\n -ms-user-select: none; /* IE 10+ */\n user-select: none; /* Likely future */\n height: 24px;\n background-color: transparent;\n color: #CCCCCC;\n box-sizing: border-box;\n padding-top: 3px;\n text-align: center;\n border-radius: 125px;\n border:2px solid #555;\n cursor: pointer;\n}\n\n.sidebar__button-input.plus, .sidebar__button-input.minus {\n display: inline-block;\n min-width: 20px;\n}\n\n.sidebar__button-input:hover {\n background-color: #333;\n border:2px solid #07f78c;\n}\n\n/*\n * VALUE DISPLAY (shows a value)\n */\n\n.sidebar__value-display {}\n\n/*\n * SLIDER\n */\n\n.sidebar__slider {\n --sidebar-slider-input-height: 3px;\n}\n\n.sidebar__slider-input-wrapper {\n width: 100%;\n margin-top: 8px;\n position: relative;\n}\n\n.sidebar__slider-input {\n -webkit-appearance: none;\n appearance: none;\n margin: 0;\n width: 100%;\n height: var(--sidebar-slider-input-height);\n background: #555;\n cursor: pointer;\n outline: 0;\n\n -webkit-transition: .2s;\n transition: background-color .2s;\n border: none;\n}\n\n.sidebar__slider-input:focus, .sidebar__slider-input:hover {\n border: none;\n}\n\n.sidebar__slider-input-active-track {\n user-select: none;\n position: absolute;\n z-index: 11;\n top: 0;\n left: 0;\n background-color: #07f78c;\n pointer-events: none;\n height: var(--sidebar-slider-input-height);\n\n /* width: 10px; */\n}\n\n/* Mouse-over effects */\n.sidebar__slider-input:hover {\n /*background-color: #444444;*/\n}\n\n/*.sidebar__slider-input::-webkit-progress-value {*/\n/* background-color: green;*/\n/* color:green;*/\n\n/* }*/\n\n/* The slider handle (use -webkit- (Chrome, Opera, Safari, Edge) and -moz- (Firefox) to override default look) */\n\n.sidebar__slider-input::-moz-range-thumb\n{\n position: absolute;\n height: 15px;\n width: 15px;\n z-index: 900 !important;\n border-radius: 20px !important;\n cursor: pointer;\n background: #07f78c !important;\n user-select: none;\n\n}\n\n.sidebar__slider-input::-webkit-slider-thumb\n{\n position: relative;\n appearance: none;\n -webkit-appearance: none;\n user-select: none;\n height: 15px;\n width: 15px;\n display: block;\n z-index: 900 !important;\n border: 0;\n border-radius: 20px !important;\n cursor: pointer;\n background: #777 !important;\n}\n\n.sidebar__slider-input:hover ::-webkit-slider-thumb {\n background-color: #EEEEEE !important;\n}\n\n/*.sidebar__slider-input::-moz-range-thumb {*/\n\n/* width: 0 !important;*/\n/* height: var(--sidebar-slider-input-height);*/\n/* background: #EEEEEE;*/\n/* cursor: pointer;*/\n/* border-radius: 0 !important;*/\n/* border: none;*/\n/* outline: 0;*/\n/* z-index: 100 !important;*/\n/*}*/\n\n.sidebar__slider-input::-moz-range-track {\n background-color: transparent;\n z-index: 11;\n}\n\n/*.sidebar__slider-input::-moz-range-thumb:hover {*/\n /* background-color: #EEEEEE; */\n/*}*/\n\n\n/*.sidebar__slider-input-wrapper:hover .sidebar__slider-input-active-track {*/\n/* background-color: #EEEEEE;*/\n/*}*/\n\n/*.sidebar__slider-input-wrapper:hover .sidebar__slider-input::-moz-range-thumb {*/\n/* background-color: #fff !important;*/\n/*}*/\n\n/*.sidebar__slider-input-wrapper:hover .sidebar__slider-input::-webkit-slider-thumb {*/\n/* background-color: #EEEEEE;*/\n/*}*/\n\n.sidebar__slider input[type=text] {\n box-sizing: border-box;\n /*background-color: #333333;*/\n text-align: right;\n color: #BBBBBB;\n display: inline-block;\n background-color: transparent !important;\n\n width: 40%;\n height: 18px;\n outline: none;\n border: none;\n border-radius: 0;\n padding: 0 0 0 4px !important;\n margin: 0;\n}\n\n.sidebar__slider input[type=text]:active,\n.sidebar__slider input[type=text]:focus,\n.sidebar__slider input[type=text]:hover {\n\n color: #EEEEEE;\n}\n\n/*\n * TEXT / DESCRIPTION\n */\n\n.sidebar__text .sidebar__item-label {\n width: auto;\n display: block;\n max-height: none;\n margin-right: 0;\n line-height: 1.1em;\n}\n\n/*\n * SIDEBAR INPUT\n */\n.sidebar__text-input textarea,\n.sidebar__text-input input[type=text] {\n box-sizing: border-box;\n background-color: #333333;\n color: #BBBBBB;\n display: inline-block;\n width: 50%;\n height: 18px;\n outline: none;\n border: none;\n border-radius: 0;\n border:1px solid #666;\n padding: 0 0 0 4px !important;\n margin: 0;\n}\n\n.sidebar__color-picker .sidebar__item-label\n{\n width:45%;\n}\n\n.sidebar__text-input textarea,\n.sidebar__text-input input[type=text]:active,\n.sidebar__text-input input[type=text]:focus,\n.sidebar__text-input input[type=text]:hover {\n background-color: transparent;\n color: #EEEEEE;\n}\n\n.sidebar__text-input textarea\n{\n margin-top:10px;\n height:60px;\n width:100%;\n}\n\n/*\n * SIDEBAR SELECT\n */\n\n\n\n .sidebar__select {}\n .sidebar__select-select {\n color: #BBBBBB;\n /*-webkit-appearance: none;*/\n /*-moz-appearance: none;*/\n appearance: none;\n /*box-sizing: border-box;*/\n width: 50%;\n height: 20px;\n background-color: #333333;\n /*background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM4ODg4ODgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWNoZXZyb24tZG93biI+PHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiPjwvcG9seWxpbmU+PC9zdmc+);*/\n background-repeat: no-repeat;\n background-position: right center;\n background-size: 16px 16px;\n margin: 0;\n /*padding: 0 2 2 6px;*/\n border-radius: 5px;\n border: 1px solid #777;\n background-color: #444;\n cursor: pointer;\n outline: none;\n\n }\n\n.sidebar__select-select:hover,\n.sidebar__select-select:active,\n.sidebar__select-select:active {\n background-color: #444444;\n color: #EEEEEE;\n}\n\n/*\n * COLOR PICKER\n */\n\n .sidebar__color-picker-color-input {}\n\n .sidebar__color-picker input[type=text] {\n box-sizing: border-box;\n background-color: #333333;\n color: #BBBBBB;\n display: inline-block;\n width: calc(50% - 21px); /* 50% minus space of picker circle */\n height: 18px;\n outline: none;\n border: none;\n border-radius: 0;\n padding: 0 0 0 4px !important;\n margin: 0;\n margin-right: 7px;\n}\n\n.sidebar__color-picker input[type=text]:active,\n.sidebar__color-picker input[type=text]:focus,\n.sidebar__color-picker input[type=text]:hover {\n background-color: #444444;\n color: #EEEEEE;\n}\n\n.sidebar__color-picker input[type=color],\n.sidebar__palette-picker input[type=color] {\n display: inline-block;\n border-radius: 100%;\n height: 14px;\n width: 14px;\n padding: 0;\n border: none;\n border-color: transparent;\n outline: none;\n background: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n cursor: pointer;\n position: relative;\n top: 3px;\n}\n.sidebar__color-picker input[type=color]:focus,\n.sidebar__palette-picker input[type=color]:focus {\n outline: none;\n}\n.sidebar__color-picker input[type=color]::-moz-color-swatch,\n.sidebar__palette-picker input[type=color]::-moz-color-swatch {\n border: none;\n}\n.sidebar__color-picker input[type=color]::-webkit-color-swatch-wrapper,\n.sidebar__palette-picker input[type=color]::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n.sidebar__color-picker input[type=color]::-webkit-color-swatch,\n.sidebar__palette-picker input[type=color]::-webkit-color-swatch {\n border: none;\n border-radius: 100%;\n}\n\n/*\n * Palette Picker\n */\n.sidebar__palette-picker .sidebar__palette-picker-color-input.first {\n margin-left: 0;\n}\n.sidebar__palette-picker .sidebar__palette-picker-color-input.last {\n margin-right: 0;\n}\n.sidebar__palette-picker .sidebar__palette-picker-color-input {\n margin: 0 4px;\n}\n\n.sidebar__palette-picker .circlebutton {\n width: 14px;\n height: 14px;\n border-radius: 1em;\n display: inline-block;\n top: 3px;\n position: relative;\n}\n\n/*\n * Preset\n */\n.sidebar__item-presets-preset\n{\n padding:4px;\n cursor:pointer;\n padding-left:8px;\n padding-right:8px;\n margin-right:4px;\n background-color:#444;\n}\n\n.sidebar__item-presets-preset:hover\n{\n background-color:#666;\n}\n\n.sidebar__greyout\n{\n background: #222;\n opacity: 0.8;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 1000;\n right: 0;\n top: 0;\n}\n'},t="cables-sidebar-style",a="cables-sidebar-dynamic-style",r="sidebar-cables",o="sidebar"+CABLES.uuid(),i="sidebar__items",l="sidebar__close-button",s="sidebar__close-button-icon",u="",c="";let d=null,p=null;var g=null,f=e.inValueBool("Visible",!0),m=e.inValueSlider("Opacity",1),b=e.inValueBool("Default Minimized"),v=e.inValueSlider("Minimized Opacity",.5),x=e.inString("Title","Sidebar"),h=e.inValueBool("Side"),I=e.outObject("childs"),O=document.querySelector("."+o);O||(O=function(){var n=document.createElement("div");n.classList.add(r),n.classList.add(o);var t=e.patch.cgl.canvas.parentElement,a=document.createElement("div");a.classList.add("sidebar__group"),n.appendChild(a);var u=document.createElement("div");u.classList.add("sidebar__group-header"),n.appendChild(u);var c=document.createElement("div");if(c.classList.add("sidebar__group-header-title"),(g=document.createElement("span")).classList.add("sidebar__group-header-title-text"),g.innerHTML=x.get(),c.appendChild(g),u.appendChild(c),a.appendChild(u),n.appendChild(a),a.addEventListener("click",E),!t)return void console.warn("[sidebar] no canvas parentelement found...");t.appendChild(n);var f=document.createElement("div");return f.classList.add(i),n.appendChild(f),(d=document.createElement("div")).classList.add(l),d.addEventListener("click",E),n.appendChild(d),(p=document.createElement("span")).classList.add(s),d.appendChild(p),n}());var C=O.querySelector("."+i);function T(){d&&(b.get()?O.classList.add("sidebar--closed"):O.classList.remove("sidebar--closed"))}function A(){let e=document.querySelectorAll("."+a);e&&e.forEach(function(e){e.parentNode.removeChild(e)});let n=document.createElement("style");n.classList.add(a);let t=".sidebar--closed .sidebar__close-button { ";t+="opacity: "+v.get(),t+="}";let r=document.createTextNode(t);n.appendChild(r),document.body.appendChild(n)}function E(e){if(e.stopPropagation(),!O)return void console.error("Sidebar could not be closed...");O.classList.toggle("sidebar--closed");e.target;let n=u;O.classList.contains("sidebar--closed")&&(n=c)}I.set({parentElement:C,parentOp:e}),T(),function(){var e=document.querySelectorAll("."+t);e&&e.forEach(function(e){e.parentNode.removeChild(e)});var a=document.createElement("style");a.innerHTML=n.style_css,a.classList.add(t),document.body.appendChild(a)}(),A(),f.onChange=function(){f.get()?O.style.display="block":O.style.display="none"},m.onChange=function(){var e=m.get();O.style.opacity=e},b.onChange=T,v.onChange=function(){A()},e.onDelete=function(){e=O,e&&e.parentNode&&e.parentNode.removeChild&&e.parentNode.removeChild(e);var e},h.onChange=function(){h.get()?O.classList.add("sidebar-cables-right"):O.classList.remove("sidebar-cables-right")},h.onChanged=function(){},x.onChange=function(){g&&(g.innerHTML=x.get())}},Ops.Sidebar.Sidebar.prototype=new CABLES.Op,CABLES.OPS["5a681c35-78ce-4cb3-9858-bc79c34c6819"]={f:Ops.Sidebar.Sidebar,objName:"Ops.Sidebar.Sidebar"},Ops.Gl.TextureEffects.Vignette_v2=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("Render"),t=CGL.TextureEffect.AddBlendSelect(e,"Blend Mode","normal"),a=e.inValueSlider("Amount",1),r=e.outTrigger("Trigger"),o=e.inValueSlider("Strength",1),i=e.inValueSlider("Radius",.3),l=e.inValueSlider("Sharp",.25),s=e.inValue("Aspect",1),u=e.inValueSlider("r",0),c=e.inValueSlider("g",0),d=e.inValueSlider("b",0);u.setUiAttribs({colorPick:!0});const p=e.patch.cgl,g=new CGL.Shader(p,"vignette");g.setSource(g.getDefaultVertexShader(),"IN vec2 texCoord;\nUNI sampler2D tex;\nUNI float lensRadius1;\nUNI float aspect;\nUNI float amount;
1\nUNI float strength;\nUNI float sharp;\n\nUNI float r,g,b;\n\n{{CGL.BLENDMODES}}\n\nvoid main()\n{\n vec4 vcol=vec4(r,g,b,1.0);\n vec4 col=texture(tex,texCoord);\n vec2 tcPos=vec2(texCoord.x,(texCoord.y-0.5)*aspect+0.5);\n float dist = distance(tcPos, vec2(0.5,0.5));\n float am = (1.0-smoothstep( (lensRadius1+0.5), (lensRadius1*0.99+0.5)*sharp, dist));\n\n col=mix(col,vcol,am*strength);\n vec4 base=texture(tex,texCoord);\n\n\n outColor=cgl_blend(base,col,amount);\n\n\n\n}\n");new CGL.Uniform(g,"t","tex",0),new CGL.Uniform(g,"f","amount",a),new CGL.Uniform(g,"f","lensRadius1",i),new CGL.Uniform(g,"f","aspect",s),new CGL.Uniform(g,"f","strength",o),new CGL.Uniform(g,"f","sharp",l),new CGL.Uniform(g,"f","r",u),new CGL.Uniform(g,"f","g",c),new CGL.Uniform(g,"f","b",d);CGL.TextureEffect.setupBlending(e,g,t,a),n.onTriggered=function(){CGL.TextureEffect.checkOpInEffect(e)&&(p.pushShader(g),p.currentTextureEffect.bind(),p.setTexture(0,p.currentTextureEffect.getCurrentSourceTexture().tex),p.currentTextureEffect.finish(),p.popShader(),r.trigger())}},Ops.Gl.TextureEffects.Vignette_v2.prototype=new CABLES.Op,CABLES.OPS["ee274501-ac60-49ab-a854-80aa38c36f76"]={f:Ops.Gl.TextureEffects.Vignette_v2,objName:"Ops.Gl.TextureEffects.Vignette_v2"},Ops.Anim.Timer_v2=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inValue("Speed",1),t=e.inValueBool("Play",!0),a=e.inTriggerButton("Reset"),r=e.inValueBool("Sync to timeline",!1),o=e.outValue("Time");e.setPortGroup("Controls",[t,a,n]);const i=new CABLES.Timer;var l=null,s=0,u=!1;
1function c(){t.get()?(i.play(),e.patch.addOnAnimFrame(e)):(i.pause(),e.patch.removeOnAnimFrame(e))}t.onChange=c,c(),a.onTriggered=function(){s=0,l=null,i.setTime(0),o.set(0)},r.onChange=function(){u=r.get(),t.setUiAttribs({greyout:u}),a.setUiAttribs({greyout:u})},e.onAnimFrame=function(e){if(i.isPlaying())if(void 0!==CABLES.overwriteTime)o.set(CABLES.overwriteTime*n.get());else if(u)o.set(e*n.get());else{i.update();var t=i.get();if(null===l)return void(l=t);var a=Math.abs(t-l);l=t,(s+=a*n.get())!=s&&(s=0),o.set(s)}}},Ops.Anim.Timer_v2.prototype=new CABLES.Op,CABLES.OPS["aac7f721-208f-411a-adb3-79adae2e471a"]={f:Ops.Anim.Timer_v2,objName:"Ops.Anim.Timer_v2"},Ops.Gl.TextureEffects.Noise.FBMNoise=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=CGL.TextureEffect.AddBlendSelect(e,"Blend Mode","normal"),a=e.inValueSlider("Amount",1),r=e.inValueSlider("r",1),o=e.inValueSlider("g",1),i=e.inValueSlider("b",1),l=e.outTrigger("trigger");r.setUiAttribs({colorPick:!0});const s=e.patch.cgl,u=new CGL.Shader(s);u.setSource(u.getDefaultVertexShader(),"UNI sampler2D tex;\nUNI float anim;\n\nUNI float scale;\nUNI float repeat;\n\nUNI float scrollX;\nUNI float scrollY;\n\nUNI float amount;
1\n\nUNI bool layer1;\nUNI bool layer2;\nUNI bool layer3;\nUNI bool layer4;\nUNI vec3 color;\nUNI float aspect;\n\nIN vec2 texCoord;\n\n\n{{CGL.BLENDMODES}}\n\n// csdcsdcds\n// adapted from warp shader by inigo quilez/iq\n// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.\n\n// See here for a tutorial on how to make this: http://www.iquilezles.org/www/articles/warp/warp.htm\n\nconst mat2 m = mat2( 0.80, 0.60, -0.60, 0.80 );\n\nfloat noise( in vec2 x )\n{\n\treturn sin(1.5*x.x)*sin(1.5*x.y);\n}\n\nfloat fbm4( vec2 p )\n{\n float f = 0.0;\n f += 0.5000*noise( p ); p = m*p*2.02;\n f += 0.2500*noise( p ); p = m*p*2.03;\n f += 0.1250*noise( p ); p = m*p*2.01;\n f += 0.0625*noise( p );\n return f/0.9375;\n}\n\nfloat fbm6( vec2 p )\n{\n float f = 0.0;\n f += 0.500000*(0.5+0.5*noise( p )); p = m*p*2.02;\n f += 0.250000*(0.5+0.5*noise( p )); p = m*p*2.03;\n f += 0.125000*(0.5+0.5*noise( p )); p = m*p*2.01;\n f += 0.062500*(0.5+0.5*noise( p )); p = m*p*2.04;\n f += 0.031250*(0.5+0.5*noise( p )); p = m*p*2.01;\n f += 0.015625*(0.5+0.5*noise( p ));\n return f/0.96875;\n}\n\nvoid main()\n{\n // vec4 col=texture(tex,texCoord+2.0*fbm4(texCoord+2.0*fbm6(texCoord+anim)));\n\n vec2 tc=texCoord;\n\t#ifdef DO_TILEABLE\n\t tc=abs(texCoord-0.5);\n\t#endif\n\n\n vec2 p=(tc-0.5)*scale;\n\n\n p.y/=aspect;\n vec2 q = vec2( fbm4( p + vec2(0.3+scrollX,0.20+scrollY) ),\n fbm4( p + vec2(3.1+scrollX,1.3+scrollY) ) );\n\n vec2 q2 = vec2( fbm4( p + vec2(2.0+scrollX,1.0+scrollY) ),\n fbm4( p + vec2(3.1+scrollX,1.3+scrollY) ) );\n\n vec2 q3 = vec2( fbm4( p + vec2(9.0+scrollX,4.0+scrollY) ),\n fbm4( p + vec2(3.1+scrollX,4.3+scrollY) ) );\n\n\n\n float v= fbm4( ( p + 4.0*q +anim*0.1)*repeat);\n float v2= fbm4( (p + 4.0*q2 +anim*0.1)*repeat );\n\n float v3= fbm6( (p + 4.0*q3 +anim*0.1)*repeat );\n float v4= fbm6( (p + 4.0*q2 +anim*0.1)*repeat );\n\n\n\n\n vec4 base=texture(tex,texCoord);\n\n vec4 finalColor;\n float colVal=0.0;\n float numLayers=0.0;\n\n if(layer1)\n {\n colVal+=v;\n numLayers++;\n }\n\n if(layer2)\n {\n colVal+=v2;\n numLayers++;\n }\n\n if(layer3)\n {\n colVal+=v3;\n numLayers++;\n }\n\n if(layer4)\n {\n colVal+=v4;\n numLayers++;\n }\n\n finalColor=vec4( color*vec3(colVal/numLayers),1.0);\n\n\n outColor = cgl_blend(base,finalColor,amount);;\n\n}\n");new CGL.Uniform(u,"t","tex",0),new CGL.Uniform(u,"f","scale",e.inValue("scale",2)),new CGL.Uniform(u,"f","anim",e.inValue("anim",0)),new CGL.Uniform(u,"f","scrollX",e.inValue("scrollX",9)),new CGL.Uniform(u,"f","scrollY",e.inValue("scrollY",0)),new CGL.Uniform(u,"f","repeat",e.inValue("repeat",1));var c=new CGL.Uniform(u,"f","aspect",e.inValue("aspect",1));new CGL.Uniform(u,"b","layer1",e.inValueBool("Layer 1",!0)),new CGL.Uniform(u,"b","layer2",e.inValueBool("Layer 2",!0)),new CGL.Uniform(u,"b","layer3",e.inValueBool("Layer 3",!0)),new CGL.Uniform(u,"b","layer4",e.inValueBool("Layer 4",!0));new CGL.Uniform(u,"3f","color",r,o,i);new CGL.Uniform(u,"f","amount",a);var d=e.inValueBool("Tileable",!1);d.onChange=function(){d.get()?u.define("DO_TILEABLE"):u.removeDefine("DO_TILEABLE")},CGL.TextureEffect.setupBlending(e,u,t,a),n.onTriggered=function(){CGL.TextureEffect.checkOpInEffect(e)&&(s.pushShader(u),s.currentTextureEffect.bind(),c.set(s.currentTextureEffect.getCurrentSourceTexture().width/s.currentTextureEffect.getCurrentSourceTexture().height),s.setTexture(0,s.currentTextureEffect.getCurrentSourceTexture().tex),s.currentTextureEffect.finish(),s.popShader(),l.trigger())}},Ops.Gl.TextureEffects.Noise.FBMNoise.prototype=new CABLES.Op,CABLES.OPS["7073186c-b776-48c2-a01e-041df88ad88a"]={f:Ops.Gl.TextureEffects.Noise.FBMNoise,objName:"Ops.Gl.TextureEffects.Noise.FBMNoise"},Ops.Gl.Shader.MatCapMaterialNew_v2=function(){CABLES.Op.apply(this,arguments);const e=this,n="\n{{MODULES_HEAD}}\n\nIN vec3 norm;\nIN vec2 texCoord;\nIN vec3 vNorm;\nUNI mat4 viewMatrix;\n\nUNI float opacity;\n\nUNI float r;\nUNI float g;\nUNI float b;\n\nIN vec3 e;\n\n\nUNI sampler2D texMatcap;\n\n#ifdef HAS_DIFFUSE_TEXTURE\n UNI sampler2D texDiffuse;\n#endif\n\n#ifdef USE_SPECULAR_TEXTURE\n UNI sampler2D texSpec;
1\n UNI sampler2D texSpecMatCap;\n#endif\n\n#ifdef HAS_AO_TEXTURE\n UNI sampler2D texAo;\n UNI float aoIntensity;\n#endif\n\n#ifdef HAS_NORMAL_TEXTURE\n IN vec3 vBiTangent;\n IN vec3 vTangent;\n\n UNI sampler2D texNormal;\n UNI mat4 normalMatrix;\n\n vec2 vNormt;\n#endif\n\n#ifdef HAS_TEXTURE_OPACITY\n UNI sampler2D texOpacity;\n#endif\n\n#ifdef CALC_SSNORMALS\n // from https://www.enkisoftware.com/devlogpost-20150131-1-Normal_generation_in_the_pixel_shader\n IN vec3 eye_relative_pos;\n#endif\n\n\nconst float normalScale=0.4;\n\nconst vec2 invAtan = vec2(0.1591, 0.3183);\nvec2 sampleSphericalMap(vec3 direction)\n{\n vec2 uv = vec2(atan(direction.z, direction.x), asin(direction.y));\n uv *= invAtan;\n uv += 0.5;\n return uv;\n}\n\n\nvoid main()\n{\n vec2 vnOrig=vNorm.xy;\n vec2 vn=vNorm.xy;\n\n #ifdef PER_PIXEL\n\n vec3 ref = reflect( e, vNorm );\n // ref=(ref);\n\n // ref.z+=1.;\n // ref=normalize(ref);\n\n // float m = 2. * sqrt(\n // pow(ref.x, 2.0)+\n // pow(ref.y, 2.0)+\n // pow(ref.z+1., 2.0)\n // );\n\n float m = 2.58284271247461903 * sqrt( (length(ref)) );\n\n vn.xy = ref.xy / m + 0.5;\n #endif\n\n #ifdef HAS_TEXTURES\n vec2 texCoords=texCoord;\n {{MODULE_BEGIN_FRAG}}\n #endif\n\n #ifdef CALC_SSNORMALS\n \tvec3 dFdxPos = dFdx( eye_relative_pos );\n \tvec3 dFdyPos = dFdy( eye_relative_pos );\n \tvec3 ssn = normalize( cross(dFdxPos,dFdyPos ));\n\n vec3 rr = reflect( e, ssn );\n float ssm = 2. * sqrt(\n pow(rr.x, 2.0)+\n pow(rr.y, 2.0)+\n pow(rr.z + 1.0, 2.0)\n );\n\n\n vn = (rr.xy / ssm + 0.5);\n\n vn.t=clamp(vn.t, 0.0, 1.0);\n vn.s=clamp(vn.s, 0.0, 1.0);\n\n // float dst = dot(abs(coord-center), vec2(1.0));\n // float aaf = fwidth(dst);\n // float alpha = smoothstep(radius - aaf, radius, dst);\n\n #endif\n\n #ifdef HAS_NORMAL_TEXTURE\n vec3 tnorm=texture( texNormal, texCoord ).xyz * 2.0 - 1.0;\n\n tnorm = normalize(tnorm*normalScale);\n\n vec3 tangent;\n vec3 binormal;\n\n #ifdef CALC_TANGENT\n vec3 c1 = cross(norm, vec3(0.0, 0.0, 1.0));\n// vec3 c2 = cross(norm, vec3(0.0, 1.0, 0.0));\n// if(length(c1)>length(c2)) tangent = c2;\n// else tangent = c1;\n tangent = c1;\n tangent = normalize(tangent);\n binormal = cross(norm, tangent);\n binormal = normalize(binormal);\n #endif\n\n #ifndef CALC_TANGENT\n tangent=normalize(vTangent);\n// tangent.y*=-13.0;\n// binormal=vBiTangent*norm;\n// binormal.z*=-1.0;\n// binormal=normalize(binormal);\n binormal=normalize( cross( normalize(norm), normalize(vBiTangent) ));\n // vBinormal = normalize( cross( vNormal, vTangent ) * tangent.w );\n\n #endif\n\n tnorm=normalize(tangent*tnorm.x + binormal*tnorm.y + norm*tnorm.z);\n\n // vec3 n = normalize( mat3(normalMatrix) * (norm+tnorm*normalScale) );\n vec3 n = normalize( mat3(normalMatrix) * (norm+tnorm*normalScale) );\n\n vec3 re = reflect( e, n );\n float m = 2. * sqrt(\n pow(re.x, 2.0)+\n pow(re.y, 2.0)+\n pow(re.z + 1.0, 2.0)\n );\n\n vn = (re.xy / m + 0.5);\n\n #endif\n\n// vn=clamp(vn,0.0,1.0);\n\n\n\n\n\n vec4 col = texture( texMatcap, vec2(vn.x,1.-vn.y) );\n\n #ifdef HAS_DIFFUSE_TEXTURE\n col = col*texture( texDiffuse, texCoords);\n #endif\n\n col.r*=r;\n col.g*=g;\n col.b*=b;\n\n\n #ifdef HAS_AO_TEXTURE\n col = col*\n mix(\n vec4(1.0,1.0,1.0,1.0),\n texture( texAo, texCoords),\n aoIntensity\n );\n #endif\n\n #ifdef USE_SPECULAR_TEXTURE\n vec4 spec = texture( texSpecMatCap, vn );\n spec*= texture( texSpec, texCoords );\n col+=spec;\n #endif\n\n col.a*=opacity;\n #ifdef HAS_TEXTURE_OPACITY\n #ifdef TRANSFORMALPHATEXCOORDS\n texCoords=vec2(texCoord.s,1.0-texCoord.t);\n #endif\n #ifdef ALPHA_MASK_ALPHA\n col.a*=texture(texOpacity,texCoords).a;\n #endif\n #ifdef ALPHA_MASK_LUMI\n col.a*=dot(vec3(0.2126,0.7152,0.0722), texture(texOpacity,texCoords).rgb);\n #endif\n #ifdef ALPHA_MASK_R\n col.a*=texture(texOpacity,texCoords).r;\n #endif\n #ifdef ALPHA_MASK_G\n col.a*=texture(texOpacity,texCoords).g;\n #endif\n #ifdef ALPHA_MASK_B\n col.a*=texture(texOpacity,texCoords).b;\n #endif\n // #endif\n #endif\n\n {{MODULE_COLOR}}\n\n\n // #ifdef PER_PIXEL\n\n\n // vec2 nn=(vn-0.5)*2.0;\n // float ll=length( nn );\n // // col.r=0.0;\n // // col.b=0.0;\n // // col.a=1.0;\n\n // // if(ll>0.49 && ll<0.51) col=vec4(0.0,1.0,0.0,1.0);\n // // if(ll>0. ) col=vec4(0.0,1.0,0.0,1.0);\n // // col=vec4(vn,0.0,1.0);\n\n\n // float dd=(vn.x-0.5)*(vn.x-0.5) + (vn.y-0.5)*(vn.y-0.5);\n // dd*=4.0;\n\n // if(dd>0.94)\n // {\n // col=vec4(0.0,1.0,0.0,1.0);\n // // nn*=0.5;\n // // nn+=0.5;\n // // nn*=2.0;\n // // vn=nn;\n\n // // // dd=1.0;\n // }\n // // else dd=0.0;
1\n\n // // col=vec4(vec3(dd),1.0);\n\n // // if(dd>0.95) col=vec4(1.0,0.0,0.0,1.0);\n\n // // vec2 test=(vec2(1.0,1.0)-0.5)*2.0;\n // // col=vec4(0.0,0.0,length(test),1.0);\n\n // #endif\n\n\n\n outColor = col;\n\n}",t="\nIN vec3 vPosition;\nIN vec2 attrTexCoord;\nIN vec3 attrVertNormal;\nIN float attrVertIndex;\nIN vec3 attrTangent;\nIN vec3 attrBiTangent;\n\n#ifdef HAS_NORMAL_TEXTURE\n\n OUT vec3 vBiTangent;\n OUT vec3 vTangent;\n#endif\n\nOUT vec2 texCoord;\nOUT vec3 norm;\nUNI mat4 projMatrix;\nUNI mat4 modelMatrix;\nUNI mat4 viewMatrix;\n\nOUT vec3 vNorm;\nOUT vec3 e;\n\nUNI vec2 texOffset;\nUNI vec2 texRepeat;\n\n\n#ifndef INSTANCING\n UNI mat4 normalMatrix;\n#endif\n\n\n{{MODULES_HEAD}}\n\n#ifdef CALC_SSNORMALS\n // from https://www.enkisoftware.com/devlogpost-20150131-1-Normal_generation_in_the_pixel_shader\n OUT vec3 eye_relative_pos;\n#endif\n\nUNI vec3 camPos;\n\n\n// mat3 transposeMat3(mat3 m)\n// {\n// return mat3(m[0][0], m[1][0], m[2][0],\n// m[0][1], m[1][1], m[2][1],\n// m[0][2], m[1][2], m[2][2]);\n// }\n\n// mat3 inverseMat3(mat3 m)\n// {\n// float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2];\n// float a10 = m[1][0], a11 = m[1][1], a12 = m[1][2];\n// float a20 = m[2][0], a21 = m[2][1], a22 = m[2][2];\n\n// float b01 = a22 * a11 - a12 * a21;\n// float b11 = -a22 * a10 + a12 * a20;\n// float b21 = a21 * a10 - a11 * a20;\n\n// float det = a00 * b01 + a01 * b11 + a02 * b21;\n\n// return mat3(b01, (-a22 * a01 + a02 * a21), (a12 * a01 - a02 * a11),\n// b11, (a22 * a00 - a02 * a20), (-a12 * a00 + a02 * a10),\n// b21, (-a21 * a00 + a01 * a20), (a11 * a00 - a01 * a10)) / det;\n// }\n\nvoid main()\n{\n texCoord=texRepeat*vec2(attrTexCoord.x,attrTexCoord.y)+texOffset;\n\n\n norm=attrVertNormal;\n mat4 mMatrix=modelMatrix;\n mat4 mvMatrix;\n vec3 tangent=attrTangent;\n vec3 bitangent=attrBiTangent;\n\n #ifdef HAS_NORMAL_TEXTURE\n vTangent=attrTangent;\n vBiTangent=attrBiTangent;\n #endif\n\n vec4 pos = vec4( vPosition, 1. );\n\n {{MODULE_VERTEX_POSITION}}\n\n\n mvMatrix= viewMatrix * mMatrix;\n\n #ifdef INSTANCING\n mat4 normalMatrix=mvMatrix;//inverse(transpose(mvMatrix));\n // mat4 normalMatrix = mat4(transposeMat3(inverseMat3(mat3(mMatrix))));\n\n #endif\n\n\n mat3 wmMatrix=mat3(mMatrix);\n\n e = normalize( vec3( mvMatrix * pos ) );\n vec3 n = normalize( mat3(normalMatrix*viewMatrix) * (norm) );\n\n #ifdef PER_PIXEL\n vNorm=n;\n #endif\n #ifndef PER_PIXEL\n //matcap\n vec3 r = reflect( e, n );\n\n // float m = 2. * sqrt(\n // pow(r.x, 2.0)+\n // pow(r.y, 2.0)+\n // pow(r.z + 1.0, 2.0)\n // );\n\n float m = 2.58284271247461903 * sqrt(length(r));\n\n vNorm.xy = r.xy / m + 0.5;\n\n #endif\n\n\n\n #ifdef DO_PROJECT_COORDS_XY\n texCoord=(projMatrix * mvMatrix*pos).xy*0.1;\n #endif\n\n #ifdef DO_PROJECT_COORDS_YZ\n texCoord=(projMatrix * mvMatrix*pos).yz*0.1;\n #endif\n\n #ifdef DO_PROJECT_COORDS_XZ\n texCoord=(projMatrix * mvMatrix*pos).xz*0.1;\n #endif\n\n #ifdef CALC_SSNORMALS\n eye_relative_pos = (mvMatrix * pos ).xyz - camPos;\n #endif\n\n\n\n gl_Position = projMatrix * mvMatrix * pos;\n\n}",a=e.inTrigger("render"),r=e.inTexture("MatCap"),o=e.inTexture("Diffuse"),i=e.inTexture("Normal"),l=e.inTexture("Specular"),s=e.inTexture("Specular MatCap"),u=e.inTexture("AO Texture"),c=e.inTexture("Opacity Texture"),d=e.inValueSlider("r",1),p=e.inValueSlider("g",1),g=e.inValueSlider("b",1),f=e.inValueSlider("Opacity",1),m=e.inValueSlider("AO Intensity",1),b=e.inValue("Repeat X",1),v=e.inValue("Repeat Y",1),x=e.inValue("Offset X",0),h=e.inValue("Offset Y",0),I=e.inValueBool("calc normal tangents",!0),O=e.inValueSelect("projectCoords",["no","xy","yz","xz"],"no"),C=e.inValueBool("Screen Space Normals"),T=e.outTrigger("trigger"),A=e.outObject("Shader");d.setUiAttribs({colorPick:!0});
1const E=e.inSwitch("Alpha Mask Source",["Luminance","R","G","B","A"],"Luminance");E.setUiAttribs({greyout:!0});const S=e.inValueBool("Opacity TexCoords Transform",!1),L=e.inValueBool("Discard Transparent Pixels");e.setPortGroup("Texture Opacity",[E,S,L]),e.setPortGroup("Texture maps",[o,i,l,s,u,c]),e.setPortGroup("Color",[d,p,g,f]);const M=e.patch.cgl,y=new CGL.Shader(M,"MatCapMaterialNew");new CGL.Uniform(y,"f","opacity",f);y.setModules(["MODULE_VERTEX_POSITION","MODULE_COLOR","MODULE_BEGIN_FRAG"]),y.setSource(t,n),A.set(y);var N=new CGL.Uniform(y,"t","texMatcap",0),w=null,_=null,P=null,B=null,j=null;new CGL.Uniform(y,"2f","texOffset",x,h),new CGL.Uniform(y,"2f","texRepeat",b,v);new CGL.Uniform(y,"f","aoIntensity",m);function G(){I.get()?y.define("CALC_TANGENT"):y.removeDefine("CALC_TANGENT")}function D(){if(!M.defaultMatcapTex){for(var e=new Uint8Array(1024),n=0;n<16;n++)for(var t=0;t<16;t++){var a=16*t;a*=Math.min(1,(n+t/3)/8),e[4*(n+16*t)+0]=e[4*(n+16*t)+1]=e[4*(n+16*t)+2]=a,e[4*(n+16*t)+3]=255}M.defaultMatcapTex=new CGL.Texture(M),M.defaultMatcapTex.initFromData(e,16,16,CGL.Texture.FILTER_LINEAR,CGL.Texture.WRAP_REPEAT)}}function k(){"Alpha Channel"==E.get()?y.define("ALPHA_MASK_ALPHA"):y.removeDefine("ALPHA_MASK_ALPHA"),"Luminance"==E.get()?y.define("ALPHA_MASK_LUMI"):y.removeDefine("ALPHA_MASK_LUMI"),"R"==E.get()?y.define("ALPHA_MASK_R"):y.removeDefine("ALPHA_MASK_R"),"G"==E.get()?y.define("ALPHA_MASK_G"):y.removeDefine("ALPHA_MASK_G"),"B"==E.get()?y.define("ALPHA_MASK_B"):y.removeDefine("ALPHA_MASK_B")}g.uniform=new CGL.Uniform(y,"f","b",g),p.uniform=new CGL.Uniform(y,"f","g",p),d.uniform=new CGL.Uniform(y,"f","r",d),I.onChange=G,G(),C.onChange=function(){C.get()?(M.glVersion<2&&(M.gl.getExtension("OES_standard_derivatives"),y.enableExtension("GL_OES_standard_derivatives")),y.define("CALC_SSNORMALS")):y.removeDefine("CALC_SSNORMALS")},O.onChange=function(){y.toggleDefine("DO_PROJECT_COORDS_XY","xy"==O.get()),y.toggleDefine("DO_PROJECT_COORDS_YZ","yz"==O.get()),y.toggleDefine("DO_PROJECT_COORDS_XZ","xz"==O.get())},r.onChange=D,o.onChange=function(){if(o.get()){if(null!==w)return;y.define("HAS_DIFFUSE_TEXTURE"),y.removeUniform("texDiffuse"),w=new CGL.Uniform(y,"t","texDiffuse",1)}else y.removeDefine("HAS_DIFFUSE_TEXTURE"),y.removeUniform("texDiffuse"),w=null},i.onChange=function(){if(i.get()){if(null!==_)return;y.define("HAS_NORMAL_TEXTURE"),y.removeUniform("texNormal"),_=new CGL.Uniform(y,"t","texNormal",2)}else y.removeDefine("HAS_NORMAL_TEXTURE"),y.removeUniform("texNormal"),_=null},u.onChange=function(){if(u.get()){if(null!==j)return;y.define("HAS_AO_TEXTURE"),y.removeUniform("texAo"),j=new CGL.Uniform(y,"t","texAo",5)}else y.removeDefine("HAS_AO_TEXTURE"),y.removeUniform("texAo"),j=null},l.onChange=s.onChange=function(){if(l.get()&&s.get()){if(null!==P)return;y.define("USE_SPECULAR_TEXTURE"),y.removeUniform("texSpec"),y.removeUniform("texSpecMatCap"),P=new CGL.Uniform(y,"t","texSpec",3),B=new CGL.Uniform(y,"t","texSpecMatCap",4)}else y.removeDefine("USE_SPECULAR_TEXTURE"),y.removeUniform("texSpec"),y.removeUniform("texSpecMatCap"),P=null,B=null},E.onChange=k,c.onChange=function(){if(c.get()){if(null!==V)return;y.removeUniform("texOpacity"),y.define("HAS_TEXTURE_OPACITY"),V||(V=new CGL.Uniform(y,"t","texOpacity",6)),E.setUiAttribs({greyout:!1}),L.setUiAttribs({greyout:!1}),S.setUiAttribs({greyout:!1})}else y.removeUniform("texOpacity"),y.removeDefine("HAS_TEXTURE_OPACITY"),V=null,E.setUiAttribs({greyout:!0}),L.setUiAttribs({greyout:!0}),S.setUiAttribs({greyout:!0});k()};var V=null;L.onChange=function(){L.get()?y.define("DISCARDTRANS"):y.removeDefine("DISCARDTRANS")},S.onChange=function(){S.get()?y.define("TRANSFORMALPHATEXCOORDS"):y.removeDefine("TRANSFORMALPHATEXCOORDS")},e.onDelete=function(){},e.preRender=function(){y.bind()},a.onTriggered=function(){M.defaultMatcapTex||D(),y.popTextures();const e=r.get()||M.defaultMatcapTex;y.pushTexture(N,e.tex),o.get()&&w&&y.pushTexture(w,o.get().tex),i.get()&&_&&y.pushTexture(_,i.get().tex),l.get()&&P&&y.pushTexture(P,l.get().tex),s.get()&&B&&y.pushTexture(B,s.get().tex),u.get()&&j&&der.pushTexture(j,u.get().tex),c.get()&&V&&y.pushTexture(V,c.get().tex),M.pushShader(y),T.trigger(),M.popShader()}},Ops.Gl.Shader.MatCapMaterialNew_v2.prototype=new CABLES.Op,CABLES.OPS["264b5f8d-82dd-44c6-ae03-741a702e904a"]={f:Ops.Gl.Shader.MatCapMaterialNew_v2,objName:"Ops.Gl.Shader.MatCapMaterialNew_v2"},Ops.Gl.AspectRatio=function(){CABLES.Op.apply(this,arguments);const e=this;for(var n=[{title:"1:2",v:.5},{title:"1",v:1},{title:"5:4",v:5/4},{title:"4:3",v:4/3},{title:"3:2",v:1.5},{title:"11:8",v:11/8},{title:"16:9",v:16/9},{title:"2:1",v:2},{title:"21:9",v:21/9},{title:"custom",v:0}],t=[],a=0;a<n.length;a++)t.push(n[a].title);const r=e.inTrigger("render"),o=e.outTrigger("trigger"),i=e.outValue("Width"),l=e.outValue("Height"),s=e.inValueSelect("Aspect Ratio",t,n[0].title),u=e.inValueFloat("Custom",1.777777),c=e.inValueBool("use viewport size",!0),d=e.inValueInt("texture width",512),p=e.inValueInt("texture height",512);e.setPortGroup("Size",[c,d,p]),c.onChange=function(){d.setUiAttribs({greyout:c.get()}),p.setUiAttribs({greyout:c.get()})};const g=[],f=e.patch.cgl;var m,b,v=1e3,x=1e3,h=1;function I(){var e=s.get();if("custom"==e)u.uiAttribs.greyout&&u.setUiAttribs({greyout:!1}),h=Math.abs(u.get());else{u.uiAttribs.greyout||u.setUiAttribs({greyout:!0});for(var t=0;t<n.length;t++)if(n[t].title==e){h=n[t].v;break}}}s.onChange=I,u.onChange=I,I(),e.onDelete=function(){f.resetViewPort()},r.onTriggered=function(){var n=f.getViewPort();g[0]=n[0],g[1]=n[1],g[2]=n[2],g[3]=n[3],function(){var n=f.canvasWidth,t=f.canvasHeight;
1c.get()||(n=d.get(),t=p.get());var a=t*h,r=t,o=0,s=0;if(a>n&&(a=n,r=n/h),a<n&&(o=(n-a)/2),r<t&&(s=(t-r)/2),a=Math.ceil(a),r=Math.ceil(r),o=Math.ceil(o),s=Math.ceil(s),a!=v||r!=x||o!=m||s!=b){v=a,x=r,m=o,b=s,f.setViewPort(m,b,v,x);for(var u=0;u<e.patch.ops.length;u++)e.patch.ops[u].onResize&&e.patch.ops[u].onResize()}i.set(v),l.set(x)}(),m=Math.ceil(m),b=Math.ceil(b),v=Math.ceil(v),x=Math.ceil(x),f.setViewPort(m,b,v,x),mat4.perspective(f.pMatrix,45,h,.1,1100),o.trigger(),f.setViewPort(g[0],g[1],g[2],g[3])}},Ops.Gl.AspectRatio.prototype=new CABLES.Op,CABLES.OPS["b4f17994-3028-4203-9a8d-d5e5377a58fc"]={f:Ops.Gl.AspectRatio,objName:"Ops.Gl.AspectRatio"},Ops.Gl.Meshes.Cube=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("render"),t=e.inValue("width",1),a=e.inValue("height",1),r=e.inValue("length",1),o=e.inValueBool("center",!0),i=e.inValueBool("Active",!0),l=e.inSwitch("Mapping",["Default","Cube","Cube Biased"],"Default"),s=e.outTrigger("trigger"),u=e.outObject("geometry"),c=e.patch.cgl;e.setPortGroup("Geometry",[t,a,r]);var d=null,p=null;function g(){d||(d=new CGL.Geometry("cubemesh")),d.clear();var e=t.get(),n=-1*t.get(),i=r.get(),s=-1*r.get(),g=a.get(),f=-1*a.get();if(o.get()?(e*=.5,n*=.5,i*=.5,s*=.5,g*=.5,f*=.5):(n=0,s=0,f=0),"Cube"==l.get()||"Cube Biased"==l.get()?d.vertices=[n,s,g,e,s,g,e,i,g,n,i,g,n,s,f,e,s,f,e,i,f,n,i,f,n,i,f,e,i,f,e,i,g,n,i,g,n,s,f,e,s,f,e,s,g,n,s,g,e,s,f,e,s,g,e,i,g,e,i,f,n,s,f,n,s,g,n,i,g,n,i,f]:d.vertices=[n,s,g,e,s,g,e,i,g,n,i,g,n,s,f,n,i,f,e,i,f,e,s,f,n,i,f,n,i,g,e,i,g,e,i,f,n,s,f,e,s,f,e,s,g,n,s,g,e,s,f,e,i,f,e,i,g,e,s,g,n,s,f,n,s,g,n,i,g,n,i,f],"Cube"==l.get()||"Cube Biased"==l.get()){const e=.25,n=1/3;var m=0;"Cube Biased"==l.get()&&(m=.01),d.setTexCoords([e+m,2*n-m,2*e-m,2*n-m,2*e-m,n+m,e+m,n+m,4*e-m,2*n-m,3*e+m,2*n-m,3*e+m,n+m,4*e-m,n+m,e+m,0+m,2*e-m,0+m,2*e-m,1*n-m,e+m,1*n-m,e+m,2*n+m,2*e-m,2*n+m,2*e-m,3*n-m,e+m,3*n-m,0*e+m,n+m,1*e-m,n+m,1*e-m,2*n-m,0*e+m,2*n-m,2*e+m,n+m,3*e-m,n+m,3*e-m,2*n-m,2*e+m,2*n-m])}else d.setTexCoords([0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0]);d.vertexNormals=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0],d.tangents=[-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1],d.biTangents=[0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0],d.verticesIndices=[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23],p&&p.dispose(),p=new CGL.Mesh(c,d),u.set(null),u.set(d)}l.onChange=g,t.onChange=g,a.onChange=g,r.onChange=g,o.onChange=g,g(),n.onTriggered=function(){i.get()&&p&&p.render(c.getShader()),s.trigger()},e.preRender=function(){g(),p.render(c.getShader())},e.onDelete=function(){p&&p.dispose()}},Ops.Gl.Meshes.Cube.prototype=new CABLES.Op,CABLES.OPS["ff0535e2-603a-4c07-9ce6-e9e0db857dfe"]={f:Ops.Gl.Meshes.Cube,objName:"Ops.Gl.Meshes.Cube"},Ops.Gl.TextureEffects.Noise.Noise=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inTrigger("Render"),t=CGL.TextureEffect.AddBlendSelect(e,"Blend Mode","normal"),a=e.inValueSlider("Amount",1),r=e.inValueBool("Animated",!0),o=e.inValueBool("RGB",!1),i=e.outTrigger("Next"),l=e.patch.cgl,s=new CGL.Shader(l),u=(new CGL.Uniform(s,"f","amount",a),new CGL.Uniform(s,"f","time",1));new CGL.Uniform(s,"t","tex",0);s.setSource(s.getDefaultVertexShader(),"IN vec2 texCoord;\nUNI sampler2D tex;\nUNI float amount;
1\nUNI float time;\n\n{{CGL.BLENDMODES}}\n{{MODULES_HEAD}}\n\n{{CGL.RANDOM_TEX}}\n\nvoid main()\n{\n vec4 rnd;\n\n #ifndef RGB\n float r=cgl_random(texCoord.xy+vec2(time));\n rnd=vec4( r,r,r,1.0 );\n #endif\n\n #ifdef RGB\n rnd=vec4(cgl_random3(texCoord.xy+vec2(time)),1.0);\n #endif\n\n vec4 base=texture(tex,texCoord);\n vec4 col=vec4( _blend(base.rgb,rnd.rgb) ,1.0);\n\n outColor=vec4( mix( col.rgb, base.rgb ,1.0-base.a*amount),1.0);\n}"),CGL.TextureEffect.setupBlending(e,s,t,a),e.toWorkPortsNeedToBeLinked(n),o.onChange=function(){o.get()?s.define("RGB"):s.removeDefine("RGB")},s.bindTextures=function(){l.setTexture(0,l.currentTextureEffect.getCurrentSourceTexture().tex)},n.onTriggered=function(){CGL.TextureEffect.checkOpInEffect(e)&&(r.get()?u.setValue(e.patch.freeTimer.get()/1e3%100):u.setValue(0),l.pushShader(s),l.currentTextureEffect.bind(),l.currentTextureEffect.finish(),l.popShader(),i.trigger())}},Ops.Gl.TextureEffects.Noise.Noise.prototype=new CABLES.Op,CABLES.OPS["81253441-cc73-42fa-b903-6d23806873d9"]={f:Ops.Gl.TextureEffects.Noise.Noise,objName:"Ops.Gl.TextureEffects.Noise.Noise"},Ops.Math.Clamp=function(){CABLES.Op.apply(this,arguments);const e=this,n=e.inValueFloat("val",.5),t=e.inValueFloat("min",0),a=e.inValueFloat("max",1),r=e.inValueBool("ignore outside values"),o=e.outValue("result");n.onChange=t.onChange=a.onChange=function(){if(r.get()){if(n.get()>a.get())return;if(n.get()<t.get())return}o.set(Math.min(Math.max(n.get(),t.get()),a.get()))}},Ops.Math.Clamp.prototype=new CABLES.Op,CABLES.OPS["cda1a98e-5e16-40bd-9b18-a67e9eaad5a1"]={f:Ops.Math.Clamp,objName:"Ops.Math.Clamp"},window.addEventListener("load",function(e){CABLES.jsLoaded=new Event("CABLES.jsLoaded"),document.dispatchEvent(CABLES.jsLoaded)});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.