rubysketch 0.1.5 → 0.2.0
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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/rubysketch/glsl.rb +2 -5
- data/lib/rubysketch/processing.rb +89 -73
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c2d5e6b27dba3d165c946db3fc7cbe09630be01a5dd86238433e6e3b7126138
|
4
|
+
data.tar.gz: b0565c883e6821f133d64428507fc7d39eaf06f5a11fb634a1a205b25856d77b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63553c43e5fd2433e7b395aae2b57415b9cc7091a8cbe07934fddede1569383161e73822f6614daa479dde3ef1606d33c545b067ceefbd66ce0c7133149f0ac1
|
7
|
+
data.tar.gz: be2980a7909244174e52f619ec1e80a77a85483501837e59a5ddea84652792b3718402d1ca9a1201058847770dca9a34e315fbdf58ec2033794bd6438100a12e
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/rubysketch/glsl.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module RubySketch
|
2
2
|
|
3
3
|
|
4
|
-
# Processing compatible API
|
4
|
+
# Processing compatible API
|
5
5
|
#
|
6
|
-
class
|
6
|
+
class Processing
|
7
7
|
|
8
8
|
include Math
|
9
9
|
|
@@ -43,11 +43,12 @@ module RubySketch
|
|
43
43
|
|
44
44
|
# @private
|
45
45
|
def initialize ()
|
46
|
+
@matrixStack__ = []
|
47
|
+
@styleStack__ = []
|
46
48
|
@frameCount__ = 0
|
47
49
|
@hsbColor__ = false
|
48
50
|
@colorMaxes__ = [1.0] * 4
|
49
51
|
@angleScale__ = 1.0
|
50
|
-
@styleStack = []
|
51
52
|
@mouseX__ =
|
52
53
|
@mouseY__ =
|
53
54
|
@mousePrevX__ =
|
@@ -296,9 +297,14 @@ module RubySketch
|
|
296
297
|
def setupDrawBlock__ ()
|
297
298
|
@window__.draw = proc do |e, painter|
|
298
299
|
@painter__ = painter
|
299
|
-
|
300
|
-
@
|
301
|
-
|
300
|
+
@matrixStack__.clear
|
301
|
+
@styleStack__.clear
|
302
|
+
begin
|
303
|
+
push
|
304
|
+
@drawBlock__.call e if @drawBlock__
|
305
|
+
ensure
|
306
|
+
pop
|
307
|
+
end
|
302
308
|
@frameCount__ += 1
|
303
309
|
updateMousePrevPos__
|
304
310
|
end
|
@@ -919,7 +925,7 @@ module RubySketch
|
|
919
925
|
# @return [nil] nil
|
920
926
|
#
|
921
927
|
def pushMatrix ()
|
922
|
-
@painter__.
|
928
|
+
@matrixStack__.push @painter__.matrix
|
923
929
|
nil
|
924
930
|
end
|
925
931
|
|
@@ -928,7 +934,8 @@ module RubySketch
|
|
928
934
|
# @return [nil] nil
|
929
935
|
#
|
930
936
|
def popMatrix ()
|
931
|
-
@
|
937
|
+
raise "Matrix stack underflow" if @matrixStack__.empty?
|
938
|
+
@painter__.matrix = @matrixStack__.pop
|
932
939
|
nil
|
933
940
|
end
|
934
941
|
|
@@ -946,8 +953,11 @@ module RubySketch
|
|
946
953
|
# @return [nil] nil
|
947
954
|
#
|
948
955
|
def pushStyle ()
|
949
|
-
@
|
950
|
-
|
956
|
+
@styleStack__.push [
|
957
|
+
@painter__.fill,
|
958
|
+
@painter__.stroke,
|
959
|
+
@painter__.stroke_width,
|
960
|
+
@painter__.font,
|
951
961
|
@hsbColor__,
|
952
962
|
@colorMaxes__,
|
953
963
|
@angleScale__,
|
@@ -962,9 +972,16 @@ module RubySketch
|
|
962
972
|
# @return [nil] nil
|
963
973
|
#
|
964
974
|
def popStyle ()
|
965
|
-
@
|
966
|
-
@
|
967
|
-
|
975
|
+
raise "Style stack underflow" if @styleStack__.empty?
|
976
|
+
@painter__.fill,
|
977
|
+
@painter__.stroke,
|
978
|
+
@painter__.stroke_width,
|
979
|
+
@painter__.font,
|
980
|
+
@hsbColor__,
|
981
|
+
@colorMaxes__,
|
982
|
+
@angleScale__,
|
983
|
+
@rectMode__,
|
984
|
+
@ellipseMode__ = @styleStack__.pop
|
968
985
|
nil
|
969
986
|
end
|
970
987
|
|
@@ -1000,75 +1017,74 @@ module RubySketch
|
|
1000
1017
|
Rays.perlin(x, y) / 2.0 + 1.0
|
1001
1018
|
end
|
1002
1019
|
|
1003
|
-
|
1020
|
+
end# Processing
|
1021
|
+
|
1022
|
+
|
1023
|
+
# Font object.
|
1024
|
+
#
|
1025
|
+
class Processing::Font
|
1026
|
+
|
1027
|
+
# Initialize font.
|
1028
|
+
#
|
1029
|
+
# @private
|
1004
1030
|
#
|
1005
|
-
|
1031
|
+
def initialize (font)
|
1032
|
+
@font = font
|
1033
|
+
end
|
1006
1034
|
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1035
|
+
# Returns bounding box.
|
1036
|
+
#
|
1037
|
+
# @overload textBounds(str)
|
1038
|
+
# @overload textBounds(str, x, y)
|
1039
|
+
# @overload textBounds(str, x, y, fontSize)
|
1040
|
+
#
|
1041
|
+
# @param str [String] text to calculate bounding box
|
1042
|
+
# @param x [Numeric] horizontal position of bounding box
|
1043
|
+
# @param y [Numeric] vertical position of bounding box
|
1044
|
+
# @param fontSize [Numeric] font size
|
1045
|
+
#
|
1046
|
+
# @return [TextBounds] bounding box for text
|
1047
|
+
#
|
1048
|
+
def textBounds (str, x = 0, y = 0, fontSize = nil)
|
1049
|
+
f = fontSize ? Rays::Font.new(@font.name, fontSize) : @font
|
1050
|
+
TextBounds.new x, y, x + f.width(str), y + f.height
|
1051
|
+
end
|
1014
1052
|
|
1015
|
-
|
1016
|
-
#
|
1017
|
-
# @overload textBounds(str)
|
1018
|
-
# @overload textBounds(str, x, y)
|
1019
|
-
# @overload textBounds(str, x, y, fontSize)
|
1020
|
-
#
|
1021
|
-
# @param str [String] text to calculate bounding box
|
1022
|
-
# @param x [Numeric] horizontal position of bounding box
|
1023
|
-
# @param y [Numeric] vertical position of bounding box
|
1024
|
-
# @param fontSize [Numeric] font size
|
1025
|
-
#
|
1026
|
-
# @return [TextBounds] bounding box for text
|
1027
|
-
#
|
1028
|
-
def textBounds (str, x = 0, y = 0, fontSize = nil)
|
1029
|
-
f = fontSize ? Rays::Font.new(@font.name, fontSize) : @font
|
1030
|
-
TextBounds.new x, y, x + f.width(str), y + f.height
|
1031
|
-
end
|
1053
|
+
end# Processing::Font
|
1032
1054
|
|
1033
|
-
# Bounding box for text.
|
1034
|
-
#
|
1035
|
-
class TextBounds
|
1036
|
-
|
1037
|
-
# Horizontal position
|
1038
|
-
#
|
1039
|
-
attr_reader :x
|
1040
|
-
|
1041
|
-
# Vertical position
|
1042
|
-
#
|
1043
|
-
attr_reader :y
|
1044
|
-
|
1045
|
-
# Width of bounding box
|
1046
|
-
#
|
1047
|
-
attr_reader :w
|
1048
|
-
|
1049
|
-
# Height of bounding box
|
1050
|
-
#
|
1051
|
-
attr_reader :h
|
1052
|
-
|
1053
|
-
# Initialize bouding box.
|
1054
|
-
#
|
1055
|
-
# @param x [Numeric] horizontal position
|
1056
|
-
# @param y [Numeric] vertical position
|
1057
|
-
# @param w [Numeric] width of bounding box
|
1058
|
-
# @param h [Numeric] height of bounding box
|
1059
|
-
#
|
1060
|
-
def initialize (x, y, w, h)
|
1061
|
-
@x, @y, @w, @h = x, y, w, h
|
1062
|
-
end
|
1063
1055
|
|
1064
|
-
|
1056
|
+
# Bounding box for text.
|
1057
|
+
#
|
1058
|
+
class Processing::TextBounds
|
1059
|
+
|
1060
|
+
# Horizontal position
|
1061
|
+
#
|
1062
|
+
attr_reader :x
|
1063
|
+
|
1064
|
+
# Vertical position
|
1065
|
+
#
|
1066
|
+
attr_reader :y
|
1065
1067
|
|
1066
|
-
|
1068
|
+
# Width of bounding box
|
1069
|
+
#
|
1070
|
+
attr_reader :w
|
1067
1071
|
|
1068
|
-
|
1072
|
+
# Height of bounding box
|
1073
|
+
#
|
1074
|
+
attr_reader :h
|
1069
1075
|
|
1076
|
+
# Initialize bouding box.
|
1077
|
+
#
|
1078
|
+
# @param x [Numeric] horizontal position
|
1079
|
+
# @param y [Numeric] vertical position
|
1080
|
+
# @param w [Numeric] width of bounding box
|
1081
|
+
# @param h [Numeric] height of bounding box
|
1082
|
+
#
|
1083
|
+
def initialize (x, y, w, h)
|
1084
|
+
@x, @y, @w, @h = x, y, w, h
|
1085
|
+
end
|
1070
1086
|
|
1071
|
-
Processing
|
1087
|
+
end# Processing::TextBounds
|
1072
1088
|
|
1073
1089
|
|
1074
1090
|
end# RubySketch
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysketch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yard
|