This repository has been archived by the owner on Jul 20, 2020. It is now read-only.
Updating for compatibility with three@>=0.80.0 #126
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR moves toward compatibility with react@>=0.80.0, though some issues still remain. The main problem I'm running into is that for some reason prop type validation fails whenever THREE entities are passed as props (e.g. passing a THREE.Vector3 for position). Despite spending a fair amount of time trying to follow the exact sequence of function calls involved in prop validation, I'm still unable to locate the source of the failure.
If I understand correctly, THREE entities are validated by looking at the name of the constructor (for example, if we have
var v = new THREE.Vector3()
, thenv.constructor.name === 'Vector3'
). But this appears to be entirely consistent with three@>=0.80.0, leading to very strange validation error messages likeFailed prop type: Invalid prop 'position' of type 'Vector3' supplied to 'perspectiveCamera', expected instance of 'Vector3'.
Finally, I've added an implementation of THREE.HemisphereLight, though no tests have been written for it yet.