ranger-compiler 2.1.70 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +114 -0
- package/README.md +956 -133
- package/{compiler/Lang.clj → dist/Lang.rgr} +2345 -75
- package/dist/README.md +116 -0
- package/dist/{bin/api.d.ts → api.d.ts} +430 -154
- package/dist/api.js +34345 -0
- package/{lib/Ajax.clj → dist/lib/Ajax.rgr} +1 -1
- package/{lib/CmdParams.clj → dist/lib/CmdParams.rgr} +72 -72
- package/{lib/Crypto.clj → dist/lib/Crypto.rgr} +1 -1
- package/{lib/DOMLib.clj → dist/lib/DOMLib.rgr} +2 -2
- package/{lib/Engine3D.clj → dist/lib/Engine3D.rgr} +1 -1
- package/{lib/ImmutableVector.clj → dist/lib/ImmutableVector.rgr} +364 -364
- package/{lib/IndexedDB.clj → dist/lib/IndexedDB.rgr} +1 -1
- package/{lib/JSON.clj → dist/lib/JSON.rgr} +105 -2
- package/{lib/JinxProcess.clj → dist/lib/JinxProcess.rgr} +3 -3
- package/{lib/Storage.clj → dist/lib/Storage.rgr} +1 -1
- package/{lib/Timers.clj → dist/lib/Timers.rgr} +176 -170
- package/{lib/ViewLib.clj → dist/lib/ViewLib.rgr} +1 -1
- package/dist/lib/lib/ACEEditor.rgr +5 -0
- package/dist/lib/lib/Ajax.rgr +196 -0
- package/dist/lib/lib/CmdParams.rgr +72 -0
- package/dist/lib/lib/Crypto.rgr +90 -0
- package/dist/lib/lib/DOMLib.rgr +307 -0
- package/{examples/3D/Engine3D.clj → dist/lib/lib/Engine3D.rgr} +870 -857
- package/dist/lib/lib/ImmutableVector.rgr +364 -0
- package/dist/lib/lib/IndexedDB.rgr +32 -0
- package/{compiler/JSON.clj → dist/lib/lib/JSON.rgr} +106 -3
- package/dist/lib/lib/JinxProcess.rgr +838 -0
- package/dist/lib/lib/SQL.rgr +44 -0
- package/dist/lib/lib/ServiceLib.rgr +9 -0
- package/dist/lib/lib/Storage.rgr +89 -0
- package/dist/lib/lib/Time.rgr +75 -0
- package/dist/lib/lib/Timers.rgr +176 -0
- package/dist/lib/lib/TypedArrays.rgr +14 -0
- package/dist/lib/lib/ViewLib.rgr +851 -0
- package/dist/lib/lib/WebLib.rgr +47 -0
- package/dist/lib/lib/WebServerLib.rgr +137 -0
- package/{lib/ranger-dir.clj → dist/lib/lib/ranger-dir.rgr} +1 -1
- package/{compiler/stdlib.clj → dist/lib/lib/stdlib.rgr} +42 -19
- package/{lib/stdops.clj → dist/lib/lib/stdops.rgr} +1 -1
- package/dist/lib/ranger-dir.rgr +175 -0
- package/{lib/stdlib.clj → dist/lib/stdlib.rgr} +2 -2
- package/dist/lib/stdops.rgr +168 -0
- package/dist/package.json +47 -0
- package/{compiler/bin/output.js → dist/rgrc.js} +15377 -7936
- package/dist/stdops.rgr +168 -0
- package/package.json +196 -39
- package/adventofcode/day1/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day1/bin/LambdaSignature2.java +0 -3
- package/adventofcode/day1/bin/LambdaSignature3.java +0 -3
- package/adventofcode/day1/bin/day1.cpp +0 -124
- package/adventofcode/day1/bin/day1.go +0 -75
- package/adventofcode/day1/bin/day1.js +0 -45
- package/adventofcode/day1/bin/day1.php +0 -46
- package/adventofcode/day1/bin/day1.scala +0 -48
- package/adventofcode/day1/bin/day1.swift +0 -48
- package/adventofcode/day1/bin/day1_part2.cpp +0 -180
- package/adventofcode/day1/bin/day1_part2.go +0 -123
- package/adventofcode/day1/bin/day1_part2.js +0 -76
- package/adventofcode/day1/bin/day1_part2.php +0 -88
- package/adventofcode/day1/bin/day1_part2.scala +0 -81
- package/adventofcode/day1/bin/day1_part2.swift +0 -91
- package/adventofcode/day1/bin/day_one.java +0 -38
- package/adventofcode/day1/bin/day_one_part_two.java +0 -57
- package/adventofcode/day1/bin/operatorsOf.java +0 -37
- package/adventofcode/day1/bin/operatorsOf_5.java +0 -10
- package/adventofcode/day1/bin/operatorsOfboolean_5.java +0 -10
- package/adventofcode/day1/bin/variant.hpp +0 -2416
- package/adventofcode/day1/compile.bat +0 -7
- package/adventofcode/day1/compile2.bat +0 -7
- package/adventofcode/day1/day1.clj +0 -19
- package/adventofcode/day1/day1_part2.clj +0 -43
- package/adventofcode/day1/input1.txt +0 -1
- package/adventofcode/day2/bin/LambdaSignature1.class +0 -0
- package/adventofcode/day2/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day2/bin/LambdaSignature2.class +0 -0
- package/adventofcode/day2/bin/LambdaSignature2.java +0 -3
- package/adventofcode/day2/bin/day2.cpp +0 -133
- package/adventofcode/day2/bin/day2.go +0 -85
- package/adventofcode/day2/bin/day2.js +0 -45
- package/adventofcode/day2/bin/day2.php +0 -59
- package/adventofcode/day2/bin/day2.scala +0 -54
- package/adventofcode/day2/bin/day2.swift +0 -62
- package/adventofcode/day2/bin/day2_part2.cpp +0 -150
- package/adventofcode/day2/bin/day2_part2.go +0 -101
- package/adventofcode/day2/bin/day2_part2.js +0 -54
- package/adventofcode/day2/bin/day2_part2.php +0 -80
- package/adventofcode/day2/bin/day2_part2.scala +0 -68
- package/adventofcode/day2/bin/day2_part2.swift +0 -82
- package/adventofcode/day2/bin/day_two.java +0 -61
- package/adventofcode/day2/bin/day_two_part_two$1$1$1.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two$1$1.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two$1.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two.java +0 -80
- package/adventofcode/day2/bin/operatorsOf.class +0 -0
- package/adventofcode/day2/bin/operatorsOf.java +0 -18
- package/adventofcode/day2/bin/variant.hpp +0 -2416
- package/adventofcode/day2/compile.bat +0 -7
- package/adventofcode/day2/compile2.bat +0 -7
- package/adventofcode/day2/day2.clj +0 -60
- package/adventofcode/day2/day2_part2.clj +0 -69
- package/adventofcode/day2/input1.txt +0 -1
- package/adventofcode/day3/bin/Grid.java +0 -92
- package/adventofcode/day3/bin/GridRow.java +0 -5
- package/adventofcode/day3/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day3/bin/LambdaSignature2.java +0 -3
- package/adventofcode/day3/bin/LambdaSignature3.java +0 -3
- package/adventofcode/day3/bin/day3.cpp +0 -64
- package/adventofcode/day3/bin/day3.go +0 -55
- package/adventofcode/day3/bin/day3.js +0 -42
- package/adventofcode/day3/bin/day3.php +0 -41
- package/adventofcode/day3/bin/day3.scala +0 -52
- package/adventofcode/day3/bin/day3.swift +0 -43
- package/adventofcode/day3/bin/day3_part2.cpp +0 -216
- package/adventofcode/day3/bin/day3_part2.go +0 -188
- package/adventofcode/day3/bin/day3_part2.js +0 -123
- package/adventofcode/day3/bin/day3_part2.php +0 -135
- package/adventofcode/day3/bin/day3_part2.swift +0 -131
- package/adventofcode/day3/bin/day_three_part_two.java +0 -43
- package/adventofcode/day3/bin/day_two.java +0 -42
- package/adventofcode/day3/bin/operatorsOf.java +0 -14
- package/adventofcode/day3/bin/variant.hpp +0 -2416
- package/adventofcode/day3/compile.bat +0 -7
- package/adventofcode/day3/compile2.bat +0 -7
- package/adventofcode/day3/day3.clj +0 -42
- package/adventofcode/day3/day3_part2.clj +0 -112
- package/adventofcode/day4/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day4/bin/day4.cpp +0 -118
- package/adventofcode/day4/bin/day4.go +0 -75
- package/adventofcode/day4/bin/day4.js +0 -40
- package/adventofcode/day4/bin/day4.php +0 -52
- package/adventofcode/day4/bin/day4.scala +0 -47
- package/adventofcode/day4/bin/day4.swift +0 -56
- package/adventofcode/day4/bin/day4_part2.go +0 -129
- package/adventofcode/day4/bin/day4_part2.js +0 -72
- package/adventofcode/day4/bin/day_four.java +0 -41
- package/adventofcode/day4/bin/inputData.java +0 -7
- package/adventofcode/day4/bin/operatorsOf.java +0 -11
- package/adventofcode/day4/bin/variant.hpp +0 -2416
- package/adventofcode/day4/compile.bat +0 -7
- package/adventofcode/day4/compile2.bat +0 -7
- package/adventofcode/day4/day4.clj +0 -32
- package/adventofcode/day4/day4_part2.clj +0 -44
- package/adventofcode/day4/input.clj +0 -519
- package/adventofcode/day4/input.txt +0 -512
- package/bin/api.ts +0 -24471
- package/bin/compiler.ts +0 -24482
- package/bin/output.js +0 -23819
- package/compiler/ColorConsole.clj +0 -22
- package/compiler/ContextOperators.clj +0 -75
- package/compiler/FlowEnterVarDef.clj +0 -223
- package/compiler/InputFileSystem.clj +0 -276
- package/compiler/RangerDocs.clj +0 -7
- package/compiler/TFactory.clj +0 -146
- package/compiler/TFiles.clj +0 -23
- package/compiler/TFlow.clj +0 -39
- package/compiler/TNodeFactory.clj +0 -84
- package/compiler/TTypes.clj +0 -188
- package/compiler/VirtualCompiler.clj +0 -807
- package/compiler/bin/ng_Compiler.js +0 -23779
- package/compiler/commonmark_plugin.clj +0 -359
- package/compiler/feat2.bat +0 -2
- package/compiler/feats.bat +0 -9
- package/compiler/feature_tests.clj +0 -192
- package/compiler/index.js +0 -2
- package/compiler/issue_57.clj +0 -25
- package/compiler/makefile_plugin.clj +0 -135
- package/compiler/markdown_plugin.clj +0 -386
- package/compiler/maven_plugin.clj +0 -162
- package/compiler/ng_AndroidPageWriter.clj +0 -299
- package/compiler/ng_CodeNode.clj +0 -756
- package/compiler/ng_CodeNodeCompilerExtensions.clj +0 -839
- package/compiler/ng_Compiler.clj +0 -49
- package/compiler/ng_CompilerGeneric.clj +0 -260
- package/compiler/ng_CompilerOrig.clj +0 -854
- package/compiler/ng_DictNode.clj +0 -346
- package/compiler/ng_DictNode2.clj +0 -316
- package/compiler/ng_Execute.clj +0 -138
- package/compiler/ng_Execute1.clj +0 -129
- package/compiler/ng_FlowWork.clj +0 -3951
- package/compiler/ng_LiveCompiler.clj +0 -1109
- package/compiler/ng_RagnerJavaScriptClassWriter.clj +0 -402
- package/compiler/ng_RangerActiveOperators.clj +0 -86
- package/compiler/ng_RangerAppClassDesc.clj +0 -400
- package/compiler/ng_RangerAppEnums.clj +0 -86
- package/compiler/ng_RangerAppFunctionDesc.clj +0 -127
- package/compiler/ng_RangerAppMessages.clj +0 -15
- package/compiler/ng_RangerAppOperatorDesc.clj +0 -20
- package/compiler/ng_RangerAppParamDesc.clj +0 -388
- package/compiler/ng_RangerAppWriterContext.clj +0 -1793
- package/compiler/ng_RangerArgMatch.clj +0 -638
- package/compiler/ng_RangerCSharpClassWriter.clj +0 -484
- package/compiler/ng_RangerCppClassWriter.clj +0 -1023
- package/compiler/ng_RangerDocGenerator.clj +0 -305
- package/compiler/ng_RangerFlowParser.clj +0 -4992
- package/compiler/ng_RangerFlowParserOrig.clj +0 -4002
- package/compiler/ng_RangerGenericClassWriter.clj +0 -573
- package/compiler/ng_RangerGolangClassWriter.clj +0 -1766
- package/compiler/ng_RangerImmutableExtension.clj +0 -77
- package/compiler/ng_RangerJava7ClassWriter.clj +0 -961
- package/compiler/ng_RangerJavaScriptClassWriter.clj +0 -1040
- package/compiler/ng_RangerKotlinClassWriter.clj +0 -372
- package/compiler/ng_RangerLanguageWriters.clj +0 -14
- package/compiler/ng_RangerLispParser.clj +0 -873
- package/compiler/ng_RangerPHPClassWriter.clj +0 -643
- package/compiler/ng_RangerPlugin.clj +0 -41
- package/compiler/ng_RangerRangerClassWriter.clj +0 -357
- package/compiler/ng_RangerRustClassWriter.clj +0 -420
- package/compiler/ng_RangerScalaClassWriter.clj +0 -818
- package/compiler/ng_RangerSerializeClass.clj +0 -502
- package/compiler/ng_RangerServiceBuilder.clj +0 -63
- package/compiler/ng_RangerSwift3ClassWriter.clj +0 -809
- package/compiler/ng_RangerSwiftClassWriter.clj +0 -0
- package/compiler/ng_RangerTypeClass.clj +0 -45
- package/compiler/ng_SourceParser.clj +0 -241
- package/compiler/ng_SourceParser2.clj +0 -214
- package/compiler/ng_WebPageWriter.clj +0 -39
- package/compiler/ng_jsonParser.clj +0 -340
- package/compiler/ng_p_test.clj +0 -1711
- package/compiler/ng_parser.clj +0 -911
- package/compiler/ng_parser2.clj +0 -735
- package/compiler/ng_parser2_backup.clj +0 -1679
- package/compiler/ng_parser_backup.clj +0 -886
- package/compiler/ng_parser_ok.clj +0 -1718
- package/compiler/ng_parser_ok2.clj +0 -1717
- package/compiler/ng_parser_std_match.clj +0 -687
- package/compiler/ng_parser_std_match2.clj +0 -1012
- package/compiler/ng_parser_v2.clj +0 -1251
- package/compiler/ng_ui.clj +0 -403
- package/compiler/ng_ui_test.clj +0 -18
- package/compiler/ng_writer.clj +0 -338
- package/compiler/ng_xmlParser.clj +0 -472
- package/compiler/ng_xmlParser2.clj +0 -317
- package/compiler/ng_xmlParser3.clj +0 -251
- package/compiler/opdoc.bat +0 -4
- package/compiler/operators.md +0 -290
- package/compiler/p.bat +0 -4
- package/compiler/package.json +0 -10
- package/compiler/pcmd.bat +0 -4
- package/compiler/pcmd2.bat +0 -3
- package/compiler/plaintext_plugin.clj +0 -69
- package/compiler/plugin.bat +0 -19
- package/compiler/plugin2.bat +0 -4
- package/compiler/plugin_app.bat +0 -3
- package/compiler/plugin_apps.clj +0 -27
- package/compiler/plugins.bat +0 -10
- package/compiler/reveal_plugin.clj +0 -409
- package/compiler/simplePlugin.clj +0 -780
- package/compiler/t.bat +0 -3
- package/compiler/test_any.clj +0 -43
- package/compiler/test_call.clj +0 -141
- package/compiler/test_chain.clj +0 -79
- package/compiler/test_json.clj +0 -10
- package/compiler/test_lambda.clj +0 -153
- package/compiler/test_pcmd.clj +0 -32
- package/compiler/test_pcmd2.clj +0 -29
- package/compiler/test_plugin.clj +0 -237
- package/compiler/test_readfile.clj +0 -13
- package/compiler/test_reveal.clj +0 -19
- package/compiler/test_slides.clj +0 -312
- package/compiler/test_types.clj +0 -143
- package/compiler/test_types2.clj +0 -49
- package/compiler/test_types3.clj +0 -53
- package/compiler/test_var.clj +0 -40
- package/compiler/tonpm.bat +0 -14
- package/compiler/tonpm2.bat +0 -12
- package/compiler/ui_plugin.clj +0 -507
- package/compiler/ui_plugin2.clj +0 -427
- package/compiler/update-git.bat +0 -3
- package/compiler/vcomp.bat +0 -4
- package/compiler/viewbuilder_Android.clj +0 -176
- package/compiler/viewbuilder_Web.clj +0 -105
- package/dist/bin/api.js +0 -32422
- package/dist/bin/compiler.d.ts +0 -1638
- package/dist/bin/compiler.js +0 -32444
- package/examples/3D/bin/test_3d.js +0 -329
- package/examples/3D/test_3d.clj +0 -385
- package/examples/EVGColor/EVGColor.clj +0 -310
- package/examples/EVGColor/EVGColorContext.clj +0 -176
- package/examples/EVGColor/bin/EVGColor.js +0 -286
- package/examples/EVGColor/bin/minimized.js +0 -286
- package/examples/SVGPath/SVGPath.clj +0 -625
- package/examples/SVGPath/Vec2.clj +0 -103
- package/examples/SVGPath/bin/SVGPath.cpp +0 -887
- package/examples/SVGPath/bin/SVGPath.js +0 -682
- package/examples/SVGPath/bin/SVGPath.ts +0 -711
- package/examples/SVGPath/bin/minimized.js +0 -578
- package/examples/SVGPath/bin/variant.hpp +0 -2416
- package/examples/minification/Vec2.clj +0 -103
- package/examples/minification/bin/minified.js +0 -44
- package/examples/minification/bin/test.js +0 -117
- package/examples/minification/test.clj +0 -13
- package/fiddle/VirtualCompiler.js +0 -23495
- package/fiddle/browser_editor.js +0 -13240
- package/fiddle/compileEnv.js +0 -1
- package/fiddle/compileEnv.json +0 -1
- package/fiddle/lang_data.js +0 -1
- package/index.html +0 -18
- package/native/httpd/HttpTester.clj +0 -33
- package/native/httpd/RangerWebService.clj +0 -81
- package/operators.md +0 -290
- package/tsconfig.json +0 -29
- package/versions/cpp/compiler.cpp +0 -15032
- package/versions/es6/compiler.js +0 -12860
- package/versions/go/compiler.go +0 -21338
- package/versions/java/AfterCodeNode.java +0 -4
- package/versions/java/ClassJoinPoint.java +0 -6
- package/versions/java/CodeFile.java +0 -42
- package/versions/java/CodeFileSystem.java +0 -72
- package/versions/java/CodeNode.java +0 -807
- package/versions/java/CodeSlice.java +0 -13
- package/versions/java/CodeWriter.java +0 -185
- package/versions/java/ColorConsole.java +0 -8
- package/versions/java/CompilerInterface.java +0 -213
- package/versions/java/DictNode.java +0 -353
- package/versions/java/LiveCompiler.java +0 -772
- package/versions/java/NodeEvalState.java +0 -24
- package/versions/java/OpFindResult.java +0 -6
- package/versions/java/RangerAppArrayValue.java +0 -7
- package/versions/java/RangerAppClassDesc.java +0 -217
- package/versions/java/RangerAppEnum.java +0 -14
- package/versions/java/RangerAppFunctionDesc.java +0 -20
- package/versions/java/RangerAppHashValue.java +0 -11
- package/versions/java/RangerAppInterfaceImpl.java +0 -6
- package/versions/java/RangerAppMethodVariants.java +0 -6
- package/versions/java/RangerAppParamDesc.java +0 -321
- package/versions/java/RangerAppTodo.java +0 -6
- package/versions/java/RangerAppValue.java +0 -10
- package/versions/java/RangerAppWriterContext.java +0 -800
- package/versions/java/RangerArgMatch.java +0 -317
- package/versions/java/RangerBackReference.java +0 -7
- package/versions/java/RangerCSharpClassWriter.java +0 -287
- package/versions/java/RangerCompilerMessage.java +0 -9
- package/versions/java/RangerCppClassWriter.java +0 -725
- package/versions/java/RangerFlowParser.java +0 -2142
- package/versions/java/RangerGenericClassWriter.java +0 -367
- package/versions/java/RangerGolangClassWriter.java +0 -1379
- package/versions/java/RangerJava7ClassWriter.java +0 -652
- package/versions/java/RangerJavaScriptClassWriter.java +0 -305
- package/versions/java/RangerKotlinClassWriter.java +0 -380
- package/versions/java/RangerLispParser.java +0 -845
- package/versions/java/RangerNodeValue.java +0 -9
- package/versions/java/RangerPHPClassWriter.java +0 -527
- package/versions/java/RangerParamEventHandler.java +0 -6
- package/versions/java/RangerParamEventList.java +0 -5
- package/versions/java/RangerParamEventMap.java +0 -27
- package/versions/java/RangerRangerClassWriter.java +0 -268
- package/versions/java/RangerRefForce.java +0 -7
- package/versions/java/RangerScalaClassWriter.java +0 -365
- package/versions/java/RangerSerializeClass.java +0 -148
- package/versions/java/RangerSwift3ClassWriter.java +0 -548
- package/versions/java/RangerTypeClass.java +0 -17
- package/versions/java/SourceCode.java +0 -65
- package/versions/php/compiler.php +0 -13830
- package/versions/swift3/compiler.swift +0 -12542
- /package/{lib/ACEEditor.clj → dist/lib/ACEEditor.rgr} +0 -0
- /package/{lib/SQL.clj → dist/lib/SQL.rgr} +0 -0
- /package/{lib/ServiceLib.clj → dist/lib/ServiceLib.rgr} +0 -0
- /package/{lib/Time.clj → dist/lib/Time.rgr} +0 -0
- /package/{lib/TypedArrays.clj → dist/lib/TypedArrays.rgr} +0 -0
- /package/{lib/WebLib.clj → dist/lib/WebLib.rgr} +0 -0
- /package/{lib/WebServerLib.clj → dist/lib/WebServerLib.rgr} +0 -0
package/examples/3D/test_3d.clj
DELETED
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
Import "Timers.clj"
|
|
3
|
-
Import "Engine3D.clj"
|
|
4
|
-
|
|
5
|
-
class ObjMeta {
|
|
6
|
-
def name ""
|
|
7
|
-
def physics:PhysicsObject3D
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
operator type:void es6 {
|
|
11
|
-
fn log (item:Quaternion3D) ('console.log(' (e 1)')')
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
class test_3d {
|
|
15
|
-
|
|
16
|
-
static fn main () {
|
|
17
|
-
|
|
18
|
-
; NOTE: init requires currently HTML having the <canvas id="renderCanvas"></canvas>
|
|
19
|
-
def canvas (getMainCanvas 'renderCanvas')
|
|
20
|
-
def engine (createEngine3D canvas)
|
|
21
|
-
def scene (createScene engine)
|
|
22
|
-
|
|
23
|
-
listenToResize engine
|
|
24
|
-
|
|
25
|
-
def camera ( newCamera scene (vec 0 11 -25) 'cam1' )
|
|
26
|
-
setTarget camera (vec 0 0 0)
|
|
27
|
-
|
|
28
|
-
def loader (assetLoader scene)
|
|
29
|
-
def m ( textureLoader loader 'board' 'https://i.imgur.com/ghjDCqQ.png')
|
|
30
|
-
onReady m {
|
|
31
|
-
|
|
32
|
-
newHemisphericLight scene (vec 0 1 0) 'light1'
|
|
33
|
-
newDirectionalLight scene (vec -1 -1 -1) 'light2'
|
|
34
|
-
def s1 (newSphere scene 16.0 1.0 's')
|
|
35
|
-
def s2 (newSphere scene 16.0 1.0 's')
|
|
36
|
-
def hl_layer ( highlight scene 'hl1')
|
|
37
|
-
|
|
38
|
-
def dice (box scene 1.5 1.5 1.5 ([]
|
|
39
|
-
(vec 0.0 0.0 0.33 0.5)
|
|
40
|
-
(vec 0.33 0.0 0.66 0.5)
|
|
41
|
-
(vec 0.66 0.0 1.00 0.5)
|
|
42
|
-
(vec 0.0 0.5 0.33 1.0)
|
|
43
|
-
(vec 0.33 0.5 0.66 1.0)
|
|
44
|
-
(vec 0.66 0.5 1.00 1.0)
|
|
45
|
-
) 'b')
|
|
46
|
-
|
|
47
|
-
translate dice (vec -4 5 4)
|
|
48
|
-
setRotation dice (quat (vec -1.0 1.0 0.0) (M_PI * 0.6) )
|
|
49
|
-
def dData (new ObjMeta)
|
|
50
|
-
setData dice dData
|
|
51
|
-
dData.name = 'dice'
|
|
52
|
-
|
|
53
|
-
def points ([] (vec 0 -2 0) (vec 0 1 0))
|
|
54
|
-
def myTube (tube scene points {
|
|
55
|
-
if(i == 0 ) {
|
|
56
|
-
return 1.0
|
|
57
|
-
}
|
|
58
|
-
return 0.2
|
|
59
|
-
})
|
|
60
|
-
def head (newSphere scene 16.0 1.5 'head')
|
|
61
|
-
translate head (vec 0 1 0)
|
|
62
|
-
|
|
63
|
-
def merkit:[Object3D]
|
|
64
|
-
def nappula (merge ([] myTube head) )
|
|
65
|
-
translate nappula (vec 6 0 4)
|
|
66
|
-
def groundObj (box scene 30.0 0.5 30.0 'board')
|
|
67
|
-
translate groundObj (vec -1 -1 -1)
|
|
68
|
-
setData groundObj (new ObjMeta)
|
|
69
|
-
setData s1 (new ObjMeta)
|
|
70
|
-
setData s2 (new ObjMeta)
|
|
71
|
-
|
|
72
|
-
def hlMaterial (createMaterial scene 'red')
|
|
73
|
-
setDiffuse hlMaterial (color 1.0 0.3 0.4)
|
|
74
|
-
setSpecular hlMaterial (color 0.8 0.2 1.0)
|
|
75
|
-
setEmissive hlMaterial (color 0.8 0.2 0.2)
|
|
76
|
-
setAlpha hlMaterial 0.5
|
|
77
|
-
; setMaterial highligh hlMaterial
|
|
78
|
-
|
|
79
|
-
def orangeMaterial (createMaterial scene 'red')
|
|
80
|
-
setDiffuse orangeMaterial (color 1.0 1.0 0.4)
|
|
81
|
-
; setSpecular orangeMaterial (color 0.3 0.1 1.0)
|
|
82
|
-
|
|
83
|
-
def text2 (createTexture scene 'bump_normal.png')
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
def redMaterial (createMaterial scene 'red')
|
|
87
|
-
setDiffuse redMaterial (color 1.0 0.3 0.4)
|
|
88
|
-
setSpecular redMaterial (color 0.8 0.2 1.0)
|
|
89
|
-
setEmissive redMaterial (color 0.8 0.2 0.2)
|
|
90
|
-
setMaterial dice redMaterial
|
|
91
|
-
|
|
92
|
-
setMaterial nappula redMaterial
|
|
93
|
-
scale nappula (vec 0.3 0.3 0.3)
|
|
94
|
-
def n2 (clone nappula '')
|
|
95
|
-
translate n2 (vec 1 0 -7 )
|
|
96
|
-
def n3 (clone nappula '')
|
|
97
|
-
translate n3 (vec -4 0 3 )
|
|
98
|
-
|
|
99
|
-
def groundMaterial (createMaterial scene 'ground')
|
|
100
|
-
setDiffuse groundMaterial (color 0.2 0.3 0.4)
|
|
101
|
-
setSpecular groundMaterial (color 1.0 1.0 1.0)
|
|
102
|
-
def text (grassTexture scene (color 0.2 0.8. 0.2) (color 0.2 0.5. 0.2) 1024 )
|
|
103
|
-
vScale text -1.0
|
|
104
|
-
uScale text -1.0
|
|
105
|
-
setTexture groundMaterial text
|
|
106
|
-
|
|
107
|
-
def cardMaterial (createMaterial scene 'cardmat')
|
|
108
|
-
setDiffuse cardMaterial (color 0.2 0.3 0.4)
|
|
109
|
-
setSpecular cardMaterial (color 1.0 0.3 0.6)
|
|
110
|
-
def text (createTexture scene 'https://i.imgur.com/ghjDCqQ.png' )
|
|
111
|
-
vScale text -1.0
|
|
112
|
-
uScale text -1.0
|
|
113
|
-
setTexture cardMaterial text
|
|
114
|
-
|
|
115
|
-
def fancyMaterial (createMaterial scene 'ground')
|
|
116
|
-
setDiffuse fancyMaterial (color 0.80 0.41 0.28)
|
|
117
|
-
setSpecular fancyMaterial (color 1.0 1.0 1.0)
|
|
118
|
-
|
|
119
|
-
setMaterial s1 fancyMaterial
|
|
120
|
-
setMaterial s2 fancyMaterial
|
|
121
|
-
|
|
122
|
-
def diceMaterial (createMaterial scene 'dicemat')
|
|
123
|
-
; setDiffuse diceMaterial (color 0.2 0.3 0.4)
|
|
124
|
-
setSpecular diceMaterial (color 1.0 0.3 0.6)
|
|
125
|
-
def text (createTexture scene 'https://i.imgur.com/ghjDCqQ.png' )
|
|
126
|
-
vScale text -1.0
|
|
127
|
-
uScale text -1.0
|
|
128
|
-
setTexture diceMaterial text
|
|
129
|
-
setMaterial dice diceMaterial
|
|
130
|
-
|
|
131
|
-
translate s1 (vec 2 0 0 )
|
|
132
|
-
translate s2 (vec -4 0 -1 )
|
|
133
|
-
|
|
134
|
-
setMouseControl camera canvas
|
|
135
|
-
|
|
136
|
-
def zz -10.0
|
|
137
|
-
def time 0.0
|
|
138
|
-
def oPos (clone (getPosition s2))
|
|
139
|
-
|
|
140
|
-
def pickedObj:Object3D
|
|
141
|
-
def diceThrow false
|
|
142
|
-
def diceStabileCnt 0
|
|
143
|
-
|
|
144
|
-
onClick canvas {
|
|
145
|
-
print "Pointer : " + (getPointerX scene) + " , " + (getPointerY scene)
|
|
146
|
-
def pickRes (pick scene (getPointerX scene) (getPointerY scene))
|
|
147
|
-
def point (hitPoint pickRes)
|
|
148
|
-
if(!null? point) {
|
|
149
|
-
def p (unwrap point)
|
|
150
|
-
print "--> point was : " + (x p)
|
|
151
|
-
pickedObj = (unwrap (hitObject pickRes))
|
|
152
|
-
def obj (unwrap pickedObj)
|
|
153
|
-
while( (!null? (parent obj))) {
|
|
154
|
-
obj = (unwrap (parent obj))
|
|
155
|
-
}
|
|
156
|
-
pickedObj = obj
|
|
157
|
-
oPos = (clone (getPosition obj))
|
|
158
|
-
time = 0.0
|
|
159
|
-
def d (getData (unwrap pickedObj))
|
|
160
|
-
if(!null? d) {
|
|
161
|
-
case (unwrap d) str:string {
|
|
162
|
-
print str
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
def meta (getData obj)
|
|
166
|
-
if(!null? meta) {
|
|
167
|
-
case (unwrap meta) data:ObjMeta {
|
|
168
|
-
if(!null? data.physics) {
|
|
169
|
-
if( obj == dice ) {
|
|
170
|
-
diceThrow = true
|
|
171
|
-
diceStabileCnt = 10
|
|
172
|
-
}
|
|
173
|
-
impulse (unwrap data.physics) (vec 0 10 0) p
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
enablePhysics scene
|
|
182
|
-
|
|
183
|
-
def opt1 (physicsOptions)
|
|
184
|
-
mass opt1 0.0
|
|
185
|
-
restitution opt1 0.2
|
|
186
|
-
|
|
187
|
-
def opt2 (physicsOptions)
|
|
188
|
-
mass opt2 1.0
|
|
189
|
-
restitution opt2 0.7
|
|
190
|
-
friction opt2 0.3
|
|
191
|
-
|
|
192
|
-
def opt3 (physicsOptions)
|
|
193
|
-
mass opt3 0.8
|
|
194
|
-
restitution opt3 0.1
|
|
195
|
-
friction opt3 0.4
|
|
196
|
-
|
|
197
|
-
def initGrounds (fn:void (o:Object3D) {
|
|
198
|
-
setPhysics o ( physics scene o (physicsBox) opt1 )
|
|
199
|
-
setMaterial o groundMaterial
|
|
200
|
-
})
|
|
201
|
-
initGrounds( groundObj )
|
|
202
|
-
|
|
203
|
-
def applyPhysics (fn:void (obj:Object3D opt:PhysicsOptions3D type:PhysicsShape3D) {
|
|
204
|
-
def p ( physics scene obj type opt )
|
|
205
|
-
setPhysics obj p
|
|
206
|
-
def meta (getData obj)
|
|
207
|
-
if(null? meta) {
|
|
208
|
-
meta = (new ObjMeta)
|
|
209
|
-
setData obj (unwrap meta)
|
|
210
|
-
}
|
|
211
|
-
if(!null? meta) {
|
|
212
|
-
case (unwrap meta) data:ObjMeta {
|
|
213
|
-
data.physics = p
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
})
|
|
217
|
-
|
|
218
|
-
applyPhysics( s1 opt2 (physicsSphere))
|
|
219
|
-
applyPhysics( s2 opt2 (physicsSphere))
|
|
220
|
-
applyPhysics( dice opt2 (physicsBox))
|
|
221
|
-
|
|
222
|
-
applyPhysics( nappula opt2 (physicsBox))
|
|
223
|
-
applyPhysics( n2 opt2 (physicsBox))
|
|
224
|
-
applyPhysics( n3 opt2 (physicsBox))
|
|
225
|
-
|
|
226
|
-
def all_chips:[Object3D]
|
|
227
|
-
def luo_merkki (fn:void (x:double y:double z:double size:double) {
|
|
228
|
-
def merkki (tube scene ([] (vec 0.0 -0.1 0.0) (vec 0.0 0.1 0.0) ) {
|
|
229
|
-
return size * 1.0
|
|
230
|
-
})
|
|
231
|
-
translate merkki (vec x y z)
|
|
232
|
-
applyPhysics( merkki opt2 (physicsBox))
|
|
233
|
-
setMaterial merkki orangeMaterial
|
|
234
|
-
push all_chips merkki
|
|
235
|
-
})
|
|
236
|
-
|
|
237
|
-
luo_merkki( 3.0 3.0 3.0 1.0)
|
|
238
|
-
luo_merkki( 3.0 3.3 3.0 1.0)
|
|
239
|
-
luo_merkki( 3.0 3.6 3.0 1.0)
|
|
240
|
-
|
|
241
|
-
luo_merkki( -3.0 3.0 3.0 1.0)
|
|
242
|
-
luo_merkki( -3.0 3.3 3.0 1.0)
|
|
243
|
-
luo_merkki( -3.0 3.6 3.0 1.0)
|
|
244
|
-
|
|
245
|
-
def create_card (fn:void (x:double y:double z:double) {
|
|
246
|
-
def card (box scene 3.0 0.1 5.0 'card')
|
|
247
|
-
translate card (vec x z y)
|
|
248
|
-
setData card (new ObjMeta)
|
|
249
|
-
applyPhysics( card opt3 (physicsBox))
|
|
250
|
-
setMaterial card cardMaterial
|
|
251
|
-
setRotation card (quat (vec 1.0 1.0 1.0) (0.5 * (sin z)) )
|
|
252
|
-
})
|
|
253
|
-
|
|
254
|
-
def create_chips (fn:void (n:int) {
|
|
255
|
-
def cnt n
|
|
256
|
-
while( cnt > 0 ) {
|
|
257
|
-
def new_c (fn:void (cnt:int) {
|
|
258
|
-
setTimeout {
|
|
259
|
-
luo_merkki( 3.0 10.0 ( 3.0 + (0.1 * (to_double cnt) ) ) 1.0)
|
|
260
|
-
} 100*cnt )
|
|
261
|
-
})
|
|
262
|
-
new_c(cnt)
|
|
263
|
-
cnt = cnt - 1
|
|
264
|
-
}
|
|
265
|
-
})
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
def cnt 10
|
|
269
|
-
while( cnt > 0 ) {
|
|
270
|
-
def new_card (fn:void (cnt:int) {
|
|
271
|
-
setTimeout {
|
|
272
|
-
def rn (sin (to_double cnt ) * 0.1)
|
|
273
|
-
def x ( -4.3 + (to_double cnt ) * 0.3 )
|
|
274
|
-
def y ( -4.3 + rn )
|
|
275
|
-
create_card( x -6.3 11.0 + rn)
|
|
276
|
-
create_card( x -6.3 11.0 + rn)
|
|
277
|
-
} 100*cnt )
|
|
278
|
-
})
|
|
279
|
-
new_card(cnt)
|
|
280
|
-
cnt = cnt - 1
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
def rot 0.0
|
|
284
|
-
def direction 1.0
|
|
285
|
-
|
|
286
|
-
def last_i 0.0
|
|
287
|
-
def last_j 0.0
|
|
288
|
-
def last_k 0.0
|
|
289
|
-
|
|
290
|
-
def highlightCnt 0
|
|
291
|
-
|
|
292
|
-
renderLoop engine {
|
|
293
|
-
time = time + 0.01 * direction
|
|
294
|
-
if( diceStabileCnt > 0 ) {
|
|
295
|
-
def WM (getWorldMatrix dice)
|
|
296
|
-
def i (cell WM 0 1)
|
|
297
|
-
def j (cell WM 1 1)
|
|
298
|
-
def k (cell WM 2 1)
|
|
299
|
-
if( (near i last_i 0.01) && (near j last_j 0.01) && (near k last_k 0.01) ) {
|
|
300
|
-
diceStabileCnt = diceStabileCnt - 1
|
|
301
|
-
}
|
|
302
|
-
last_i = i
|
|
303
|
-
last_j = j
|
|
304
|
-
last_k = k
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
if( diceStabileCnt == 0 ) {
|
|
308
|
-
; nopan heiton suuruuden määritys...
|
|
309
|
-
def diffAmount 0.3
|
|
310
|
-
if diceThrow {
|
|
311
|
-
def getDiceValue (fn:int () {
|
|
312
|
-
if( (near 1.0 i diffAmount) && (near 0.0 j diffAmount) && (near 0.0 k diffAmount)) {
|
|
313
|
-
return 1
|
|
314
|
-
}
|
|
315
|
-
if( (near 0.0 i diffAmount) && (near 1.0 j diffAmount) && (near 0.0 k diffAmount)) {
|
|
316
|
-
return 5
|
|
317
|
-
}
|
|
318
|
-
if( (near 0.0 i diffAmount) && (near 0.0 j diffAmount) && (near 1.0 k diffAmount)) {
|
|
319
|
-
return 3
|
|
320
|
-
}
|
|
321
|
-
if( (near -1.0 i diffAmount) && (near 0.0 j diffAmount) && (near 0.0 k diffAmount)) {
|
|
322
|
-
return 6
|
|
323
|
-
}
|
|
324
|
-
if( (near 0.0 i diffAmount) && (near -1.0 j diffAmount) && (near 0.0 k diffAmount)) {
|
|
325
|
-
return 4
|
|
326
|
-
}
|
|
327
|
-
if( (near 0.0 i diffAmount) && (near 0.0 j diffAmount) && (near -1.0 k diffAmount)) {
|
|
328
|
-
return 2
|
|
329
|
-
}
|
|
330
|
-
return 0
|
|
331
|
-
})
|
|
332
|
-
def value (getDiceValue())
|
|
333
|
-
if( value > 0 && value < 6 ) {
|
|
334
|
-
create_chips( value )
|
|
335
|
-
switch value {
|
|
336
|
-
case 1 {
|
|
337
|
-
add hl_layer dice (color 0.0 0.80 0.0)
|
|
338
|
-
}
|
|
339
|
-
case 2 {
|
|
340
|
-
add hl_layer dice (color 0.4 0.80 0.0)
|
|
341
|
-
}
|
|
342
|
-
case 3 {
|
|
343
|
-
add hl_layer dice (color 0.4 0.40 0.9)
|
|
344
|
-
}
|
|
345
|
-
case 4 {
|
|
346
|
-
add hl_layer dice (color 0.9 0.40 0.9)
|
|
347
|
-
}
|
|
348
|
-
case 5 {
|
|
349
|
-
add hl_layer dice (color 0.9 0.90 0.4)
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
highlightCnt = 50
|
|
353
|
-
}
|
|
354
|
-
if( value == 6) {
|
|
355
|
-
add hl_layer dice (color 1.0 0.0 0.0)
|
|
356
|
-
highlightCnt = 100
|
|
357
|
-
forEach all_chips {
|
|
358
|
-
def meta (getData item)
|
|
359
|
-
if(!null? meta) {
|
|
360
|
-
case (unwrap meta) data:ObjMeta {
|
|
361
|
-
if(!null? data.physics) {
|
|
362
|
-
impulse (unwrap data.physics) (vec 0 30 0) ( (getAbsolutePosition item) + (vec 0.1 0.1 0.1))
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
}
|
|
369
|
-
diceThrow = false
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
}
|
|
374
|
-
if( highlightCnt > 0 ) {
|
|
375
|
-
highlightCnt = highlightCnt - 1
|
|
376
|
-
if( highlightCnt == 0) {
|
|
377
|
-
remove hl_layer dice
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
render scene
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
start loader
|
|
384
|
-
}
|
|
385
|
-
}
|
|
@@ -1,310 +0,0 @@
|
|
|
1
|
-
Import "EVGColorContext.clj"
|
|
2
|
-
|
|
3
|
-
class EVGColor {
|
|
4
|
-
|
|
5
|
-
def is_set:boolean true
|
|
6
|
-
def r:double 0.0
|
|
7
|
-
def g:double 0.0
|
|
8
|
-
def b:double 0.0
|
|
9
|
-
def a:double 1.0
|
|
10
|
-
|
|
11
|
-
sfn m@(main):void () {
|
|
12
|
-
def c (new EVGColor)
|
|
13
|
-
c.testFn()
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
fn testFn:void () {
|
|
17
|
-
def colors (new EVGColor)
|
|
18
|
-
def c (EVGColor.hslToRgb( 195.0 100.0 50.0))
|
|
19
|
-
print "RGB of 30 20 10 = " + c.r + "," + c.g + "," + c.b
|
|
20
|
-
|
|
21
|
-
def c (new EVGColor)
|
|
22
|
-
c.fromString("hsl( 195 100.20 50)")
|
|
23
|
-
print "parsed value = (" + (c.red()) + ", " + (c.green()) + ", " + (c.blue()) + " )"
|
|
24
|
-
c.fromString("hsl( 43 100 56)")
|
|
25
|
-
print "parsed value = (" + (c.red()) + ", " + (c.green()) + ", " + (c.blue()) + " )"
|
|
26
|
-
c.fromString("rgb( 43 100 56)")
|
|
27
|
-
print "parsed value = (" + (c.red()) + ", " + (c.green()) + ", " + (c.blue()) + " )"
|
|
28
|
-
c.fromString("rgba( 43 100 56 0.4)")
|
|
29
|
-
print "parsed value = (" + (c.red()) + ", " + (c.green()) + ", " + (c.blue()) + " " + (c.alpha()) + " )"
|
|
30
|
-
|
|
31
|
-
def ctx (new EVGColorContext)
|
|
32
|
-
def redCol (ctx.byName("red"))
|
|
33
|
-
print "Red color is " + (redCol.toCSSString())
|
|
34
|
-
def blueCol (ctx.byName("blue"))
|
|
35
|
-
print "Blue color is " + (blueCol.toCSSString())
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
sfn noColor:EVGColor () {
|
|
39
|
-
def c (new EVGColor)
|
|
40
|
-
c.is_set = false
|
|
41
|
-
return c
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
fn toCSSString:string () {
|
|
45
|
-
if (is_set == false) {
|
|
46
|
-
return "none"
|
|
47
|
-
}
|
|
48
|
-
if( a < 1.0) {
|
|
49
|
-
return ("rgba(" + (this.red()) + "," + (this.green()) + "," + (this.blue()) + ", " + (this.alpha()) + ")" )
|
|
50
|
-
}
|
|
51
|
-
return ("rgb(" + (this.red()) + "," + (this.green()) + "," + (this.blue()) + ")" )
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
fn alpha:double () {
|
|
55
|
-
if( a < 0.0 ) {
|
|
56
|
-
return 0.0
|
|
57
|
-
}
|
|
58
|
-
if ( a > 1.0 ) {
|
|
59
|
-
return 1.0
|
|
60
|
-
}
|
|
61
|
-
return a
|
|
62
|
-
}
|
|
63
|
-
fn red:int () {
|
|
64
|
-
if(r > 255.00) {
|
|
65
|
-
return 255
|
|
66
|
-
}
|
|
67
|
-
if(r < 0.0) {
|
|
68
|
-
return 0
|
|
69
|
-
}
|
|
70
|
-
return (to_int r)
|
|
71
|
-
}
|
|
72
|
-
fn green:int () {
|
|
73
|
-
if(g > 255.00) {
|
|
74
|
-
return 255
|
|
75
|
-
}
|
|
76
|
-
if(g < 0.0) {
|
|
77
|
-
return 0
|
|
78
|
-
}
|
|
79
|
-
return (to_int g)
|
|
80
|
-
}
|
|
81
|
-
fn blue:int () {
|
|
82
|
-
if(b > 255.00) {
|
|
83
|
-
return 255
|
|
84
|
-
}
|
|
85
|
-
if(b < 0.0) {
|
|
86
|
-
return 0
|
|
87
|
-
}
|
|
88
|
-
return (to_int b)
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
sfn hue2rgb:double ( p:double q:double tt:double) {
|
|
92
|
-
def t tt
|
|
93
|
-
if(t < 0.0) {
|
|
94
|
-
t = t + 1.0
|
|
95
|
-
}
|
|
96
|
-
if(t > 1.0) {
|
|
97
|
-
t = t - 1.0
|
|
98
|
-
}
|
|
99
|
-
if(t < (1.0/6.0)) {
|
|
100
|
-
return ( p + (q - p ) * 6.0 * t)
|
|
101
|
-
}
|
|
102
|
-
if(t < (1.0/2.0)) {
|
|
103
|
-
return q
|
|
104
|
-
}
|
|
105
|
-
if(t < (2.0/3.0)) {
|
|
106
|
-
return ( p + (q - p ) * (2.0 / 3.0 - t) * 6.0)
|
|
107
|
-
}
|
|
108
|
-
return p
|
|
109
|
-
}
|
|
110
|
-
sfn hslToRgb:EVGColor (hh:double ss:double ll:double) {
|
|
111
|
-
def r 0.0
|
|
112
|
-
def g 0.0
|
|
113
|
-
def b 0.0
|
|
114
|
-
|
|
115
|
-
def h (hh / 360.0)
|
|
116
|
-
def s (ss / 100.0)
|
|
117
|
-
def l (ll / 100.0)
|
|
118
|
-
if( s == 0.0) {
|
|
119
|
-
r = l
|
|
120
|
-
g = r
|
|
121
|
-
b = r
|
|
122
|
-
} {
|
|
123
|
-
def q (? ( l < 0.5 ) l (l + s - l * s))
|
|
124
|
-
def p ( 2.0 * l - q)
|
|
125
|
-
r = (EVGColor.hue2rgb( p q (h + 1.0/3.0)))
|
|
126
|
-
g = (EVGColor.hue2rgb( p q h))
|
|
127
|
-
b = (EVGColor.hue2rgb( p q (h - 1.0/3.0)))
|
|
128
|
-
}
|
|
129
|
-
def rv (new EVGColor )
|
|
130
|
-
rv.r = r * 255.00
|
|
131
|
-
rv.g = g * 255.00
|
|
132
|
-
rv.b = b * 255.00
|
|
133
|
-
return rv
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
fn copyFrom (col:EVGColor) {
|
|
137
|
-
r = col.r
|
|
138
|
-
g = col.g
|
|
139
|
-
b = col.b
|
|
140
|
-
a = col.a
|
|
141
|
-
is_set = col.is_set
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
fn fromString:void ( str:string ) {
|
|
145
|
-
|
|
146
|
-
def buff:charbuffer (to_charbuffer str)
|
|
147
|
-
def i:int 0
|
|
148
|
-
def last_number:double 0.0
|
|
149
|
-
def len (length buff)
|
|
150
|
-
|
|
151
|
-
def skipSpace (fn:void () {
|
|
152
|
-
while(i < len) {
|
|
153
|
-
def c (charAt buff i)
|
|
154
|
-
if( ( c <= 32) || ( c == (ccode ",")) ) {
|
|
155
|
-
i = i + 1
|
|
156
|
-
} {
|
|
157
|
-
break
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
})
|
|
161
|
-
def scanNumber (fn:boolean () {
|
|
162
|
-
def s:charbuffer buff
|
|
163
|
-
def fc:char (charAt s i)
|
|
164
|
-
def c:char fc
|
|
165
|
-
def sp:int 0
|
|
166
|
-
def ep:int 0
|
|
167
|
-
fc = (charAt s i)
|
|
168
|
-
if (((fc == 45) && (((charAt s (i + 1))) >= 46) && (((charAt s (i + 1))) <= 57)) || ((fc >= 48) && (fc <= 57))) {
|
|
169
|
-
sp = i
|
|
170
|
-
i = 1 + i
|
|
171
|
-
c = (charAt s i)
|
|
172
|
-
while ((i < len) && (((c >= 48) && (c <= 57)) || (c == ((ccode "."))) || ((i == sp) && ((c == ((ccode "+"))) || (c == ((ccode "-"))))))) {
|
|
173
|
-
i = 1 + i
|
|
174
|
-
if (i >= len) {
|
|
175
|
-
break
|
|
176
|
-
}
|
|
177
|
-
c = (charAt s i)
|
|
178
|
-
}
|
|
179
|
-
ep = i
|
|
180
|
-
last_number = (unwrap (str2double ((substring s sp ep))))
|
|
181
|
-
return true
|
|
182
|
-
}
|
|
183
|
-
return false
|
|
184
|
-
})
|
|
185
|
-
if(len > 4) {
|
|
186
|
-
if( ((ccode "r" ) == (charAt buff 0)) &&
|
|
187
|
-
((ccode "g" ) == (charAt buff 1)) &&
|
|
188
|
-
((ccode "b" ) == (charAt buff 2)) &&
|
|
189
|
-
((ccode "a" ) == (charAt buff 3)) &&
|
|
190
|
-
((ccode "(" ) == (charAt buff 4)) ) {
|
|
191
|
-
i = i + 5
|
|
192
|
-
skipSpace()
|
|
193
|
-
def h:double 0.0
|
|
194
|
-
def s:double 0.0
|
|
195
|
-
def l:double 0.0
|
|
196
|
-
def a_lpha 0.0
|
|
197
|
-
def cnt 0
|
|
198
|
-
if( scanNumber () ) {
|
|
199
|
-
h = last_number
|
|
200
|
-
cnt = cnt + 1
|
|
201
|
-
}
|
|
202
|
-
skipSpace()
|
|
203
|
-
if( scanNumber () ) {
|
|
204
|
-
s = last_number
|
|
205
|
-
cnt = cnt + 1
|
|
206
|
-
}
|
|
207
|
-
skipSpace()
|
|
208
|
-
if( scanNumber () ) {
|
|
209
|
-
l = last_number
|
|
210
|
-
cnt = cnt + 1
|
|
211
|
-
}
|
|
212
|
-
skipSpace()
|
|
213
|
-
if( scanNumber () ) {
|
|
214
|
-
a_lpha = last_number
|
|
215
|
-
cnt = cnt + 1
|
|
216
|
-
}
|
|
217
|
-
if ( cnt == 4 ) {
|
|
218
|
-
r = h
|
|
219
|
-
g = s
|
|
220
|
-
b = l
|
|
221
|
-
a = a_lpha
|
|
222
|
-
is_set = true
|
|
223
|
-
return
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
if( ((ccode "r" ) == (charAt buff 0)) &&
|
|
227
|
-
((ccode "g" ) == (charAt buff 1)) &&
|
|
228
|
-
((ccode "b" ) == (charAt buff 2)) &&
|
|
229
|
-
((ccode "(" ) == (charAt buff 3)) ) {
|
|
230
|
-
i = i + 4
|
|
231
|
-
skipSpace()
|
|
232
|
-
def h:double 0.0
|
|
233
|
-
def s:double 0.0
|
|
234
|
-
def l:double 0.0
|
|
235
|
-
def cnt 0
|
|
236
|
-
if( scanNumber () ) {
|
|
237
|
-
h = last_number
|
|
238
|
-
cnt = cnt + 1
|
|
239
|
-
}
|
|
240
|
-
skipSpace()
|
|
241
|
-
if( scanNumber () ) {
|
|
242
|
-
s = last_number
|
|
243
|
-
cnt = cnt + 1
|
|
244
|
-
}
|
|
245
|
-
skipSpace()
|
|
246
|
-
if( scanNumber () ) {
|
|
247
|
-
l = last_number
|
|
248
|
-
cnt = cnt + 1
|
|
249
|
-
}
|
|
250
|
-
if ( cnt == 3 ) {
|
|
251
|
-
r = h
|
|
252
|
-
g = s
|
|
253
|
-
b = l
|
|
254
|
-
a = 1.0
|
|
255
|
-
is_set = true
|
|
256
|
-
return
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
if( ((ccode "h" ) == (charAt buff 0)) &&
|
|
261
|
-
((ccode "s" ) == (charAt buff 1)) &&
|
|
262
|
-
((ccode "l" ) == (charAt buff 2)) &&
|
|
263
|
-
((ccode "(" ) == (charAt buff 3)) ) {
|
|
264
|
-
i = i + 4
|
|
265
|
-
skipSpace()
|
|
266
|
-
def h:double 0.0
|
|
267
|
-
def s:double 0.0
|
|
268
|
-
def l:double 0.0
|
|
269
|
-
def cnt 0
|
|
270
|
-
if( scanNumber () ) {
|
|
271
|
-
h = last_number
|
|
272
|
-
cnt = cnt + 1
|
|
273
|
-
}
|
|
274
|
-
skipSpace()
|
|
275
|
-
if( scanNumber () ) {
|
|
276
|
-
s = last_number
|
|
277
|
-
cnt = cnt + 1
|
|
278
|
-
}
|
|
279
|
-
skipSpace()
|
|
280
|
-
if( scanNumber () ) {
|
|
281
|
-
l = last_number
|
|
282
|
-
cnt = cnt + 1
|
|
283
|
-
}
|
|
284
|
-
if ( cnt == 3 ) {
|
|
285
|
-
def rr ( EVGColor.hslToRgb( h s l) )
|
|
286
|
-
this.copyFrom( rr )
|
|
287
|
-
is_set = true
|
|
288
|
-
return
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
class EVGColorStop {
|
|
296
|
-
def is_set false
|
|
297
|
-
def is_linear true
|
|
298
|
-
def x 0.0
|
|
299
|
-
def y 0.0
|
|
300
|
-
def percentage 0.0
|
|
301
|
-
def color:EVGColor (new EVGColor)
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
class EVGGradientColor {
|
|
305
|
-
def is_set false
|
|
306
|
-
def is_linear false
|
|
307
|
-
def degree 0.0
|
|
308
|
-
def stops:[EVGColorStop]
|
|
309
|
-
}
|
|
310
|
-
|