Skip to content

Current XRRay construction semantics incorrect #84

@Manishearth

Description

@Manishearth

(Previously #83)

Currently the XRRay vector constructor is specified as

 [Constructor(optional DOMPointInit origin, optional DOMPointInit direction)]

however, this is no longer allowed by the current WebIDL spec, it needs to be

   constructor(optional DOMPointInit origin = {}, optional DOMPointInit direction = {}); 

(whatwg/webidl#750 forces us to default to {})

Given that whatwg/webidl#750 forces optional dictionary arguments to specify a default, we can no longer distinguish between "direction was not specified" and "direction was specified as {0, 0, 0, 1}".

Unfortunately, {0, 0, 0, 1} is not a valid direction value! The w coordinate should be zero; and ideally we should throw for nonzero w (which is what Chrome does, despite being unspecced). But we can't tell the difference between "direction unspecified" and "direction is {0, 0, 0, 1}", so this would end up throwing for new XRRay({...}) with an unspecified direction.

We'd like to default it to the -Z axis instead. We should use a new dictionary here. We should also potentially handle the w coordinate in origin instead of ignoring it.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions