overte/tests
LaShonda Hopper 5b50b362f1 [WL21389] WL21389 PR2: Representation of collision shapes need updating (details below).
This commit adds support for the polyhedrons and polygons sans
Torus and Quad which aren't currently supported within GeometryCache.

* Moves GeometryCache::_shapes from public to private scope
    * Nothing aside from the class should be directly altering this, only querying
    * Updated instances of direct referencing which looks to have been limited to prior
      testing of instancing and shapes.
* Adds an accessor function for ShapeData to GeometryCache
* Consolidates point list generation to helper function
    * GeometryCache::computeSimpleHullPointListForShape
* Moves GeometryCache::Shape to entity::Shape mapping to GeometryCache from
  RenderableShapeEntityItem
    * Adds conversion accessor to GeometryCache, GeometryCache::Shape getShapeForEntityShape
* Sets ShapeEntityItem::ShapeInfoCalculator callback committed earlier.
    * This helps circumvent the issue with library inclusion.  entity-render knows about
      entity; however, entity doesn't know about entity-renderer; however, GeometryCache
      data is needed within entity::ShapeEntityItem to compose the ShapeInfo point list data.
    * This callback is set up within Application::init of the Interface as it knows about
      both halves of the equation, and the callback needs to be setup prior to any entities
      collision data getting generated.
* Removes _type reset within ShapeInfo::setPointCollection
    * This should avoid any issues due to subversively setting the type or
      incorrectly setting the type as a tangential operation.
        * Audited instances of ShapeInfo::setPointCollection and all seemed to be
          calling the function immediately after having set the type via
          ShapeInfo::setParams
* Adds new ShapeType: SHAPE_TYPE_CIRCLE
    * This type is reserved for the circle which is now treated as a special
      type of Cylinder_Y with regard to collision as opposed to a simple hull.
    * Fixes the issue where jumping on a circle, at times, would
      result in the avatar sliding off towards an edge as if atop a
      squished cone.
* Also updates ShapeInfo::getType() to return ShapeType as opposed to int
    * Auditing calls showed that majority of places were comparing against ShapeType
    * ShapeType::_type is a ShapeType so returning the type explicitly
      is more consistent.
        * ShapeInfo file houses ShapeType enum so any file aware of ShapeInfo is aware of
          ShapeType enumeration.
* entity::Quad defaults to SHAPE_TYPE_ELLIPSOID
    * Like entity::Shape::Torus, entity::Shape::Quad is currently unsupported within
      GeometryCache::buildShapes.
    * Also it appears that a Quad shape can't be created within world via the creation menu.
        * There's no explicit option at present to create one.
        * Trying subvert the Cube/Box creation option to generate one results in an enforced
          stubby box as opposed to a quad.
    * Given the aforementioned points, entity::Shape::Quad will default to
      SHAPE_TYPE_ELLIPSOID as opposed to SHAPE_TYPE_BOX.
        * Added Todo regarding the shape being unsupported along with a notation to create
          a special ShapeType, SHAPE_TYPE_QUAD, for it should it be added in the future.
* Adds some comments and has some minor clean up.

Reviewed-by: Leander Hasty <leander@1stplayable.com>

Changes Committed:
	modified:   interface/src/Application.cpp
	modified:   interface/src/Util.cpp
	modified:   interface/src/Util.h
	modified:   libraries/entities-renderer/src/RenderableShapeEntityItem.cpp
	modified:   libraries/entities/src/ShapeEntityItem.cpp
	modified:   libraries/entities/src/ShapeEntityItem.h
	modified:   libraries/physics/src/ShapeFactory.cpp
	modified:   libraries/render-utils/src/GeometryCache.cpp
	modified:   libraries/render-utils/src/GeometryCache.h
	modified:   libraries/shared/src/ShapeInfo.cpp
	modified:   libraries/shared/src/ShapeInfo.h
	modified:   tests/gpu-test/src/TestInstancedShapes.cpp
2017-10-24 14:16:17 -04:00
..
animation Model has a Rig rather than a RigPointer 2017-05-19 13:24:16 -07:00
audio fix bitrot from AudioRingBuffer API change 2016-12-28 18:12:22 -08:00
baking changed pointer args to references in JSBaker:bakeJS() 2017-10-12 12:08:44 -07:00
controllers Linux build 2017-07-26 13:32:23 -07:00
entities more HIFI_MEMORY_DEBUGGING fixes 2017-06-22 13:50:46 -07:00
gpu-test [WL21389] WL21389 PR2: Representation of collision shapes need updating (details below). 2017-10-24 14:16:17 -04:00
jitter checkpoint 2015-11-20 15:19:45 -06:00
ktx Improving test code for KTX library 2017-05-30 10:47:49 -07:00
mocha Convert all simple one-liners containing ') { ' to instead take up three lines. 2016-02-10 12:03:07 -08:00
networking Prevent cache ejection of textures in use 2017-06-19 09:51:11 -07:00
octree OctreeTests: added unit tests for EntityTreeElement child accessors 2016-03-30 16:15:29 -07:00
physics remove cmake warning about untestable CPP file 2016-10-05 13:06:36 -07:00
qt59 add memory-debugging macro to some cmake files 2017-06-22 10:07:39 -07:00
recording add memory-debugging macro to some cmake files 2017-06-22 10:07:39 -07:00
render-perf Removing unused call 2017-09-25 15:10:40 -07:00
render-texture-load adjust various things that cause a crash-on-exit on Linux 2017-08-06 11:57:55 -07:00
render-utils more memory-debugger 2017-06-23 08:16:48 -07:00
shaders New android toolchain 2017-09-19 13:45:12 -07:00
shared Fix crash when cache File lifetime exceeds cache lifetime 2017-06-20 14:38:51 -07:00
ui Remove all oglplus usage and references 2016-10-02 11:44:34 -07:00
CMakeLists.txt Fix build (and remove unneeded test file). 2016-02-08 09:33:32 -08:00
GLMTestUtils.h add QCOMPARE_QUATS macro for easier tests 2015-08-12 17:52:54 -07:00
QTestExtensions.h Changed grammar to support boolean and and or. 2015-12-15 10:35:35 -08:00