Revised approach involves creating a helper function within ShapeFactory to aid
in devising the ShapeType to be used by an ShapeEntityItem for collision. The
ShapeFactory is currently doing this for creating the actual Bullet Library
collision shapes.
ShapeEntityItem overrides its virtually inherited computeShapeInfo which
in turn calls the new ShapeFactory helper function.
ShapeEntityItem has a new memvar _collisionShapeType to cache its actual
ShapeType used by the physics system. This memvar is returned via the getShapeType
accessor which is expected to return an object's ShapeType.
Note(s):
This is similar to the original approach save translation between entity::Shape and ShapeType
isn't tied to the EntityItemProperties shapeTypeNames or shapeType. This approach more
directly solves the issue of getting the actual ShapeType used by the time it's needed
to determine the bullet collision object type created when initializing the physic information.
Translation of the ShapeEntityItem's entity::Shape to its ShapeType is handled by
ShapeFactory which handles creating the bullet collision objects when setting up
physics on the ShapeEntityItems.
Known Issue(s):
This doesn't compile. It appears that the Entity Library needs to know about
the Physics Library. The naive attempt at providing that link failed to resolve
all compilation issues.
Current Error:
C1083: Cannot open include file: btBulletDynamicsCommon.h:
No such file or directory (C:\projects\cusack\libraries\entities\src\ShapeEntityItem.cpp)
C:\projects\cusack\libraries\physics\src\ShapeFactory.h 15 1 entities
modified: libraries/entities-renderer/src/RenderableShapeEntityItem.cpp
modified: libraries/entities/CMakeLists.txt
modified: libraries/entities/src/ShapeEntityItem.cpp
modified: libraries/entities/src/ShapeEntityItem.h
modified: libraries/physics/src/ShapeFactory.cpp
modified: libraries/physics/src/ShapeFactory.h
modified: libraries/physics/src/ShapeInfo.cpp
modified: scripts/developer/tests/basicEntityTest/entitySpawner.js
new file: scripts/developer/tests/basicEntityTest/shapeSpawner.js
Prior to and after addressing Worklist Item #21420, it was observed that the
tool bar buttons popping in and out during load. Taking a while to become visible.
Ran JSHint on the edit.js script to see if something stood out.
Testing with the various lint fixes the odd loading behavior wasn't observed locally any longer.
Pushing this up for testing. This may be what @CainFoool was seeing regarding the create button
not appearing when testing a different PR as at times it took quite some time for the buttons
to load properly.
JSHint Issues Addressed:
* Resolved instance of \"Use the function form of \"use strict\"\"
** Moved use strict declaration to the file function level.
** This fixed various unknown or not defined errors.
* Resolved instances of \"\'const\' is available in ES6 (use 'esversion: 6') or Mozilla JS extensions (use moz).\"
** Switched const to var to avoid using keywords respected by only a subset of browsers.
* Resolved various multiply defined vars.
** Notable callouts being position var and properties var.
** This should fix issues where the same var was being used though the intent of use may have varied.
* Resolved instances of missing semi-colons
PreFix: 51 JSHint issues detected
PostFix: 0 JSHint issues detected.
Changes to be committed:
modified: scripts/system/edit.js
* Adds a local message/event: "Toolbar-DomainChanged"
** This message is sent by the application via its registered domain handlers:
*** hostnameChanged
*** connectedToDomain
*** disconnectedFromDomain
* edit.js subscribes to the "Toolbar-DomainChanged" event and updates the Create
button icon as long as there's a valid known valid create button.
Item Ticket Link: https://worklist.net/21420
Changes to be committed:
modified: interface/src/Application.cpp
modified: scripts/system/edit.js
* The create button icon is set to its disabled resource when the user
enters a domain where they have _neither_ Rez or TempRez permissions.
** If the user has either of the Rez permission levels then the normal edit-i.svg
icon is used and the user is able to create items as before.
* When the user clicks the button in this state, the INSUFFICIENT_PERMISSIONS_ERROR_MSG
is shown and creation menu is not shown.
* The disabled icon, edit-disabled.svg, is based on the edit-i.svg and is set to 33% opacity.
Item Ticket Link: https://worklist.net/21420
Changes to be committed:
new file: interface/resources/icons/tablet-icons/edit-disabled.svg
modified: scripts/system/edit.js