Class: Bayonetta::Tangents
Instance Method Summary
collapse
#[], #[]=
Methods inherited from UByteList
#__convert, #__dump, #__load, inherited, #initialize, is_bayo2?
Instance Method Details
#clamp(v, max, min) ⇒ Object
130
131
132
133
134
135
136
137
|
# File 'lib/bayonetta/wmb.rb', line 130
def clamp(v, max, min)
if v > max
v = max
elsif v < min
v = min
end
v
end
|
#normalize(fx, fy, fz) ⇒ Object
179
180
181
182
183
|
# File 'lib/bayonetta/wmb.rb', line 179
def normalize(fx, fy, fz)
nrm = Math::sqrt(fx*fx+fy*fy+fz*fz)
return [0.0, 0.0, 0.0] if nrm == 0.0
[fx/nrm, fy/nrm, fz/nrm]
end
|
#s ⇒ Object
151
152
153
|
# File 'lib/bayonetta/wmb.rb', line 151
def s
(((@data >> 24) & 0xff) -127.0)/127.0
end
|
#s=(v) ⇒ Object
173
174
175
176
177
|
# File 'lib/bayonetta/wmb.rb', line 173
def s=(v)
v2 = clamp((v*127.0+127.0).round, 255, 0)
@data = (@data & 0x00ffffff) | (v2 << 24)
v
end
|
#set(x, y, z, s = nil) ⇒ Object
185
186
187
188
189
190
191
192
|
# File 'lib/bayonetta/wmb.rb', line 185
def set(x, y, z, s = nil)
x, y, z = normalize(x, y, z)
self.x = x
self.y = y
self.z = z
self.s = s if s
self
end
|
#to_a ⇒ Object
194
195
196
|
# File 'lib/bayonetta/wmb.rb', line 194
def to_a
[x, y, z, s]
end
|
#x ⇒ Object
139
140
141
|
# File 'lib/bayonetta/wmb.rb', line 139
def x
((@data & 0xff) - 127.0)/127.0
end
|
#x=(v) ⇒ Object
155
156
157
158
159
|
# File 'lib/bayonetta/wmb.rb', line 155
def x=(v)
v2 = clamp((v*127.0+127.0).round, 255, 0)
@data = (@data & 0xffffff00) | v2
v
end
|
#y ⇒ Object
143
144
145
|
# File 'lib/bayonetta/wmb.rb', line 143
def y
(((@data >> 8) & 0xff) - 127.0)/127.0
end
|
#y=(v) ⇒ Object
161
162
163
164
165
|
# File 'lib/bayonetta/wmb.rb', line 161
def y=(v)
v2 = clamp((v*127.0+127.0).round, 255, 0)
@data = (@data & 0xffff00ff) | (v2 << 8)
v
end
|
#z ⇒ Object
147
148
149
|
# File 'lib/bayonetta/wmb.rb', line 147
def z
(((@data >> 16) & 0xff) -127.0)/127.0
end
|
#z=(v) ⇒ Object
167
168
169
170
171
|
# File 'lib/bayonetta/wmb.rb', line 167
def z=(v)
v2 = clamp((v*127.0+127.0).round, 255, 0)
@data = (@data & 0xff00ffff) | (v2 << 16)
v
end
|