mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 15:48:21 +00:00
Fix return value for some detection functions.
When the index is good, on non-touch functions: - llDetectedTouchFace returns -1. - llDetectedTouchST and llDetectedTouchUV return TOUCH_INVALID_TEXCOORD. We were returning 0 and ZERO_VECTOR respectively.
This commit is contained in:
parent
62eebb8bef
commit
b97b2a78e8
2 changed files with 8 additions and 4 deletions
|
@ -74,6 +74,7 @@ b64_re = re.compile(ur'^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2,3})?')
|
||||||
ZERO_VECTOR = Vector((0.0, 0.0, 0.0))
|
ZERO_VECTOR = Vector((0.0, 0.0, 0.0))
|
||||||
ZERO_ROTATION = Quaternion((0.0, 0.0, 0.0, 1.0))
|
ZERO_ROTATION = Quaternion((0.0, 0.0, 0.0, 1.0))
|
||||||
NULL_KEY = u'00000000-0000-0000-0000-000000000000'
|
NULL_KEY = u'00000000-0000-0000-0000-000000000000'
|
||||||
|
TOUCH_INVALID_TEXCOORD = Vector((-1.0, -1.0, 0.0))
|
||||||
|
|
||||||
Infinity = float('inf')
|
Infinity = float('inf')
|
||||||
Indet = Infinity * 0
|
Indet = Infinity * 0
|
||||||
|
|
|
@ -19,7 +19,8 @@
|
||||||
|
|
||||||
from lslcommon import Key, Vector #, Quaternion
|
from lslcommon import Key, Vector #, Quaternion
|
||||||
from lslbasefuncs import ELSLCantCompute, isinteger, iskey, islist, \
|
from lslbasefuncs import ELSLCantCompute, isinteger, iskey, islist, \
|
||||||
isvector, isstring, NULL_KEY, ZERO_VECTOR, ZERO_ROTATION, cond
|
isvector, isstring, NULL_KEY, ZERO_VECTOR, ZERO_ROTATION, \
|
||||||
|
TOUCH_INVALID_TEXCOORD, cond
|
||||||
#isfloat, isrotation
|
#isfloat, isrotation
|
||||||
|
|
||||||
TouchEvents = ('touch', 'touch_start', 'touch_end')
|
TouchEvents = ('touch', 'touch_start', 'touch_end')
|
||||||
|
@ -101,7 +102,7 @@ def llDetectedTouchFace(idx, event=None):
|
||||||
assert isinteger(idx)
|
assert isinteger(idx)
|
||||||
if 0 <= idx <= 15 and (event in TouchEvents or event is None):
|
if 0 <= idx <= 15 and (event in TouchEvents or event is None):
|
||||||
raise ELSLCantCompute
|
raise ELSLCantCompute
|
||||||
return 0
|
return -1 if event in DetectionEvents and 0 <= idx <= 15 else 0
|
||||||
|
|
||||||
def llDetectedTouchNormal(idx, event=None):
|
def llDetectedTouchNormal(idx, event=None):
|
||||||
assert isinteger(idx)
|
assert isinteger(idx)
|
||||||
|
@ -119,13 +120,15 @@ def llDetectedTouchST(idx, event=None):
|
||||||
assert isinteger(idx)
|
assert isinteger(idx)
|
||||||
if 0 <= idx <= 15 and (event in TouchEvents or event is None):
|
if 0 <= idx <= 15 and (event in TouchEvents or event is None):
|
||||||
raise ELSLCantCompute
|
raise ELSLCantCompute
|
||||||
return ZERO_VECTOR
|
return TOUCH_INVALID_TEXCOORD if event in DetectionEvents \
|
||||||
|
and 0 <= idx <= 15 else ZERO_VECTOR
|
||||||
|
|
||||||
def llDetectedTouchUV(idx, event=None):
|
def llDetectedTouchUV(idx, event=None):
|
||||||
assert isinteger(idx)
|
assert isinteger(idx)
|
||||||
if 0 <= idx <= 15 and (event in TouchEvents or event is None):
|
if 0 <= idx <= 15 and (event in TouchEvents or event is None):
|
||||||
raise ELSLCantCompute
|
raise ELSLCantCompute
|
||||||
return ZERO_VECTOR
|
return TOUCH_INVALID_TEXCOORD if event in DetectionEvents \
|
||||||
|
and 0 <= idx <= 15 else ZERO_VECTOR
|
||||||
|
|
||||||
def llDetectedType(idx, event=None):
|
def llDetectedType(idx, event=None):
|
||||||
assert isinteger(idx)
|
assert isinteger(idx)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue