├── .eslintignore ├── .eslintrc ├── .gitignore ├── .jshintrc ├── CHANGES ├── CI ├── COPYING ├── CT ├── E2E ├── Gruntfile.js ├── LICENSE ├── README.md ├── examples ├── README.md ├── goo │ └── entities │ │ ├── Entity │ │ ├── Entity-attributes-example.html │ │ ├── Entity-attributes-example.js │ │ ├── Entity-set-example.html │ │ ├── Entity-set-example.js │ │ ├── Entity-tags-example.html │ │ ├── Entity-tags-example.js │ │ ├── Entity-transform-example.html │ │ ├── Entity-transform-example.js │ │ ├── Entity-traverse-example.html │ │ ├── Entity-traverse-example.js │ │ ├── Entity-traverseUp-example.html │ │ └── Entity-traverseUp-example.js │ │ ├── EntitySelection │ │ ├── EntitySelection-children-example.html │ │ ├── EntitySelection-children-example.js │ │ ├── EntitySelection-parent-example.html │ │ ├── EntitySelection-parent-example.js │ │ ├── EntitySelection-setOps-example.html │ │ └── EntitySelection-setOps-example.js │ │ └── components │ │ ├── MeshDataComponent │ │ ├── MeshDataComponent-example.html │ │ └── MeshDataComponent-example.js │ │ └── MeshRendererComponent │ │ ├── MeshRendererComponent-example.html │ │ └── MeshRendererComponent-example.js ├── resources │ └── check.png └── style.css ├── index.js ├── lib ├── ammo.small.js ├── ammopack.js ├── animationpack.js ├── box2d │ └── box2d.js ├── box2dpack.js ├── cannon │ └── cannon.min.js ├── cannonpack.js ├── crunch │ └── crunch.js ├── debugpack.js ├── fsmpack.js ├── gamepadpack.js ├── geometrypack.js ├── gizmopack.js ├── goo.js ├── hammerv2 │ ├── hammer-1.0.0rc1.js │ ├── hammer-1.0.0rc1.min.js │ ├── hammer.fakemultitouch.js │ └── hammer.showtouches.js ├── linerenderpack.js ├── logicpack.js ├── p2 │ └── p2.min.js ├── p2pack.js ├── particlepack.js ├── passpack.js ├── physicspack.js ├── polyk.js ├── quadpack.js ├── scriptpack.js ├── soundmanager2 │ ├── soundmanager2.js │ └── swf │ │ ├── soundmanager2.swf │ │ ├── soundmanager2_debug.swf │ │ ├── soundmanager2_flash9.swf │ │ ├── soundmanager2_flash9_debug.swf │ │ └── soundmanager2_flash_xdomain.zip ├── soundmanager2pack.js ├── terrainpack.js ├── timelinepack.js ├── underscore-min.js ├── underscore.js ├── waterpack.js └── webgl-debug.js ├── out ├── ammopack.js ├── animationpack.js ├── box2dpack.js ├── cannonpack.js ├── debugpack.js ├── fsmpack.js ├── gamepadpack.js ├── geometrypack.js ├── gizmopack.js ├── goo.js ├── linerenderpack.js ├── logicpack.js ├── minified │ └── MapSetPolyfill.js ├── p2pack.js ├── particlepack.js ├── passpack.js ├── physicspack.js ├── quadpack.js ├── scriptpack.js ├── soundmanager2pack.js ├── terrainpack.js ├── timelinepack.js └── waterpack.js ├── package.json ├── spec └── support │ └── jasmine.json ├── src └── goo │ ├── addons │ ├── ammopack │ │ ├── AmmoComponent.js │ │ ├── AmmoSystem.js │ │ ├── calculateTriangleMeshShape.js │ │ └── index.js │ ├── box2dpack │ │ ├── components │ │ │ └── Box2DComponent.js │ │ ├── index.js │ │ └── systems │ │ │ └── Box2DSystem.js │ ├── cannonpack │ │ ├── CannonBoxColliderComponent.js │ │ ├── CannonCylinderColliderComponent.js │ │ ├── CannonDistanceJointComponent.js │ │ ├── CannonPlaneColliderComponent.js │ │ ├── CannonRigidbodyComponent.js │ │ ├── CannonSphereColliderComponent.js │ │ ├── CannonSystem.js │ │ ├── CannonTerrainColliderComponent.js │ │ └── index.js │ ├── gamepadpack │ │ ├── GamepadComponent.js │ │ ├── GamepadData.js │ │ ├── GamepadSystem.js │ │ └── index.js │ ├── linerenderpack │ │ ├── LineRenderSystem.js │ │ ├── LineRenderer.js │ │ └── index.js │ ├── p2pack │ │ ├── P2Component.js │ │ ├── P2System.js │ │ └── index.js │ ├── particlepack │ │ ├── ParticleData.js │ │ ├── components │ │ │ └── ParticleSystemComponent.js │ │ ├── curves │ │ │ ├── ConstantCurve.js │ │ │ ├── Curve.js │ │ │ ├── LerpCurve.js │ │ │ ├── LinearCurve.js │ │ │ ├── PolyCurve.js │ │ │ ├── Vector3Curve.js │ │ │ └── Vector4Curve.js │ │ ├── handlers │ │ │ └── ParticleSystemComponentHandler.js │ │ ├── index.js │ │ └── systems │ │ │ ├── ParticleDebugRenderSystem.js │ │ │ └── ParticleSystemSystem.js │ ├── physicspack │ │ ├── PhysicsMaterial.js │ │ ├── RaycastResult.js │ │ ├── colliders │ │ │ ├── BoxCollider.js │ │ │ ├── Collider.js │ │ │ ├── CylinderCollider.js │ │ │ ├── MeshCollider.js │ │ │ ├── PlaneCollider.js │ │ │ └── SphereCollider.js │ │ ├── components │ │ │ ├── AbstractColliderComponent.js │ │ │ ├── AbstractRigidBodyComponent.js │ │ │ ├── ColliderComponent.js │ │ │ └── RigidBodyComponent.js │ │ ├── handlers │ │ │ ├── ColliderComponentHandler.js │ │ │ └── RigidBodyComponentHandler.js │ │ ├── index.js │ │ ├── joints │ │ │ ├── BallJoint.js │ │ │ ├── HingeJoint.js │ │ │ └── PhysicsJoint.js │ │ ├── shapes │ │ │ ├── PhysicsBoxDebugShape.js │ │ │ ├── PhysicsCylinderDebugShape.js │ │ │ ├── PhysicsPlaneDebugShape.js │ │ │ └── PhysicsSphereDebugShape.js │ │ ├── systems │ │ │ ├── AbstractPhysicsSystem.js │ │ │ ├── ColliderSystem.js │ │ │ ├── PhysicsDebugRenderSystem.js │ │ │ └── PhysicsSystem.js │ │ └── util │ │ │ └── Pool.js │ ├── soundmanager2pack │ │ ├── components │ │ │ └── SoundManager2Component.js │ │ ├── index.js │ │ └── systems │ │ │ └── SoundManager2System.js │ ├── terrainpack │ │ ├── Forrest.js │ │ ├── Terrain.js │ │ ├── TerrainHandler.js │ │ ├── TerrainSurface.js │ │ ├── Vegetation.js │ │ └── index.js │ └── waterpack │ │ ├── FlatWaterRenderer.js │ │ ├── ProjectedGrid.js │ │ ├── ProjectedGridWaterRenderer.js │ │ └── index.js │ ├── animationpack │ ├── Joint.js │ ├── Skeleton.js │ ├── SkeletonPose.js │ ├── blendtree │ │ ├── BinaryLerpSource.js │ │ ├── ClipSource.js │ │ ├── FrozenClipSource.js │ │ ├── ManagedTransformSource.js │ │ └── Source.js │ ├── clip │ │ ├── AbstractAnimationChannel.js │ │ ├── AnimationClip.js │ │ ├── AnimationClipInstance.js │ │ ├── InterpolatedFloatChannel.js │ │ ├── JointChannel.js │ │ ├── JointData.js │ │ ├── TransformChannel.js │ │ ├── TransformData.js │ │ ├── TriggerChannel.js │ │ └── TriggerData.js │ ├── components │ │ └── AnimationComponent.js │ ├── handlers │ │ ├── AnimationClipHandler.js │ │ ├── AnimationComponentHandler.js │ │ ├── AnimationHandlers.js │ │ ├── AnimationLayersHandler.js │ │ ├── AnimationStateHandler.js │ │ └── SkeletonHandler.js │ ├── index.js │ ├── layer │ │ ├── AnimationLayer.js │ │ └── LayerLerpBlender.js │ ├── state │ │ ├── AbstractState.js │ │ ├── AbstractTransitionState.js │ │ ├── FadeTransitionState.js │ │ ├── FrozenTransitionState.js │ │ ├── SteadyState.js │ │ └── SyncFadeTransitionState.js │ └── systems │ │ └── AnimationSystem.js │ ├── debugpack │ ├── BoundingVolumeMeshBuilder.js │ ├── DebugDrawHelper.js │ ├── Debugger.js │ ├── EntityCounter.js │ ├── components │ │ └── MarkerComponent.js │ ├── index.js │ ├── shapes │ │ ├── CameraDebug.js │ │ ├── LightDebug.js │ │ ├── MeshRendererDebug.js │ │ └── SkeletonDebug.js │ └── systems │ │ ├── DebugRenderSystem.js │ │ └── MarkerSystem.js │ ├── entities │ ├── Bus.js │ ├── Entity.js │ ├── EntitySelection.js │ ├── EntityUtils.js │ ├── GooRunner.js │ ├── Selection.js │ ├── SystemBus.js │ ├── World.js │ ├── components │ │ ├── CameraComponent.js │ │ ├── Component.js │ │ ├── CssTransformComponent.js │ │ ├── Dom3dComponent.js │ │ ├── HtmlComponent.js │ │ ├── LightComponent.js │ │ ├── MeshDataComponent.js │ │ ├── MeshRendererComponent.js │ │ ├── MovementComponent.js │ │ ├── ParticleComponent.js │ │ ├── PortalComponent.js │ │ ├── ScriptComponent.js │ │ ├── SoundComponent.js │ │ ├── TextComponent.js │ │ └── TransformComponent.js │ ├── managers │ │ ├── EntityManager.js │ │ └── Manager.js │ └── systems │ │ ├── BoundingUpdateSystem.js │ │ ├── CameraSystem.js │ │ ├── CssTransformSystem.js │ │ ├── Dom3dSystem.js │ │ ├── GridRenderSystem.js │ │ ├── HtmlSystem.js │ │ ├── LightingSystem.js │ │ ├── MovementSystem.js │ │ ├── ParticlesSystem.js │ │ ├── PickingSystem.js │ │ ├── PipRenderSystem.js │ │ ├── PortalSystem.js │ │ ├── RenderSystem.js │ │ ├── ScriptSystem.js │ │ ├── SoundSystem.js │ │ ├── System.js │ │ ├── TextSystem.js │ │ └── TransformSystem.js │ ├── fsmpack │ ├── MachineHandler.js │ ├── StateMachineComponentHandler.js │ ├── StateMachineHandlers.js │ ├── index.js │ ├── proximity │ │ ├── ProximityComponent.js │ │ └── ProximitySystem.js │ └── statemachine │ │ ├── FSMUtil.js │ │ ├── FsmUtils.js │ │ ├── Machine.js │ │ ├── State.js │ │ ├── StateMachineComponent.js │ │ ├── StateMachineSystem.js │ │ └── actions │ │ ├── Action.js │ │ ├── Actions.js │ │ ├── AddLightAction.js │ │ ├── AddPositionAction.js │ │ ├── AddVariableAction.js │ │ ├── ApplyForceAction.js │ │ ├── ApplyImpulseAction.js │ │ ├── ApplyTorqueAction.js │ │ ├── ArrowsAction.js │ │ ├── ClickAction.js │ │ ├── CollidesAction.js │ │ ├── CompareCounterAction.js │ │ ├── CompareCountersAction.js │ │ ├── CompareDistanceAction.js │ │ ├── CopyJointTransformAction.js │ │ ├── CopyVariableAction.js │ │ ├── DollyZoomAction.js │ │ ├── DomEventAction.js │ │ ├── EmitAction.js │ │ ├── EvalAction.js │ │ ├── FireAction.js │ │ ├── GetPositionAction.js │ │ ├── HideAction.js │ │ ├── HoverEnterAction.js │ │ ├── HoverExitAction.js │ │ ├── HtmlAction.js │ │ ├── InBoxAction.js │ │ ├── InFrustumAction.js │ │ ├── IncrementCounterAction.js │ │ ├── KeyDownAction.js │ │ ├── KeyPressedAction.js │ │ ├── KeyUpAction.js │ │ ├── LogMessageAction.js │ │ ├── LookAtAction.js │ │ ├── MouseDownAction.js │ │ ├── MouseMoveAction.js │ │ ├── MousePressedAction.js │ │ ├── MouseUpAction.js │ │ ├── MoveAction.js │ │ ├── MultiplyVariableAction.js │ │ ├── MuteAction.js │ │ ├── NextFrameAction.js │ │ ├── NumberCompareAction.js │ │ ├── PauseAnimationAction.js │ │ ├── PauseParticleSystemAction.js │ │ ├── PauseSoundAction.js │ │ ├── PauseTimelineAction.js │ │ ├── PickAction.js │ │ ├── PickAndExitAction.js │ │ ├── PlaySoundAction.js │ │ ├── RandomTransitionAction.js │ │ ├── RemoveAction.js │ │ ├── RemoveLightAction.js │ │ ├── RemoveParticlesAction.js │ │ ├── ResumeAnimationAction.js │ │ ├── RotateAction.js │ │ ├── ScaleAction.js │ │ ├── ScriptAction.js │ │ ├── SetAnimationAction.js │ │ ├── SetAnimationOffsetAction.js │ │ ├── SetClearColorAction.js │ │ ├── SetCounterAction.js │ │ ├── SetHtmlTextAction.js │ │ ├── SetLightPropertiesAction.js │ │ ├── SetLightRangeAction.js │ │ ├── SetMaterialColorAction.js │ │ ├── SetPositionAction.js │ │ ├── SetRenderTargetAction.js │ │ ├── SetRigidBodyAngularVelocityAction.js │ │ ├── SetRigidBodyPositionAction.js │ │ ├── SetRigidBodyRotationAction.js │ │ ├── SetRigidBodyVelocityAction.js │ │ ├── SetRotationAction.js │ │ ├── SetTimeScaleAction.js │ │ ├── SetTimelineTimeAction.js │ │ ├── SetVariableAction.js │ │ ├── ShakeAction.js │ │ ├── ShowAction.js │ │ ├── SmokeAction.js │ │ ├── SoundFadeInAction.js │ │ ├── SoundFadeOutAction.js │ │ ├── SpriteAnimationAction.js │ │ ├── StartParticleSystemAction.js │ │ ├── StartTimelineAction.js │ │ ├── StopParticleSystemAction.js │ │ ├── StopSoundAction.js │ │ ├── StopTimelineAction.js │ │ ├── SwitchCameraAction.js │ │ ├── TagAction.js │ │ ├── ToggleFullscreenAction.js │ │ ├── ToggleMuteAction.js │ │ ├── TogglePostFxAction.js │ │ ├── TransitionAction.js │ │ ├── TransitionOnMessageAction.js │ │ ├── TriggerEnterAction.js │ │ ├── TriggerLeaveAction.js │ │ ├── TweenLightColorAction.js │ │ ├── TweenLookAtAction.js │ │ ├── TweenMaterialColorAction.js │ │ ├── TweenMoveAction.js │ │ ├── TweenOpacityAction.js │ │ ├── TweenRotationAction.js │ │ ├── TweenScaleAction.js │ │ ├── TweenTextureOffsetAction.js │ │ ├── UnmuteAction.js │ │ ├── WaitAction.js │ │ └── WasdAction.js │ ├── geometrypack │ ├── FilledPolygon.js │ ├── PolyLine.js │ ├── RegularPolygon.js │ ├── Surface.js │ ├── Triangle.js │ ├── index.js │ └── text │ │ ├── TextComponent.js │ │ ├── TextComponentHandler.js │ │ └── TextMeshGenerator.js │ ├── loaders │ ├── DynamicLoader.js │ ├── crunch │ │ └── CrunchLoader.js │ ├── dds │ │ ├── DdsLoader.js │ │ └── DdsUtils.js │ ├── handlers │ │ ├── CameraComponentHandler.js │ │ ├── ComponentHandler.js │ │ ├── ConfigHandler.js │ │ ├── Dom3dComponentHandler.js │ │ ├── EntityHandler.js │ │ ├── EnvironmentHandler.js │ │ ├── HtmlComponentHandler.js │ │ ├── JsonHandler.js │ │ ├── LightComponentHandler.js │ │ ├── MaterialHandler.js │ │ ├── MeshDataComponentHandler.js │ │ ├── MeshDataHandler.js │ │ ├── MeshRendererComponentHandler.js │ │ ├── ProjectHandler.js │ │ ├── SceneHandler.js │ │ ├── ShaderHandler.js │ │ ├── SkyboxHandler.js │ │ ├── SoundComponentHandler.js │ │ ├── SoundHandler.js │ │ ├── TextureHandler.js │ │ └── TransformComponentHandler.js │ └── tga │ │ └── TgaLoader.js │ ├── logicpack │ ├── LogicComponent.js │ ├── LogicComponentHandler.js │ ├── LogicSystem.js │ ├── index.js │ └── logic │ │ ├── LogicInterface.js │ │ ├── LogicLayer.js │ │ ├── LogicNode.js │ │ ├── LogicNodeAdd.js │ │ ├── LogicNodeApplyMatrix.js │ │ ├── LogicNodeConstVec3.js │ │ ├── LogicNodeDebug.js │ │ ├── LogicNodeEntityProxy.js │ │ ├── LogicNodeFloat.js │ │ ├── LogicNodeInput.js │ │ ├── LogicNodeInt.js │ │ ├── LogicNodeLightComponent.js │ │ ├── LogicNodeMax.js │ │ ├── LogicNodeMeshRendererComponent.js │ │ ├── LogicNodeMouse.js │ │ ├── LogicNodeMultiply.js │ │ ├── LogicNodeMultiplyFloat.js │ │ ├── LogicNodeOutput.js │ │ ├── LogicNodeRandom.js │ │ ├── LogicNodeRotationMatrix.js │ │ ├── LogicNodeSine.js │ │ ├── LogicNodeSub.js │ │ ├── LogicNodeTime.js │ │ ├── LogicNodeTransformComponent.js │ │ ├── LogicNodeVec3.js │ │ ├── LogicNodeVec3Add.js │ │ ├── LogicNodeWASD.js │ │ ├── LogicNodeWASD2.js │ │ └── LogicNodes.js │ ├── math │ ├── MathUtils.js │ ├── Matrix.js │ ├── Matrix2.js │ ├── Matrix2x2.js │ ├── Matrix3.js │ ├── Matrix3x3.js │ ├── Matrix4.js │ ├── Matrix4x4.js │ ├── Plane.js │ ├── Quaternion.js │ ├── Ray.js │ ├── Transform.js │ ├── Vector.js │ ├── Vector2.js │ ├── Vector3.js │ ├── Vector4.js │ └── splines │ │ ├── Spline.js │ │ └── SplineWalker.js │ ├── noise │ ├── Noise.js │ └── ValueNoise.js │ ├── particles │ ├── Particle.js │ ├── ParticleEmitter.js │ ├── ParticleInfluence.js │ ├── ParticleLib.js │ └── ParticleUtils.js │ ├── passpack │ ├── BloomPass.js │ ├── BlurPass.js │ ├── DepthPass.js │ ├── DofPass.js │ ├── DogPass.js │ ├── MotionBlurPass.js │ ├── PassLib.js │ ├── PosteffectsHandler.js │ ├── ShaderLibExtra.js │ ├── SsaoPass.js │ └── index.js │ ├── picking │ ├── BoundingTree.js │ └── PrimitivePickLogic.js │ ├── quadpack │ ├── DoubleQuad.js │ ├── QuadComponent.js │ ├── QuadComponentHandler.js │ └── index.js │ ├── renderer │ ├── BufferData.js │ ├── BufferUtils.js │ ├── Camera.js │ ├── Capabilities.js │ ├── Material.js │ ├── MeshData.js │ ├── RenderInfo.js │ ├── RenderQueue.js │ ├── RenderStats.js │ ├── Renderer+ContextLost.js │ ├── Renderer.js │ ├── RendererRecord.js │ ├── RendererUtils.js │ ├── Shader.js │ ├── ShaderCall.js │ ├── SimplePartitioner.js │ ├── TaskScheduler.js │ ├── Texture.js │ ├── TextureCreator.js │ ├── bounds │ │ ├── BoundingBox.js │ │ ├── BoundingPicker.js │ │ ├── BoundingSphere.js │ │ └── BoundingVolume.js │ ├── light │ │ ├── DirectionalLight.js │ │ ├── Light.js │ │ ├── PointLight.js │ │ └── SpotLight.js │ ├── pass │ │ ├── Composer.js │ │ ├── FullscreenPass.js │ │ ├── FullscreenUtil.js │ │ ├── FullscreenUtils.js │ │ ├── Pass.js │ │ ├── RenderPass.js │ │ └── RenderTarget.js │ ├── shaders │ │ ├── ShaderBuilder.js │ │ ├── ShaderFragment.js │ │ └── ShaderLib.js │ └── shadow │ │ └── ShadowHandler.js │ ├── scriptpack │ ├── AxisAlignedCamControlScript.js │ ├── BasicControlScript.js │ ├── ButtonScript.js │ ├── CannonPickScript.js │ ├── FlyControlScript.js │ ├── GroundBoundMovementScript.js │ ├── HeightMapBoundingScript.js │ ├── LensFlareScript.js │ ├── MouseLookControlScript.js │ ├── OrbitNPanControlScript.js │ ├── PanCamScript.js │ ├── PickAndRotateScript.js │ ├── PolyBoundingScript.js │ ├── RotationScript.js │ ├── ScriptComponentHandler.js │ ├── ScriptHandler.js │ ├── ScriptHandlers.js │ ├── ScriptRegister.js │ ├── SparseHeightMapBoundingScript.js │ ├── WasdControlScript.js │ ├── WorldFittedTerrainScript.js │ └── index.js │ ├── scripts │ ├── OrbitCamControlScript.js │ ├── ScriptUtils.js │ └── Scripts.js │ ├── shapes │ ├── Box.js │ ├── Cone.js │ ├── Cylinder.js │ ├── Disk.js │ ├── Grid.js │ ├── Quad.js │ ├── SimpleBox.js │ ├── Sphere.js │ ├── TextureGrid.js │ └── Torus.js │ ├── sound │ ├── AudioContext.js │ ├── OscillatorSound.js │ └── Sound.js │ ├── timelinepack │ ├── AbstractTimelineChannel.js │ ├── EventChannel.js │ ├── TimelineComponent.js │ ├── TimelineComponentHandler.js │ ├── TimelineSystem.js │ ├── ValueChannel.js │ └── index.js │ └── util │ ├── Ajax.js │ ├── ArrayUtil.js │ ├── ArrayUtils.js │ ├── CanvasUtils.js │ ├── Easing.js │ ├── EventTarget.js │ ├── GameUtils.js │ ├── Logo.js │ ├── MeshBuilder.js │ ├── ObjectUtil.js │ ├── ObjectUtils.js │ ├── ParticleSystemUtils.js │ ├── PromiseUtil.js │ ├── PromiseUtils.js │ ├── Rc4Random.js │ ├── ShapeCreatorMemoized.js │ ├── Skybox.js │ ├── Snow.js │ ├── SoundCreator.js │ ├── Stats.js │ ├── StringUtil.js │ ├── StringUtils.js │ ├── TangentGenerator.js │ ├── combine │ ├── AtlasNode.js │ ├── EntityCombiner.js │ └── Rectangle.js │ ├── gizmopack │ ├── Gizmo.js │ ├── GizmoRenderSystem.js │ ├── GlobalRotationGizmo.js │ ├── GlobalTranslationGizmo.js │ ├── RotationGizmo.js │ ├── ScaleGizmo.js │ ├── TranslationGizmo.js │ └── index.js │ └── rsvp.js ├── test ├── e2etesting │ ├── .gitignore │ ├── README.md │ ├── ScreenShooter.js │ ├── conf.js │ ├── filterList.js │ ├── generate-reference-screenshots.js │ ├── manualSpec.js │ ├── screenshots │ │ └── goo │ │ │ ├── addons │ │ │ ├── Box2DComponent │ │ │ │ └── Box2DComponent-vtest.png │ │ │ ├── Cannon │ │ │ │ └── Cannon-vtest.png │ │ │ ├── Sound │ │ │ │ ├── Sound-spatial-vtest.png │ │ │ │ └── Sound-vtest.png │ │ │ ├── Water │ │ │ │ ├── water-animation-vtest.png │ │ │ │ └── water-vtest.png │ │ │ ├── ammopack │ │ │ │ ├── Ammo-vehicle-vtest.png │ │ │ │ └── Ammo-vtest.png │ │ │ ├── p2 │ │ │ │ └── p2-vtest.png │ │ │ └── particlepack │ │ │ │ ├── particle-bounds-vtest.png │ │ │ │ ├── particle-emission-vtest.png │ │ │ │ ├── particle-getWorldPosition-vtest.png │ │ │ │ └── particle-startPaused-vtest.png │ │ │ ├── debugpack │ │ │ ├── DebugRenderSystemCamera │ │ │ │ └── DebugRenderSystemCamera-vtest.png │ │ │ ├── DebugRenderSystemLights │ │ │ │ └── DebugRenderSystemLights-vtest.png │ │ │ └── Debugger │ │ │ │ └── Debugger-vtest.png │ │ │ ├── entities │ │ │ ├── CallbacksNextFrame │ │ │ │ └── CallbacksNextFrame-vtest.png │ │ │ ├── Clone │ │ │ │ ├── Clone-light-vtest.png │ │ │ │ ├── Clone-lightComponent-vtest.png │ │ │ │ ├── Clone-material-vtest.png │ │ │ │ ├── Clone-meshData-vtest.png │ │ │ │ ├── Clone-meshRendererComponent-vtest.png │ │ │ │ ├── Clone-shapes-vtest.png │ │ │ │ └── Clone-texture-vtest.png │ │ │ ├── components │ │ │ │ └── TransformComponent │ │ │ │ │ └── TransformComponent-vtest.png │ │ │ └── systems │ │ │ │ └── PickingSystem-vtest.png │ │ │ ├── fsmpack │ │ │ ├── LightSwitchGame │ │ │ │ └── LightSwitchGame-vtest.png │ │ │ ├── MoveTheBoxGame │ │ │ │ └── MoveTheBoxGame-vtest.png │ │ │ └── PongGame │ │ │ │ └── PongGame-vtest.png │ │ │ ├── geometrypack │ │ │ ├── FilledPolygon │ │ │ │ └── FilledPolygon-vtest.png │ │ │ └── Surface │ │ │ │ └── Lathe-vtest.png │ │ │ ├── math │ │ │ └── LookAt │ │ │ │ └── LookAt-vtest.png │ │ │ ├── misc │ │ │ ├── BillboardShader │ │ │ │ └── BillboardShader-vtest.png │ │ │ ├── CombinedIndexModes │ │ │ │ └── CombinedIndexModes-vtest.png │ │ │ ├── FlatwaterAndParticles │ │ │ │ └── FlatwaterAndParticles-vtest.png │ │ │ ├── IndexModes │ │ │ │ └── IndexModes-vtest.png │ │ │ ├── ParticleLib │ │ │ │ └── ParticleLib-vtest.png │ │ │ ├── PickSync │ │ │ │ └── PickSync-vtest.png │ │ │ └── PickingEvents │ │ │ │ └── PickingEvents-vtest.png │ │ │ ├── passpack │ │ │ └── BloomPass │ │ │ │ └── BloomPass-vtest.png │ │ │ ├── quadpack │ │ │ ├── DoubleQuad │ │ │ │ └── DoubleQuad-vtest.png │ │ │ └── QuadComponent │ │ │ │ └── QuadComponent-vtest.png │ │ │ ├── renderer │ │ │ ├── BufferSubData │ │ │ │ └── BufferSubData-vtest.png │ │ │ ├── DeIndex │ │ │ │ └── DeIndex-vtest.png │ │ │ ├── Material │ │ │ │ └── DepthFunc-vtest.png │ │ │ ├── RenderTarget │ │ │ │ └── RenderTarget-vtest.png │ │ │ ├── UberShader │ │ │ │ └── AmbientTest-vtest.png │ │ │ ├── bounds │ │ │ │ ├── BoundingBox │ │ │ │ │ ├── BoundingBox-computeFromPoints-vtest.png │ │ │ │ │ ├── BoundingBox-merge-with-BoundingBox-vtest.png │ │ │ │ │ └── BoundingBox-merge-with-BoundingSphere-vtest.png │ │ │ │ └── BoundingSphere │ │ │ │ │ ├── BoundingSphere-computeFromPoints-vtest.png │ │ │ │ │ └── BoundingSphere-merge-with-BoundingBox-vtest.png │ │ │ ├── light │ │ │ │ ├── Lights-vtest.png │ │ │ │ ├── Shadowmaps-vtest.png │ │ │ │ └── Simpleshadows-vtest.png │ │ │ └── texture │ │ │ │ ├── AnisotropicFiltering │ │ │ │ └── Anisotropic-vtest.png │ │ │ │ └── NPOT │ │ │ │ └── NPOT-vtest.png │ │ │ ├── shapes │ │ │ ├── Box │ │ │ │ └── Box-vtest.png │ │ │ ├── Cone │ │ │ │ └── Cone-vtest.png │ │ │ ├── Cylinder │ │ │ │ └── Cylinder-vtest.png │ │ │ ├── Disk │ │ │ │ └── Disk-vtest.png │ │ │ └── Sphere │ │ │ │ └── Sphere-vtest.png │ │ │ └── util │ │ │ ├── EntityCombiner │ │ │ ├── EntityCombiner-vtest.png │ │ │ └── ladda ned.png │ │ │ └── TransformGizmos │ │ │ └── TransformGizmos-vtest.png │ └── specs │ │ └── test.spec.js ├── lib │ └── jasmine-2.3.4 │ │ ├── boot.js │ │ ├── console.js │ │ ├── jasmine-html.js │ │ ├── jasmine.css │ │ ├── jasmine.js │ │ └── jasmine_favicon.png ├── stress-test │ ├── README.md │ ├── ad-hoc-stress-test-lib.js │ ├── stress-main.js │ ├── stress.css │ ├── stress.html │ └── trials │ │ ├── EntityManager-stress.js │ │ └── Vector3-vs-Vector.js └── unit │ ├── CustomMatchers.js │ ├── README.md │ ├── addons │ ├── linerenderpack │ │ ├── LineRenderSystem-test.js │ │ └── LineRenderer-test.js │ ├── particlepack │ │ ├── ParticleData-test.js │ │ ├── components │ │ │ └── ParticleSystemComponent-test.js │ │ ├── curves │ │ │ ├── ConstantCurve-test.js │ │ │ ├── Curve-test.js │ │ │ ├── LerpCurve-test.js │ │ │ ├── LinearCurve-test.js │ │ │ ├── PolyCurve-test.js │ │ │ ├── Vector3Curve-test.js │ │ │ └── Vector4Curve-test.js │ │ └── handlers │ │ │ └── ParticleSystemComponentHandler-test.js │ └── physicspack │ │ ├── colliders │ │ ├── BoxCollider-test.js │ │ ├── CylinderCollider-test.js │ │ ├── MeshCollider-test.js │ │ ├── PlaneCollider-test.js │ │ └── SphereCollider-test.js │ │ ├── components │ │ ├── ColliderComponent-test.js │ │ └── RigidBodyComponent-test.js │ │ ├── handlers │ │ ├── ColliderComponentHandler-test.js │ │ └── RigidBodyComponentHandler-test.js │ │ ├── systems │ │ ├── PhysicsDebugRenderSystem-test.js │ │ └── PhysicsSystem-test.js │ │ └── util │ │ └── Pool-test.js │ ├── animationpack │ ├── Joint-test.js │ ├── Skeleton-test.js │ ├── SkeletonPose-test.js │ ├── blendtree │ │ ├── BinaryLerpSource-test.js │ │ ├── ClipSource-test.js │ │ ├── FrozenClipSource-test.js │ │ └── ManagedTransformSource-test.js │ ├── clip │ │ ├── AbstractAnimationChannel-test.js │ │ ├── AnimationClip-test.js │ │ ├── AnimationClipInstance-test.js │ │ ├── InterpolatedFloatChannel-test.js │ │ ├── JointChannel-test.js │ │ ├── JointData-test.js │ │ ├── TransformChannel-test.js │ │ ├── TransformData-test.js │ │ ├── TriggerChannel-test.js │ │ └── TriggerData-test.js │ ├── components │ │ └── AnimationComponent-test.js │ ├── handlers │ │ ├── AnimationClipHandler-test.js │ │ ├── AnimationComponentHandler-test.js │ │ ├── AnimationLayersHandler-test.js │ │ ├── AnimationStateHandler-test.js │ │ └── SkeletonHandler-test.js │ ├── layer │ │ ├── AnimationLayer-test.js │ │ └── LayerLerpBlender-test.js │ ├── state │ │ ├── AbstractState-test.js │ │ ├── AbstractTransitionState-test.js │ │ ├── FadeTransitionState-test.js │ │ ├── FrozenTransitionState-test.js │ │ ├── SteadyState-test.js │ │ └── SyncFadeTransitionState-test.js │ └── systems │ │ └── AnimationSystem-test.js │ ├── debugpack │ ├── BoundingVolumeMeshBuilder-test.js │ ├── DebugDrawHelper-test.js │ ├── Debugger-test.js │ ├── EntityCounter-test.js │ ├── components │ │ └── MarkerComponent-test.js │ └── systems │ │ └── MarkerSystem-test.js │ ├── entities │ ├── Bus-test.js │ ├── Entity-test.js │ ├── EntitySelection-test.js │ ├── EntityUtils-test.js │ ├── GooRunner-test.js │ ├── Selection-test.js │ ├── SystemBus-test.js │ ├── World-test.js │ ├── components │ │ ├── CameraComponent-test.js │ │ ├── CameraDebugComponent-test.js │ │ ├── Component-test.js │ │ ├── CssTransformComponent-test.js │ │ ├── LightComponent-test.js │ │ ├── LightDebugComponent-test.js │ │ ├── MeshDataComponent-test.js │ │ ├── MeshRendererComponent-test.js │ │ ├── MovementComponent-test.js │ │ ├── ParticleComponent-test.js │ │ ├── PortalComponent-test.js │ │ ├── ProximityComponent-test.js │ │ ├── ScriptComponent-test.js │ │ ├── SoundComponent-test.js │ │ ├── TextComponent-test.js │ │ └── TransformComponent-test.js │ ├── managers │ │ ├── EntityManager-test.js │ │ └── Manager-test.js │ └── systems │ │ ├── BoundingUpdateSystem-test.js │ │ ├── CameraDebugSystem-test.js │ │ ├── CameraSystem-test.js │ │ ├── CssTransformSystem-test.js │ │ ├── DebugRenderSystem-test.js │ │ ├── GizmoRenderSystem-test.js │ │ ├── GridRenderSystem-test.js │ │ ├── LightDebugSystem-test.js │ │ ├── LightingSystem-test.js │ │ ├── MovementSystem-test.js │ │ ├── ParticlesSystem-test.js │ │ ├── PickingSystem-test.js │ │ ├── PortalSystem-test.js │ │ ├── RenderSystem-test.js │ │ ├── ScriptSystem-test.js │ │ ├── SoundSystem-test.js │ │ ├── System-test.js │ │ ├── TextSystem-test.js │ │ └── TransformSystem-test.js │ ├── fsmpack │ └── statemachine │ │ ├── StateMachineComponent-test.js │ │ └── actions │ │ ├── Actions-test.js │ │ └── InBoxAction-test.js │ ├── geometrypack │ ├── FilledPolygon-test.js │ ├── PolyLine-test.js │ ├── RegularPolygon-test.js │ ├── Surface-test.js │ └── Triangle-test.js │ ├── karma-coverage.conf.js │ ├── karma.conf.js │ ├── karmaWebpackProvidePluginSettings.js │ ├── loaders │ ├── Configs.js │ ├── DynamicLoader-test.js │ ├── crunch │ │ └── CrunchLoader-test.js │ ├── dds │ │ ├── DdsLoader-test.js │ │ └── DdsUtils-test.js │ ├── handlers │ │ ├── CameraComponentHandler-test.js │ │ ├── ComponentHandler-test.js │ │ ├── ConfigHandler-test.js │ │ ├── EntityHandler-test.js │ │ ├── EnvironmentHandler-test.js │ │ ├── HtmlComponentHandler-test.js │ │ ├── LightComponentHandler-test.js │ │ ├── MaterialHandler-test.js │ │ ├── MeshDataComponentHandler-test.js │ │ ├── MeshDataHandler-test.js │ │ ├── MeshRendererComponentHandler-test.js │ │ ├── ProjectHandler-test.js │ │ ├── SceneHandler-test.js │ │ ├── ScriptComponentHandler-test.js │ │ ├── ScriptHandler-test.js │ │ ├── ShaderHandler-test.js │ │ ├── SkyboxHandler-test.js │ │ ├── SoundComponentHandler-test.js │ │ ├── SoundHandler-test.js │ │ ├── TextureHandler-test.js │ │ └── TransformComponentHandler-test.js │ ├── helpers │ │ ├── AnimationConfig.js │ │ ├── EntityConfig.js │ │ ├── MaterialConfig.js │ │ ├── MeshConfig.js │ │ ├── PosteffectsConfig.js │ │ └── SceneConfig.js │ ├── res │ │ ├── check-alt.png │ │ ├── check.png │ │ ├── checker.png │ │ └── small.mp4 │ └── tga │ │ └── TgaLoader-test.js │ ├── math │ ├── MathUtils-test.js │ ├── Matrix-test.js │ ├── Matrix2-test.js │ ├── Matrix3-test.js │ ├── Matrix4-test.js │ ├── Plane-test.js │ ├── Quaternion-test.js │ ├── Ray-test.js │ ├── Spline-test.js │ ├── Transform-test.js │ ├── Vector-test.js │ ├── Vector2-test.js │ ├── Vector3-test.js │ └── Vector4-test.js │ ├── noise │ ├── Noise-test.js │ └── ValueNoise-test.js │ ├── particles │ ├── Particle-test.js │ ├── ParticleEmitter-test.js │ ├── ParticleInfluence-test.js │ ├── ParticleLib-test.js │ └── ParticleUtils-test.js │ ├── passpack │ └── PosteffectsHandler-test.js │ ├── picking │ ├── BoundingTree-test.js │ └── PrimitivePickLogic-test.js │ ├── quadpack │ ├── QuadComponent-test.js │ └── QuadComponentHandler-test.js │ ├── renderer │ ├── BufferData-test.js │ ├── BufferUtils-test.js │ ├── Camera-test.js │ ├── Material-test.js │ ├── MeshData-test.js │ ├── RenderQueue-test.js │ ├── Renderer-test.js │ ├── RendererRecord-test.js │ ├── RendererUtils-test.js │ ├── Shader-test.js │ ├── ShaderCall-test.js │ ├── SimplePartitioner-test.js │ ├── Texture-test.js │ ├── TextureCreator-test.js │ ├── bounds │ │ ├── BoundingBox-test.js │ │ ├── BoundingSphere-test.js │ │ └── BoundingVolume-test.js │ ├── light │ │ ├── DirectionalLight-test.js │ │ ├── Light-test.js │ │ ├── PointLight-test.js │ │ └── SpotLight-test.js │ ├── pass │ │ ├── BloomPass-test.js │ │ ├── BlurPass-test.js │ │ ├── Composer-test.js │ │ ├── DepthPass-test.js │ │ ├── DofPass-test.js │ │ ├── DogPass-test.js │ │ ├── FullscreenPass-test.js │ │ ├── FullscreenUtils-test.js │ │ ├── NesPass-test.js │ │ ├── PassLib-test.js │ │ ├── RenderPass-test.js │ │ ├── RenderTarget-test.js │ │ └── SsaoPass-test.js │ ├── shaders │ │ ├── ShaderBuilder-test.js │ │ ├── ShaderFragment-test.js │ │ └── ShaderLib-test.js │ └── shadow │ │ └── ShadowHandler-test.js │ ├── scripts │ ├── GroundBoundMovementScript-test.js │ ├── HeightMapBoundingScript-test.js │ ├── ScriptUtils-test.js │ └── WorldFittedTerrainScript-test.js │ ├── shapes │ ├── Box-test.js │ ├── Cone-test.js │ ├── Cylinder-test.js │ ├── Disk-test.js │ ├── Grid-test.js │ ├── Quad-test.js │ ├── SimpleBox-test.js │ ├── Sphere-test.js │ ├── TextureGrid-test.js │ └── Torus-test.js │ ├── timelinepack │ ├── EventChannel-test.js │ ├── TimelineComponent-test.js │ ├── TimelineComponentHandler-test.js │ └── ValueChannel-test.js │ └── util │ ├── Ajax-test.js │ ├── ArrayUtils-test.js │ ├── CanvasUtils-test.js │ ├── EventTarget-test.js │ ├── ObjectUtils-test.js │ ├── PromiseUtils-test.js │ └── StringUtils-test.js ├── tools ├── MapSetPolyfill.js ├── README.md ├── imgcompare │ ├── .gitignore │ ├── CMakeLists.txt │ ├── README.md │ ├── index.js │ └── src │ │ └── main.cpp ├── imgcompare2 │ └── imgCompare.js ├── jsdoc-param-checker.js ├── jshint-reporter.js ├── modoc │ ├── README.md │ ├── lib │ │ └── esprima.js │ ├── src │ │ ├── default-tern-definitions.js │ │ ├── extractor.js │ │ ├── index-builder.js │ │ ├── jsdoc-parser.js │ │ ├── jsdoc-processor.js │ │ ├── modoc.js │ │ ├── statics │ │ │ ├── changelog.css │ │ │ ├── class.js │ │ │ ├── fonts │ │ │ │ ├── icomoon.eot │ │ │ │ ├── icomoon.svg │ │ │ │ ├── icomoon.ttf │ │ │ │ └── icomoon.woff │ │ │ ├── images │ │ │ │ └── logo.png │ │ │ ├── lib │ │ │ │ ├── highlight.pack.js │ │ │ │ ├── jquery-2.1.1.min.js │ │ │ │ ├── purl.js │ │ │ │ └── styles │ │ │ │ │ ├── arta.css │ │ │ │ │ ├── ascetic.css │ │ │ │ │ ├── atelier-dune.dark.css │ │ │ │ │ ├── atelier-dune.light.css │ │ │ │ │ ├── atelier-forest.dark.css │ │ │ │ │ ├── atelier-forest.light.css │ │ │ │ │ ├── atelier-heath.dark.css │ │ │ │ │ ├── atelier-heath.light.css │ │ │ │ │ ├── atelier-lakeside.dark.css │ │ │ │ │ ├── atelier-lakeside.light.css │ │ │ │ │ ├── atelier-seaside.dark.css │ │ │ │ │ ├── atelier-seaside.light.css │ │ │ │ │ ├── brown_paper.css │ │ │ │ │ ├── brown_papersq.png │ │ │ │ │ ├── codepen-embed.css │ │ │ │ │ ├── color-brewer.css │ │ │ │ │ ├── dark.css │ │ │ │ │ ├── default.css │ │ │ │ │ ├── docco.css │ │ │ │ │ ├── far.css │ │ │ │ │ ├── foundation.css │ │ │ │ │ ├── github.css │ │ │ │ │ ├── goo.css │ │ │ │ │ ├── googlecode.css │ │ │ │ │ ├── hybrid.css │ │ │ │ │ ├── idea.css │ │ │ │ │ ├── ir_black.css │ │ │ │ │ ├── kimbie.dark.css │ │ │ │ │ ├── kimbie.light.css │ │ │ │ │ ├── magula.css │ │ │ │ │ ├── mono-blue.css │ │ │ │ │ ├── monokai.css │ │ │ │ │ ├── monokai_sublime.css │ │ │ │ │ ├── obsidian.css │ │ │ │ │ ├── paraiso.dark.css │ │ │ │ │ ├── paraiso.light.css │ │ │ │ │ ├── pojoaque.css │ │ │ │ │ ├── pojoaque.jpg │ │ │ │ │ ├── railscasts.css │ │ │ │ │ ├── rainbow.css │ │ │ │ │ ├── school_book.css │ │ │ │ │ ├── school_book.png │ │ │ │ │ ├── solarized_dark.css │ │ │ │ │ ├── solarized_light.css │ │ │ │ │ ├── sunburst.css │ │ │ │ │ ├── tomorrow-night-blue.css │ │ │ │ │ ├── tomorrow-night-bright.css │ │ │ │ │ ├── tomorrow-night-eighties.css │ │ │ │ │ ├── tomorrow-night.css │ │ │ │ │ ├── tomorrow.css │ │ │ │ │ ├── vs.css │ │ │ │ │ ├── xcode.css │ │ │ │ │ └── zenburn.css │ │ │ ├── nav.js │ │ │ └── style.css │ │ ├── templates │ │ │ ├── changelog.handlebars │ │ │ ├── class.handlebars │ │ │ ├── deprecated.handlebars │ │ │ └── nav.handlebars │ │ ├── tern-definitions.js │ │ ├── trunk.js │ │ ├── type-expressions │ │ │ ├── jsdoc-serializer.js │ │ │ ├── tern-serializer.js │ │ │ ├── tokenizer.js │ │ │ └── type-parser.js │ │ └── util.js │ └── test │ │ └── spec │ │ ├── extractor-spec.js │ │ ├── jsdoc-parser-spec.js │ │ └── type-expressions │ │ ├── tern-serializer-spec.js │ │ ├── tokenizer-spec.js │ │ └── type-parser-spec.js ├── pre-commit.js ├── release.py ├── table-of-contents.js └── util.js ├── visual-test ├── README.md ├── carousel │ ├── carousel.css │ ├── carousel.js │ ├── index.html │ └── vtUrls.js ├── goo │ ├── addons │ │ ├── Box2DComponent │ │ │ ├── Box2DComponent-vtest.html │ │ │ └── Box2DComponent-vtest.js │ │ ├── Cannon │ │ │ ├── Cannon-cylinder-vtest.html │ │ │ ├── Cannon-cylinder-vtest.js │ │ │ ├── Cannon-terrain-vtest.html │ │ │ ├── Cannon-terrain-vtest.js │ │ │ ├── Cannon-vtest.html │ │ │ └── Cannon-vtest.js │ │ ├── Gamepad │ │ │ ├── Gamepad-example.html │ │ │ └── Gamepad-example.js │ │ ├── PolyBoundingScript │ │ │ ├── PolyBoundingScript-vtest.html │ │ │ └── PolyBoundingScript-vtest.js │ │ ├── Sound │ │ │ ├── Sound-shared-vtest.html │ │ │ ├── Sound-shared-vtest.js │ │ │ ├── Sound-spatial-vtest.html │ │ │ ├── Sound-spatial-vtest.js │ │ │ ├── Sound-vtest.html │ │ │ └── Sound-vtest.js │ │ ├── Water │ │ │ ├── projected-water-vtest.html │ │ │ ├── projected-water-vtest.js │ │ │ ├── res │ │ │ │ ├── 27d63c140ee0f5777daecc07147ff198dc086ed8.jpg │ │ │ │ ├── 29b32b2124d5b9ca1a2636b3cc30929c330aa4e6.jpg │ │ │ │ ├── 3181399bd55e8bde687f65f7d190c00b16f36a3a.bin │ │ │ │ ├── 34111bd3dbddb6756fdc1da0e11796898dc81102.jpg │ │ │ │ ├── 4008374269388f5f2ebd4296261fabd1b13a0a56.jpg │ │ │ │ ├── 4cbdbf2056762a397351da03b385184e51c1c4f4.bin │ │ │ │ ├── 6b6127e8732fc8fbd6e61a4a5a63537013e7bd0a.jpg │ │ │ │ ├── 8b1a49b89b1399bd6583b30ba6271c4f65ee29c5.bin │ │ │ │ ├── a08a6baa5f03ac1f288c02f9aa8a484ed4a6be0e.bin │ │ │ │ ├── d7968aa0b348df54ba9b461874f1501b66f77109.jpg │ │ │ │ └── root.bundle │ │ │ ├── resources │ │ │ │ ├── skybox │ │ │ │ │ ├── 1.jpg │ │ │ │ │ ├── 2.jpg │ │ │ │ │ ├── 3.jpg │ │ │ │ │ ├── 4.jpg │ │ │ │ │ ├── 5.jpg │ │ │ │ │ └── 6.jpg │ │ │ │ └── water │ │ │ │ │ └── waternormals3.png │ │ │ ├── water-animation-vtest.html │ │ │ ├── water-animation-vtest.js │ │ │ ├── water-vtest.html │ │ │ └── water-vtest.js │ │ ├── ammopack │ │ │ ├── Ammo-vehicle-vtest.html │ │ │ ├── Ammo-vehicle-vtest.js │ │ │ ├── Ammo-vtest.html │ │ │ ├── Ammo-vtest.js │ │ │ └── VehicleHelper.js │ │ ├── linerenderpack │ │ │ ├── LineRenderSystem-PresetColors-vtest.html │ │ │ ├── LineRenderSystem-PresetColors-vtest.js │ │ │ ├── LineRenderSystem-PrimitiveRendering-vtest.html │ │ │ └── LineRenderSystem-PrimitiveRendering-vtest.js │ │ ├── p2 │ │ │ ├── p2-vtest.html │ │ │ └── p2-vtest.js │ │ ├── particlepack │ │ │ ├── particle-bounds-vtest.html │ │ │ ├── particle-bounds-vtest.js │ │ │ ├── particle-emission-vtest.html │ │ │ ├── particle-emission-vtest.js │ │ │ ├── particle-getWorldPosition-vtest.html │ │ │ ├── particle-getWorldPosition-vtest.js │ │ │ ├── particle-startPaused-vtest.html │ │ │ └── particle-startPaused-vtest.js │ │ └── physicspack │ │ │ ├── physics-hierarchy-vtest.html │ │ │ ├── physics-hierarchy-vtest.js │ │ │ ├── physics-ray-vtest.html │ │ │ ├── physics-ray-vtest.js │ │ │ ├── physics-triggers-vtest.html │ │ │ ├── physics-triggers-vtest.js │ │ │ ├── physics-vehicle-vtest.html │ │ │ ├── physics-vehicle-vtest.js │ │ │ ├── physics-vtest.html │ │ │ └── physics-vtest.js │ ├── animationpack │ │ ├── SkeletonAnimation-vtest.html │ │ └── SkeletonAnimation-vtest.js │ ├── debugpack │ │ ├── DebugRenderSystemCamera │ │ │ ├── DebugRenderSystemCamera-vtest.html │ │ │ └── DebugRenderSystemCamera-vtest.js │ │ ├── DebugRenderSystemLights │ │ │ ├── DebugRenderSystemLights-vtest.html │ │ │ └── DebugRenderSystemLights-vtest.js │ │ └── Debugger │ │ │ ├── Debugger-vtest.html │ │ │ └── Debugger-vtest.js │ ├── entities │ │ ├── CallbacksNextFrame │ │ │ ├── CallbacksNextFrame-vtest.html │ │ │ └── CallbacksNextFrame-vtest.js │ │ ├── Clone │ │ │ ├── Clone-camera-vtest.html │ │ │ ├── Clone-camera-vtest.js │ │ │ ├── Clone-cameraComponent-vtest.html │ │ │ ├── Clone-cameraComponent-vtest.js │ │ │ ├── Clone-light-vtest.html │ │ │ ├── Clone-light-vtest.js │ │ │ ├── Clone-lightComponent-vtest.html │ │ │ ├── Clone-lightComponent-vtest.js │ │ │ ├── Clone-material-vtest.html │ │ │ ├── Clone-material-vtest.js │ │ │ ├── Clone-meshData-vtest.html │ │ │ ├── Clone-meshData-vtest.js │ │ │ ├── Clone-meshRendererComponent-vtest.html │ │ │ ├── Clone-meshRendererComponent-vtest.js │ │ │ ├── Clone-shapes-vtest.html │ │ │ ├── Clone-shapes-vtest.js │ │ │ ├── Clone-texture-vtest.html │ │ │ └── Clone-texture-vtest.js │ │ ├── components │ │ │ ├── Dom3dComponent │ │ │ │ ├── Dom3dComponent-vtest.html │ │ │ │ ├── Dom3dComponent-vtest.js │ │ │ │ └── res │ │ │ │ │ ├── 27d63c140ee0f5777daecc07147ff198dc086ed8.jpg │ │ │ │ │ ├── 29b32b2124d5b9ca1a2636b3cc30929c330aa4e6.jpg │ │ │ │ │ ├── 3181399bd55e8bde687f65f7d190c00b16f36a3a.bin │ │ │ │ │ ├── 34111bd3dbddb6756fdc1da0e11796898dc81102.jpg │ │ │ │ │ ├── 4008374269388f5f2ebd4296261fabd1b13a0a56.jpg │ │ │ │ │ ├── 4cbdbf2056762a397351da03b385184e51c1c4f4.bin │ │ │ │ │ ├── 6b6127e8732fc8fbd6e61a4a5a63537013e7bd0a.jpg │ │ │ │ │ ├── 8b1a49b89b1399bd6583b30ba6271c4f65ee29c5.bin │ │ │ │ │ ├── a08a6baa5f03ac1f288c02f9aa8a484ed4a6be0e.bin │ │ │ │ │ ├── d7968aa0b348df54ba9b461874f1501b66f77109.jpg │ │ │ │ │ └── root.bundle │ │ │ ├── HTMLComponent │ │ │ │ ├── HTMLComponent-vtest.html │ │ │ │ └── HTMLComponent-vtest.js │ │ │ ├── PortalComponent │ │ │ │ ├── PortalComponent-vtest.html │ │ │ │ └── PortalComponent-vtest.js │ │ │ ├── TextComponent │ │ │ │ ├── TextComponent-vtest.html │ │ │ │ └── TextComponent-vtest.js │ │ │ └── TransformComponent │ │ │ │ ├── TransformComponent-vtest.html │ │ │ │ └── TransformComponent-vtest.js │ │ ├── fixedUpdate-vtest.html │ │ └── systems │ │ │ ├── GridRenderSystem-vtest.html │ │ │ ├── GridRenderSystem-vtest.js │ │ │ ├── PickingSystem-vtest.html │ │ │ └── PickingSystem-vtest.js │ ├── fsmpack │ │ ├── LightSwitchGame │ │ │ ├── LightSwitchGame-vtest.html │ │ │ └── LightSwitchGame-vtest.js │ │ ├── MoveTheBoxGame │ │ │ ├── MoveTheBoxGame-vtest.html │ │ │ └── MoveTheBoxGame-vtest.js │ │ └── PongGame │ │ │ ├── PongGame-vtest.html │ │ │ └── PongGame-vtest.js │ ├── geometrypack │ │ ├── FilledPolygon │ │ │ ├── FilledPolygon-vtest.html │ │ │ └── FilledPolygon-vtest.js │ │ ├── Surface │ │ │ ├── HeightMap-vtest.html │ │ │ ├── HeightMap-vtest.js │ │ │ ├── Lathe-vtest.html │ │ │ ├── Lathe-vtest.js │ │ │ ├── Pipe-vtest.html │ │ │ ├── Pipe-vtest.js │ │ │ ├── PolyLine-vtest.html │ │ │ └── PolyLine-vtest.js │ │ ├── TextComponent │ │ │ ├── TextComponent-vtest.html │ │ │ └── TextComponent-vtest.js │ │ ├── TextComponentHandler │ │ │ ├── Calligraffiti.ttf │ │ │ ├── Roboto-Black.ttf │ │ │ ├── TextComponentHandler-vtest.html │ │ │ ├── TextComponentHandler-vtest.js │ │ │ └── root.bundle │ │ └── TextMeshGenerator │ │ │ ├── TextMeshGenerator-vtest.html │ │ │ └── TextMeshGenerator-vtest.js │ ├── loaders │ │ ├── DynamicLoaderDestroy │ │ │ ├── CanvasWrapper.js │ │ │ ├── DynamicLoaderDestroy-vtest.html │ │ │ ├── DynamicLoaderDestroy-vtest.js │ │ │ ├── WebGLSupport.js │ │ │ └── res │ │ │ │ ├── 27d63c140ee0f5777daecc07147ff198dc086ed8.jpg │ │ │ │ ├── 29b32b2124d5b9ca1a2636b3cc30929c330aa4e6.jpg │ │ │ │ ├── 3181399bd55e8bde687f65f7d190c00b16f36a3a.bin │ │ │ │ ├── 34111bd3dbddb6756fdc1da0e11796898dc81102.jpg │ │ │ │ ├── 4008374269388f5f2ebd4296261fabd1b13a0a56.jpg │ │ │ │ ├── 4cbdbf2056762a397351da03b385184e51c1c4f4.bin │ │ │ │ ├── 6b6127e8732fc8fbd6e61a4a5a63537013e7bd0a.jpg │ │ │ │ ├── 8b1a49b89b1399bd6583b30ba6271c4f65ee29c5.bin │ │ │ │ ├── a08a6baa5f03ac1f288c02f9aa8a484ed4a6be0e.bin │ │ │ │ ├── d7968aa0b348df54ba9b461874f1501b66f77109.jpg │ │ │ │ └── root.bundle │ │ ├── HtmlComponentHandler │ │ │ ├── HtmlComponentHandler-vtest.html │ │ │ ├── HtmlComponentHandler-vtest.js │ │ │ └── root.bundle │ │ └── crunch │ │ │ ├── CrunchLoader-vtest.html │ │ │ └── CrunchLoader-vtest.js │ ├── math │ │ ├── FromAngleNormalAxis │ │ │ ├── FromAngleNormalAxis-vtest.html │ │ │ └── FromAngleNormalAxis-vtest.js │ │ ├── LookAt │ │ │ ├── LookAt-vtest.html │ │ │ └── LookAt-vtest.js │ │ ├── Ray │ │ │ ├── RayIntersectsPlane-vtest.html │ │ │ └── RayIntersectsPlane-vtest.js │ │ ├── Spline │ │ │ ├── Spline-vtest.html │ │ │ └── Spline-vtest.js │ │ └── SplineWalker │ │ │ ├── SplineWalker-vtest.html │ │ │ └── SplineWalker-vtest.js │ ├── misc │ │ ├── BillboardShader │ │ │ ├── BillboardShader-vtest.html │ │ │ └── BillboardShader-vtest.js │ │ ├── CombinedIndexModes │ │ │ ├── CombinedIndexModes-vtest.html │ │ │ └── CombinedIndexModes-vtest.js │ │ ├── FlatwaterAndParticles │ │ │ ├── FlatwaterAndParticles-vtest.html │ │ │ └── FlatwaterAndParticles-vtest.js │ │ ├── GooDestroy │ │ │ ├── GooDestroy-vtest.html │ │ │ └── GooDestroy-vtest.js │ │ ├── GooToImage │ │ │ ├── GooToImage-vtest.html │ │ │ └── GooToImage-vtest.js │ │ ├── IndexModes │ │ │ ├── IndexModes-vtest.html │ │ │ └── IndexModes-vtest.js │ │ ├── ParticleLib │ │ │ ├── ParticleLib-vtest.html │ │ │ └── ParticleLib-vtest.js │ │ ├── PickSync │ │ │ ├── PickSync-vtest.html │ │ │ └── PickSync-vtest.js │ │ ├── PickingEvents │ │ │ ├── PickingEvents-vtest.html │ │ │ └── PickingEvents-vtest.js │ │ └── RestoreContext │ │ │ ├── RestoreContext-vtest.html │ │ │ └── RestoreContext-vtest.js │ ├── particles │ │ ├── ParticleInfluence-vtest.html │ │ └── ParticleInfluence-vtest.js │ ├── passpack │ │ └── BloomPass │ │ │ ├── BloomPass-vtest.html │ │ │ └── BloomPass-vtest.js │ ├── quadpack │ │ ├── DoubleQuad │ │ │ ├── DoubleQuad-vtest.html │ │ │ └── DoubleQuad-vtest.js │ │ └── QuadComponent │ │ │ ├── QuadComponent-vtest.html │ │ │ └── QuadComponent-vtest.js │ ├── renderer │ │ ├── BufferSubData │ │ │ ├── BufferSubData-vtest.html │ │ │ └── BufferSubData-vtest.js │ │ ├── DeIndex │ │ │ ├── DeIndex-vtest.html │ │ │ └── DeIndex-vtest.js │ │ ├── Material │ │ │ ├── DepthFunc-vtest.html │ │ │ └── DepthFunc-vtest.js │ │ ├── RenderTarget │ │ │ ├── RenderTarget-vtest.html │ │ │ └── RenderTarget-vtest.js │ │ ├── UberShader │ │ │ ├── AmbientTest-vtest.html │ │ │ └── AmbientTest-vtest.js │ │ ├── WorldPickCoords │ │ │ ├── WorldPickCoordinates-vtest.html │ │ │ └── WorldPickCoordinates-vtest.js │ │ ├── bounds │ │ │ ├── BoundingBox │ │ │ │ ├── BoundingBox-computeFromPoints-vtest.html │ │ │ │ ├── BoundingBox-computeFromPoints-vtest.js │ │ │ │ ├── BoundingBox-merge-with-BoundingBox-vtest.html │ │ │ │ ├── BoundingBox-merge-with-BoundingBox-vtest.js │ │ │ │ ├── BoundingBox-merge-with-BoundingSphere-vtest.html │ │ │ │ └── BoundingBox-merge-with-BoundingSphere-vtest.js │ │ │ └── BoundingSphere │ │ │ │ ├── BoundingSphere-computeFromPoints-vtest.html │ │ │ │ ├── BoundingSphere-computeFromPoints-vtest.js │ │ │ │ ├── BoundingSphere-merge-with-BoundingBox-vtest.html │ │ │ │ └── BoundingSphere-merge-with-BoundingBox-vtest.js │ │ ├── light │ │ │ ├── Lights-vtest.html │ │ │ ├── Lights-vtest.js │ │ │ ├── Shadowmaps-vtest.html │ │ │ ├── Shadowmaps-vtest.js │ │ │ ├── Simpleshadows-vtest.html │ │ │ └── Simpleshadows-vtest.js │ │ └── texture │ │ │ ├── AnisotropicFiltering │ │ │ ├── Anisotropic-vtest.html │ │ │ └── Anisotropic-vtest.js │ │ │ ├── CubeMaps │ │ │ ├── Cubemap-vtest.html │ │ │ └── Cubemap-vtest.js │ │ │ ├── NPOT │ │ │ ├── NPOT-vtest.html │ │ │ └── NPOT-vtest.js │ │ │ ├── Normalmap │ │ │ ├── Normalmap-vtest.html │ │ │ └── Normalmap-vtest.js │ │ │ └── WebCam │ │ │ ├── WebCam-vtest.html │ │ │ └── WebCam-vtest.js │ ├── scripts │ │ ├── ButtonScript │ │ │ ├── ButtonScript.html │ │ │ └── ButtonScript.js │ │ ├── FPCamControlScript │ │ │ ├── FPCamControlScript-vtest.html │ │ │ └── FPCamControlScript-vtest.js │ │ ├── GroundBoundMovementScript │ │ │ ├── GroundBoundMovementScript-vtest.html │ │ │ └── GroundBoundMovementScript-vtest.js │ │ ├── HeightMapBoundingScript │ │ │ ├── HeightMapBoundingScript-vtest.html │ │ │ └── HeightMapBoundingScript-vtest.js │ │ ├── KeepOnYControlScript │ │ │ ├── KeepOnY-script.html │ │ │ └── KeepOnY-script.js │ │ ├── LensFlareScript │ │ │ ├── LensFlareScript-vtest.html │ │ │ └── LensFlareScript-vtest.js │ │ ├── OrbitCamControlScript │ │ │ ├── OrbitCam-script.html │ │ │ └── OrbitCam-script.js │ │ ├── OrbitNPanControlScript │ │ │ ├── OrbitNPanControlScript-vtest.html │ │ │ └── OrbitNPanControlScript-vtest.js │ │ ├── PanCamControlScript │ │ │ ├── PanCamControlScript.html │ │ │ └── PanCamControlScript.js │ │ ├── PickAndRotateControlScript │ │ │ ├── PickAndRotate-script.html │ │ │ └── PickAndRotate-script.js │ │ ├── SparseHeightMapBoundingScript │ │ │ ├── SparseHeightMapBoundingScript-vtest.html │ │ │ └── SparseHeightMapBoundingScript-vtest.js │ │ ├── WASDControlScript │ │ │ ├── WASD-script.html │ │ │ └── WASD-script.js │ │ └── WorldFittedTerrainScript │ │ │ ├── WorldFittedTerrainScript-vtest.html │ │ │ └── WorldFittedTerrainScript-vtest.js │ ├── shapes │ │ ├── Box │ │ │ ├── Box-vtest.html │ │ │ └── Box-vtest.js │ │ ├── Cone │ │ │ ├── Cone-vtest.html │ │ │ └── Cone-vtest.js │ │ ├── Cylinder │ │ │ ├── Cylinder-vtest.html │ │ │ └── Cylinder-vtest.js │ │ ├── Disk │ │ │ ├── Disk-vtest.html │ │ │ └── Disk-vtest.js │ │ └── Sphere │ │ │ ├── Sphere-vtest.html │ │ │ └── Sphere-vtest.js │ ├── timelinepack │ │ ├── TimelineComponent │ │ │ ├── TimelineComponent-vtest.html │ │ │ └── TimelineComponent-vtest.js │ │ └── TimelineComponentHandler │ │ │ ├── TimelineComponentHandler-vtest.html │ │ │ ├── TimelineComponentHandler-vtest.js │ │ │ └── root.bundle │ └── util │ │ ├── EntityCombiner │ │ ├── EntityCombiner-vtest.html │ │ └── EntityCombiner-vtest.js │ │ ├── GameUtils │ │ ├── GameUtils-vtest.html │ │ └── GameUtils-vtest.js │ │ ├── MeshBuilder │ │ ├── MeshBuilder-vtest.html │ │ └── MeshBuilder-vtest.js │ │ ├── Skybox │ │ ├── Skybox-vtest.html │ │ └── Skybox-vtest.js │ │ └── TransformGizmos │ │ ├── TransformGizmos-vtest.html │ │ └── TransformGizmos-vtest.js ├── index.html ├── lib │ ├── Calligraffiti.ttf │ ├── RNG.js │ ├── Roboto-Black.ttf │ ├── V.js │ ├── dat.gui.min.js │ ├── opentype.js │ ├── poly2tri.min.js │ ├── purl.js │ └── vtest.js ├── panel │ ├── index.html │ ├── panel.js │ └── style.css ├── resources │ ├── Pot_Diffuse.crn │ ├── Pot_Diffuse.dds │ ├── check-alt.png │ ├── check.png │ ├── check.tga │ ├── checker_4x4.png │ ├── checker_slope.png │ ├── collectedBottles_diffuse_1024.crn │ ├── collectedBottles_diffuse_1024.dds │ ├── cone.png │ ├── cylinder.png │ ├── flare.png │ ├── font.png │ ├── goo.png │ ├── heightmap.png │ ├── heightmap_small.png │ ├── heightmap_walled.png │ ├── sfx1.wav │ ├── sfx2.wav │ ├── sintel.mp4 │ ├── sintel.ogv │ ├── skybox_2048.jpg │ ├── unfolded.png │ └── waternormals3.png ├── stress │ ├── manyboxes │ │ ├── manyboxes.html │ │ └── manyboxes.js │ ├── particles │ │ ├── particles.html │ │ └── particles.js │ └── transforms │ │ ├── transforms.html │ │ └── transforms.js └── style.css └── webpack.records.json /.eslintignore: -------------------------------------------------------------------------------- 1 | lib/polyk.js 2 | src/goo/*pack/*pack.js -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | .idea 4 | 5 | out-tern/ 6 | out-doc/ 7 | src-preprocessed/ 8 | 9 | # Created when running karma unittests 10 | coverage/ 11 | 12 | # Created when minifying 13 | src/goo.js 14 | 15 | # Created when minifying packs 16 | # AT: src/**/*pack/*pack.js will not work 17 | src/goo/*pack/*pack.js 18 | src/goo/*/*pack/*pack.js 19 | 20 | # Generated by grunt examplestoc 21 | examples/index.html 22 | 23 | # generated screenshots 24 | # NB! reference screenshots need to be included 25 | test/e2etesting/screenshots-tmp/ 26 | 27 | new_engine.sh -------------------------------------------------------------------------------- /CI: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | # 3 | # Continuous integration script 4 | # 5 | rm -rf node_modules 6 | 7 | npm config set registry https://registry.npmjs.org 8 | npm install --verbose 9 | ./tools/release.py $RELEASE_DIR $VERSION 10 | -------------------------------------------------------------------------------- /CT: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | # 3 | # Continuous test script (unit and e2e) 4 | # 5 | 6 | npm install 7 | grunt unittest # test # e2e will fail until I update the screenshots 8 | -------------------------------------------------------------------------------- /E2E: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export GOOJS_ROOT_URL=http\://127.0.0.1:8003/goojs 4 | export PATH=$PATH:/opt/google/chromedriver/ 5 | grunt shell:e2e -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- 1 | **What is an example?** 2 | 3 | A very simple scene showing possible use cases of some feature of the engine. 4 | 5 | **Any guidelines?** 6 | 7 | + Fully comment the sources - the main purpose of these examples is to serve as documentation. 8 | + Don't use too many external libraries 9 | + Don't use V.js - it does a lot more than you need for a simple example; it also hides a lot from the user and they would eventually start using V themselves which is not what we want -------------------------------------------------------------------------------- /examples/goo/entities/Entity/Entity-attributes-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Entity attributes test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/goo/entities/Entity/Entity-set-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Entity filtering test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/goo/entities/Entity/Entity-tags-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Entity tags test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/goo/entities/Entity/Entity-transform-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Entity transform test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/goo/entities/Entity/Entity-traverse-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Entity filtering test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/goo/entities/Entity/Entity-traverseUp-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Entity filtering test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/goo/entities/EntitySelection/EntitySelection-children-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Entity filtering test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/goo/entities/EntitySelection/EntitySelection-parent-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Entity filtering test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/goo/entities/EntitySelection/EntitySelection-parent-example.js: -------------------------------------------------------------------------------- 1 | goo.V.attachToGlobal(); 2 | 3 | var gooRunner = new GooRunner(); 4 | 5 | gooRunner.renderer.domElement.id = 'goo'; 6 | document.body.appendChild(gooRunner.renderer.domElement); 7 | 8 | // --- 9 | var world = gooRunner.world; 10 | 11 | var child11 = world.createEntity('child11'); 12 | var child12 = world.createEntity('child12'); 13 | 14 | var parent1 = world.createEntity('parent1').attachChild(child11).attachChild(child12); 15 | 16 | 17 | var child21 = world.createEntity('child21'); 18 | var parent2 = world.createEntity('parent2').attachChild(child21); 19 | 20 | 21 | var parents = new EntitySelection(child11, child12, child21).parent(); 22 | 23 | console.log('Parents', parents.get().map(function (entity) { return entity.name; })); 24 | -------------------------------------------------------------------------------- /examples/goo/entities/EntitySelection/EntitySelection-setOps-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Entity filtering test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/goo/entities/components/MeshDataComponent/MeshDataComponent-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mesh Data component test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/goo/entities/components/MeshRendererComponent/MeshRendererComponent-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mesh Renderer Component test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /examples/resources/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/examples/resources/check.png -------------------------------------------------------------------------------- /examples/style.css: -------------------------------------------------------------------------------- 1 | @import url(http://fonts.googleapis.com/css?family=Roboto:300); 2 | 3 | html, body { 4 | margin: 0; 5 | padding: 0; 6 | } 7 | 8 | body { 9 | background: #212326; 10 | font-family: 'Roboto', sans-serif; 11 | font-size: 18px; 12 | color: white; 13 | } 14 | 15 | a { 16 | color: #38b3f6; 17 | text-decoration: none; 18 | } 19 | 20 | a:hover { 21 | color: white; 22 | } 23 | 24 | ul { 25 | padding: 0; 26 | padding-left: 30px; 27 | line-height: 1.6em; 28 | list-style-type: lower-greek; 29 | } 30 | 31 | h1 { 32 | margin: 0 0 30px 0; 33 | font-size: 60px; 34 | font-weight: 300; 35 | } 36 | 37 | .container { 38 | width: 90%; 39 | max-width: 960px; 40 | margin: 0 auto; 41 | padding: 60px; 42 | } -------------------------------------------------------------------------------- /lib/ammopack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the ammopack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpack and configure require.js. 8 | //! AT: ??? 9 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/ammopack'; 12 | console.log('Configuring require to load ammopack modules from', path); 13 | require.config({ 14 | paths: { 15 | 'addons/ammopack': path 16 | } 17 | }); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /lib/animationpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the animationPack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpacck and configure require.js. 8 | //! AT: ??? 9 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/addons/animationpack'; 12 | console.log('Configuring require to load animationpack modules from', path); 13 | require.config({ 14 | paths: { 15 | 'addons/animationpack': path 16 | } 17 | }); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /lib/box2dpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the Box2DPack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpack and configure require.js. 8 | //! AT: ??? 9 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/box2dpack'; 12 | console.log('Configuring require to load box2dpack modules from', path); 13 | require.config({ 14 | paths: { 15 | 'addons/box2dpack': path 16 | } 17 | }); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /lib/cannonpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the p2Pack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function () { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpack and configure require.js. 8 | //! AT: ??? 9 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/addons/cannonpack'; 12 | console.log('Configuring require to load cannonpack modules from', path); 13 | require.config({ 14 | paths: { 15 | 'addons/cannonpack': path 16 | } 17 | }); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /lib/debugpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the debugpack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/debugpack and configure require.js. 8 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 9 | if (location != window.location) { 10 | var path = location + 'src/debugpack'; 11 | console.log('Configuring require to load debugpack modules from', path); 12 | require.config({ 13 | paths: { 14 | 'debugpack': path 15 | } 16 | }); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /lib/fsmpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the FSMPack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpack and configure require.js. 8 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 9 | if (location != window.location) { 10 | var path = location + 'src/fsmpack'; 11 | console.log('Configuring require to load fsmpack modules from', path); 12 | require.config({ 13 | paths: { 14 | 'fsmpack': path 15 | } 16 | }); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /lib/gamepadpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the gamepadPack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/gamepadpack and configure require.js. 8 | //! AT: ??? 9 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/addons/gamepadpack'; 12 | console.log('Configuring require to load gamepadpack modules from', path); 13 | require.config({ 14 | paths: { 15 | 'addons/gamepadpack': path 16 | } 17 | }); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /lib/geometrypack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the GeometryPack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpack and configure require.js. 8 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 9 | if (location != window.location) { 10 | var path = location + 'src/geometrypack'; 11 | console.log('Configuring require to load geometrypack modules from', path); 12 | require.config({ 13 | paths: { 14 | 'geometrypack': path 15 | } 16 | }); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /lib/gizmopack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the gizmoPack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpack and configure require.js. 8 | //! AT: ??? 9 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/util/gizmopack'; 12 | console.log('Configuring require to load gizmopack modules from', path); 13 | require.config({ 14 | paths: { 15 | 'util/gizmopack': path 16 | } 17 | }); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /lib/goo.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load Goo Engine from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/goo and configure require.js. 8 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 9 | location = location.replace(/examples\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/goo'; 12 | console.log('Configuring require to load goo modules from', path); 13 | require.config({ 14 | paths: { 15 | 'goo': path, 16 | 'lib': location + 'visual-test/lib' 17 | } 18 | }); 19 | } 20 | })(); 21 | -------------------------------------------------------------------------------- /lib/linerenderpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the linerenderpack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpack and configure require.js. 8 | //! AT: ??? 9 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/addons/linerenderpack'; 12 | console.log('Configuring require to load linerenderpack modules from', path); 13 | require.config({ 14 | paths: { 15 | 'linerenderpack': path 16 | } 17 | }); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /lib/p2pack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the p2Pack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpack and configure require.js. 8 | //! AT: ??? 9 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/addons/p2pack'; 12 | console.log('Configuring require to load p2pack modules from', path); 13 | require.config({ 14 | paths: { 15 | 'addons/p2pack': path 16 | } 17 | }); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /lib/particlepack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the particlepack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function () { 6 | 'use strict'; 7 | 8 | // If the page is one of the visual tests, 9 | // find the URL of src/particlepack and configure require.js. 10 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 11 | if (location !== window.location) { 12 | var path = location + 'src/addons/particlepack'; 13 | console.log('Configuring require to load particlepack modules from', path); 14 | require.config({ 15 | paths: { 16 | 'particlepack': path 17 | } 18 | }); 19 | } 20 | })(); 21 | -------------------------------------------------------------------------------- /lib/passpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the passpack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/passpack and configure require.js. 8 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 9 | if (location != window.location) { 10 | var path = location + 'src/passpack'; 11 | console.log('Configuring require to load passpack modules from', path); 12 | require.config({ 13 | paths: { 14 | 'passpack': path 15 | } 16 | }); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /lib/physicspack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the physicspack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function () { 6 | 'use strict'; 7 | 8 | // If the page is one of the visual tests, 9 | // find the URL of src/physicspack and configure require.js. 10 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 11 | if (location !== window.location) { 12 | var path = location + 'src/addons/physicspack'; 13 | console.log('Configuring require to load physicspack modules from', path); 14 | require.config({ 15 | paths: { 16 | 'physicspack': path 17 | } 18 | }); 19 | } 20 | })(); 21 | -------------------------------------------------------------------------------- /lib/quadpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the quadpack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/quadpack and configure require.js. 8 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 9 | if (location != window.location) { 10 | var path = location + 'src/quadpack'; 11 | console.log('Configuring require to load quadpack modules from', path); 12 | require.config({ 13 | paths: { 14 | 'quadpack': path 15 | } 16 | }); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /lib/scriptpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the scriptpack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/scriptpack and configure require.js. 8 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 9 | if (location != window.location) { 10 | var path = location + 'src/scriptpack'; 11 | console.log('Configuring require to load scriptpack modules from', path); 12 | require.config({ 13 | paths: { 14 | 'scriptpack': path 15 | } 16 | }); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /lib/soundmanager2/swf/soundmanager2.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/lib/soundmanager2/swf/soundmanager2.swf -------------------------------------------------------------------------------- /lib/soundmanager2/swf/soundmanager2_debug.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/lib/soundmanager2/swf/soundmanager2_debug.swf -------------------------------------------------------------------------------- /lib/soundmanager2/swf/soundmanager2_flash9.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/lib/soundmanager2/swf/soundmanager2_flash9.swf -------------------------------------------------------------------------------- /lib/soundmanager2/swf/soundmanager2_flash9_debug.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/lib/soundmanager2/swf/soundmanager2_flash9_debug.swf -------------------------------------------------------------------------------- /lib/soundmanager2/swf/soundmanager2_flash_xdomain.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/lib/soundmanager2/swf/soundmanager2_flash_xdomain.zip -------------------------------------------------------------------------------- /lib/terrainpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the terrainpack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/terrainpack and configure require.js. 8 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 9 | if (location != window.location) { 10 | var path = location + 'src/terrainpack'; 11 | console.log('Configuring require to load terrainpack modules from', path); 12 | require.config({ 13 | paths: { 14 | 'terrainpack': path 15 | } 16 | }); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /lib/timelinepack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the timelinepack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/timelinepack and configure require.js. 8 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 9 | if (location != window.location) { 10 | var path = location + 'src/timelinepack'; 11 | console.log('Configuring require to load timelinepack modules from', path); 12 | require.config({ 13 | paths: { 14 | 'timelinepack': path 15 | } 16 | }); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /lib/waterpack.js: -------------------------------------------------------------------------------- 1 | /* 2 | Configures require.js to load the waterPack from unconcatenated module files. 3 | Used during development. 4 | */ 5 | (function() { 6 | // If the page is one of the visual tests, 7 | // find the URL of src/fsmpack and configure require.js. 8 | //! AT: ??? 9 | var location = window.location.href.replace(/visual-test\/.*$/, ''); 10 | if (location != window.location) { 11 | var path = location + 'src/addons/waterpack'; 12 | console.log('Configuring require to load waterpack modules from', path); 13 | require.config({ 14 | paths: { 15 | 'addons/waterpack': path 16 | } 17 | }); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /spec/support/jasmine.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec_dir": "", 3 | "spec_files": [ 4 | "test/unit/{animationpack,entities,math,noise,particles,picking,quadpack,scripts,shapes,timelinepack}/*.js", 5 | "test/unit/{animationpack,debugpack,entities,fsmpack}/**/*.js" 6 | ], 7 | "helpers": [ 8 | "helpers/**/*.js" 9 | ], 10 | "stopSpecOnExpectationFailure": false, 11 | "random": false 12 | } 13 | -------------------------------------------------------------------------------- /src/goo/addons/ammopack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | AmmoComponent: require('./AmmoComponent'), 3 | AmmoSystem: require('./AmmoSystem'), 4 | calculateTriangleMeshShape: require('./calculateTriangleMeshShape') 5 | }; 6 | if (typeof(window) !== 'undefined') { 7 | for (var key in module.exports) { 8 | window.goo[key] = module.exports[key]; 9 | } 10 | } -------------------------------------------------------------------------------- /src/goo/addons/box2dpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | Box2DComponent: require('./components/Box2DComponent'), 3 | Box2DSystem: require('./systems/Box2DSystem') 4 | }; 5 | if (typeof(window) !== 'undefined') { 6 | for (var key in module.exports) { 7 | window.goo[key] = module.exports[key]; 8 | } 9 | } -------------------------------------------------------------------------------- /src/goo/addons/cannonpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | CannonBoxColliderComponent: require('./CannonBoxColliderComponent'), 3 | CannonCylinderColliderComponent: require('./CannonCylinderColliderComponent'), 4 | CannonDistanceJointComponent: require('./CannonDistanceJointComponent'), 5 | CannonPlaneColliderComponent: require('./CannonPlaneColliderComponent'), 6 | CannonRigidbodyComponent: require('./CannonRigidbodyComponent'), 7 | CannonSphereColliderComponent: require('./CannonSphereColliderComponent'), 8 | CannonSystem: require('./CannonSystem'), 9 | CannonTerrainColliderComponent: require('./CannonTerrainColliderComponent') 10 | }; 11 | if (typeof(window) !== 'undefined') { 12 | for (var key in module.exports) { 13 | window.goo[key] = module.exports[key]; 14 | } 15 | } -------------------------------------------------------------------------------- /src/goo/addons/gamepadpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | GamepadComponent: require('./GamepadComponent'), 3 | GamepadData: require('./GamepadData'), 4 | GamepadSystem: require('./GamepadSystem') 5 | }; 6 | if (typeof(window) !== 'undefined') { 7 | for (var key in module.exports) { 8 | window.goo[key] = module.exports[key]; 9 | } 10 | } -------------------------------------------------------------------------------- /src/goo/addons/linerenderpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | LineRenderer: require('./LineRenderer'), 3 | LineRenderSystem: require('./LineRenderSystem') 4 | }; 5 | 6 | if (typeof(window) !== 'undefined') { 7 | for (var key in module.exports) { 8 | window.goo[key] = module.exports[key]; 9 | } 10 | } -------------------------------------------------------------------------------- /src/goo/addons/p2pack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | P2Component: require('./P2Component'), 3 | P2System: require('./P2System') 4 | }; 5 | 6 | if (typeof(window) !== 'undefined') { 7 | for (var key in module.exports) { 8 | window.goo[key] = module.exports[key]; 9 | } 10 | } -------------------------------------------------------------------------------- /src/goo/addons/physicspack/PhysicsMaterial.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {Object} [settings] 3 | * @param {number} [settings.friction=0.3] 4 | * @param {number} [settings.restitution=0] 5 | */ 6 | function PhysicsMaterial(settings) { 7 | settings = settings || {}; 8 | 9 | /** 10 | * The friction coefficient. Multiplication is used to combine two friction values. 11 | * @type {number} 12 | */ 13 | this.friction = settings.friction !== undefined ? settings.friction : 0.3; 14 | 15 | /** 16 | * The "bounciness" of the collider. 17 | * @type {number} 18 | */ 19 | this.restitution = settings.restitution !== undefined ? settings.restitution : 0; 20 | } 21 | 22 | module.exports = PhysicsMaterial; 23 | -------------------------------------------------------------------------------- /src/goo/addons/physicspack/colliders/Collider.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Base class for Colliders. 3 | */ 4 | function Collider() {} 5 | 6 | /** 7 | * @virtual 8 | * @returns {Collider} 9 | */ 10 | Collider.prototype.clone = function () { 11 | return new Collider(); 12 | }; 13 | 14 | /** 15 | * @private 16 | * @virtual 17 | * @param {Transform} transform 18 | * @param {Collider} targetCollider 19 | */ 20 | Collider.prototype.transform = function (/*transform, targetCollider*/) {}; 21 | 22 | module.exports = Collider; 23 | -------------------------------------------------------------------------------- /src/goo/addons/physicspack/colliders/PlaneCollider.js: -------------------------------------------------------------------------------- 1 | var Collider = require('../../../addons/physicspack/colliders/Collider'); 2 | 3 | /** 4 | * Plane collider, that faces in the Z direction. 5 | * @extends Collider 6 | */ 7 | function PlaneCollider() { 8 | Collider.call(this); 9 | } 10 | PlaneCollider.prototype = Object.create(Collider.prototype); 11 | PlaneCollider.prototype.constructor = PlaneCollider; 12 | 13 | /** 14 | * @private 15 | * @param {Transform} transform 16 | * @param {Collider} targetCollider 17 | */ 18 | PlaneCollider.prototype.transform = function (/*transform, targetCollider*/) {}; 19 | 20 | /** 21 | * @returns {PlaneCollider} 22 | */ 23 | PlaneCollider.prototype.clone = function () { 24 | return new PlaneCollider(); 25 | }; 26 | 27 | module.exports = PlaneCollider; 28 | -------------------------------------------------------------------------------- /src/goo/addons/physicspack/joints/PhysicsJoint.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Base class for physics joints, for example hinge or balljoint. 3 | * @param {Object} [settings] 4 | * @param {Entity} [settings.connectedEntity] 5 | * @param {boolean} [settings.collideConnected=false] 6 | */ 7 | function PhysicsJoint(settings) { 8 | settings = settings || {}; 9 | 10 | /** 11 | * The entity connected 12 | * @type {Entity} 13 | */ 14 | this.connectedEntity = settings.connectedEntity || null; 15 | 16 | /** 17 | * Indicates if the connected entities should collide. 18 | * @type {boolean} 19 | */ 20 | this.collideConnected = settings.collideConnected !== undefined ? settings.collideConnected : false; 21 | } 22 | 23 | module.exports = PhysicsJoint; 24 | -------------------------------------------------------------------------------- /src/goo/addons/soundmanager2pack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SoundManager2Component: require('./components/SoundManager2Component'), 3 | SoundManager2System: require('./systems/SoundManager2System') 4 | }; 5 | 6 | if (typeof(window) !== 'undefined') { 7 | for (var key in module.exports) { 8 | window.goo[key] = module.exports[key]; 9 | } 10 | } -------------------------------------------------------------------------------- /src/goo/addons/terrainpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | Forrest: require('./Forrest'), 3 | Terrain: require('./Terrain'), 4 | TerrainHandler: require('./TerrainHandler'), 5 | TerrainSurface: require('./TerrainSurface'), 6 | Vegetation: require('./Vegetation') 7 | }; 8 | if (typeof(window) !== 'undefined') { 9 | for (var key in module.exports) { 10 | window.goo[key] = module.exports[key]; 11 | } 12 | } -------------------------------------------------------------------------------- /src/goo/addons/waterpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | FlatWaterRenderer: require('./FlatWaterRenderer'), 3 | ProjectedGrid: require('./ProjectedGrid'), 4 | ProjectedGridWaterRenderer: require('./ProjectedGridWaterRenderer') 5 | }; 6 | if (typeof(window) !== 'undefined') { 7 | for (var key in module.exports) { 8 | window.goo[key] = module.exports[key]; 9 | } 10 | } -------------------------------------------------------------------------------- /src/goo/animationpack/Joint.js: -------------------------------------------------------------------------------- 1 | var Transform = require('../math/Transform'); 2 | 3 | /** 4 | * Representation of a Joint in a Skeleton. Meant to be used within a specific Skeleton object. 5 | * @param {string} name Name of joint 6 | */ 7 | function Joint(name) { 8 | this._name = name; 9 | 10 | this._index = 0; 11 | this._parentIndex = Joint.NO_PARENT; 12 | this._inverseBindPose = new Transform(); 13 | } 14 | 15 | Joint.NO_PARENT = -32768; 16 | 17 | module.exports = Joint; -------------------------------------------------------------------------------- /src/goo/animationpack/handlers/AnimationHandlers.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | AnimationClipHandler: require('../../animationpack/handlers/AnimationClipHandler'), 3 | AnimationComponentHandler: require('../../animationpack/handlers/AnimationComponentHandler'), 4 | AnimationLayersHandler: require('../../animationpack/handlers/AnimationLayersHandler'), 5 | AnimationStateHandler: require('../../animationpack/handlers/AnimationStateHandler'), 6 | SkeletonHandler: require('../../animationpack/handlers/SkeletonHandler') 7 | }; -------------------------------------------------------------------------------- /src/goo/animationpack/state/AbstractState.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Base class for a state in our animation system 3 | * @private 4 | */ 5 | function AbstractState() { 6 | this._globalStartTime = 0; 7 | this.onFinished = null; 8 | } 9 | 10 | AbstractState.prototype.update = function () {}; 11 | AbstractState.prototype.postUpdate = function () {}; 12 | AbstractState.prototype.getCurrentSourceData = function () {}; 13 | 14 | AbstractState.prototype.resetClips = function (globalTime) { 15 | this._globalStartTime = globalTime; 16 | }; 17 | 18 | AbstractState.prototype.shiftClipTime = function (shiftTime) { 19 | this._globalStartTime += shiftTime; 20 | }; 21 | 22 | module.exports = AbstractState; -------------------------------------------------------------------------------- /src/goo/debugpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | BoundingVolumeMeshBuilder: require('./BoundingVolumeMeshBuilder'), 3 | MarkerComponent: require('./components/MarkerComponent'), 4 | DebugDrawHelper: require('./DebugDrawHelper'), 5 | Debugger: require('./Debugger'), 6 | EntityCounter: require('./EntityCounter'), 7 | CameraDebug: require('./shapes/CameraDebug'), 8 | LightDebug: require('./shapes/LightDebug'), 9 | MeshRendererDebug: require('./shapes/MeshRendererDebug'), 10 | SkeletonDebug: require('./shapes/SkeletonDebug'), 11 | DebugRenderSystem: require('./systems/DebugRenderSystem'), 12 | MarkerSystem: require('./systems/MarkerSystem') 13 | }; 14 | if (typeof(window) !== 'undefined') { 15 | for (var key in module.exports) { 16 | window.goo[key] = module.exports[key]; 17 | } 18 | } -------------------------------------------------------------------------------- /src/goo/entities/SystemBus.js: -------------------------------------------------------------------------------- 1 | var Bus = require('./Bus'); 2 | 3 | /** 4 | * SystemBus is a global instance of the {@link Bus} class. 5 | * @target-class SystemBus SystemBus constructor 6 | * @require-pathvar SystemBus = require('../../entities/SystemBus'); 7 | * @group entities 8 | */ 9 | module.exports = new Bus(); 10 | -------------------------------------------------------------------------------- /src/goo/entities/managers/Manager.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Base class for managers. 3 | */ 4 | function Manager() { 5 | this.installedAPI = {}; 6 | } 7 | 8 | Manager.prototype.applyAPI = function (worldBy) { 9 | var api = this.api; 10 | for (var key in api) { 11 | if (typeof worldBy[key] === 'undefined') { 12 | worldBy[key] = api[key]; 13 | this.installedAPI[key] = true; 14 | } else { 15 | throw new Error('Could not install method ' + key + ' of ' + this.type + ' as it is already taken'); 16 | } 17 | } 18 | }; 19 | 20 | module.exports = Manager; -------------------------------------------------------------------------------- /src/goo/fsmpack/StateMachineHandlers.js: -------------------------------------------------------------------------------- 1 | require('./StateMachineComponentHandler'); 2 | require('./MachineHandler'); -------------------------------------------------------------------------------- /src/goo/fsmpack/statemachine/FSMUtil.js: -------------------------------------------------------------------------------- 1 | var FsmUtils = require('./FsmUtils'); 2 | 3 | module.exports = FsmUtils; -------------------------------------------------------------------------------- /src/goo/fsmpack/statemachine/actions/HideAction.js: -------------------------------------------------------------------------------- 1 | var Action = require('../../../fsmpack/statemachine/actions/Action'); 2 | 3 | function HideAction(/*id, settings*/) { 4 | Action.apply(this, arguments); 5 | } 6 | 7 | HideAction.prototype = Object.create(Action.prototype); 8 | HideAction.prototype.constructor = HideAction; 9 | 10 | HideAction.external = { 11 | key: 'Hide', 12 | name: 'Hide', 13 | type: 'display', 14 | description: 'Hides an entity and its children.', 15 | parameters: [], 16 | transitions: [] 17 | }; 18 | 19 | HideAction.prototype.enter = function (fsm) { 20 | var entity = fsm.getOwnerEntity(); 21 | entity.hide(); 22 | }; 23 | 24 | module.exports = HideAction; -------------------------------------------------------------------------------- /src/goo/fsmpack/statemachine/actions/MuteAction.js: -------------------------------------------------------------------------------- 1 | var Action = require('./Action'); 2 | 3 | function MuteAction(/*id, settings*/) { 4 | Action.apply(this, arguments); 5 | } 6 | MuteAction.prototype = Object.create(Action.prototype); 7 | MuteAction.prototype.constructor = MuteAction; 8 | 9 | MuteAction.external = { 10 | key: 'Mute sounds', 11 | name: 'Mute sounds', 12 | type: 'sound', 13 | description: 'Mute all sounds globally.', 14 | canTransition: false, 15 | parameters: [], 16 | transitions: [] 17 | }; 18 | 19 | MuteAction.prototype.enter = function (fsm) { 20 | var world = fsm.getWorld(); 21 | if (!world) { return; } 22 | 23 | var soundSystem = world.getSystem('SoundSystem'); 24 | if (soundSystem) { 25 | soundSystem.mute(); 26 | } 27 | }; 28 | 29 | module.exports = MuteAction; -------------------------------------------------------------------------------- /src/goo/fsmpack/statemachine/actions/ShowAction.js: -------------------------------------------------------------------------------- 1 | var Action = require('../../../fsmpack/statemachine/actions/Action'); 2 | 3 | function ShowAction(/*id, settings*/) { 4 | Action.apply(this, arguments); 5 | } 6 | 7 | ShowAction.prototype = Object.create(Action.prototype); 8 | ShowAction.prototype.constructor = ShowAction; 9 | 10 | ShowAction.external = { 11 | key: 'Show', 12 | name: 'Show', 13 | type: 'display', 14 | description: 'Makes an entity visible.', 15 | parameters: [], 16 | transitions: [] 17 | }; 18 | 19 | ShowAction.prototype.enter = function (fsm) { 20 | var entity = fsm.getOwnerEntity(); 21 | entity.show(); 22 | }; 23 | 24 | module.exports = ShowAction; -------------------------------------------------------------------------------- /src/goo/fsmpack/statemachine/actions/StopTimelineAction.js: -------------------------------------------------------------------------------- 1 | var Action = require('./Action'); 2 | 3 | function StopTimelineAction(/*id, settings*/) { 4 | Action.apply(this, arguments); 5 | } 6 | 7 | StopTimelineAction.prototype = Object.create(Action.prototype); 8 | StopTimelineAction.prototype.constructor = StopTimelineAction; 9 | 10 | StopTimelineAction.external = { 11 | key: 'Stop Timeline', 12 | name: 'Stop Timeline', 13 | type: 'timeline', 14 | description: 'Stops the timeline.', 15 | canTransition: true, 16 | parameters: [], 17 | transitions: [] 18 | }; 19 | 20 | StopTimelineAction.prototype.enter = function (fsm) { 21 | var entity = fsm.getOwnerEntity(); 22 | 23 | if (!entity.hasComponent('TimelineComponent')) { return; } 24 | 25 | entity.timelineComponent.stop(); 26 | }; 27 | 28 | module.exports = StopTimelineAction; -------------------------------------------------------------------------------- /src/goo/fsmpack/statemachine/actions/UnmuteAction.js: -------------------------------------------------------------------------------- 1 | var Action = require('./Action'); 2 | 3 | function UnmuteAction(/*id, settings*/) { 4 | Action.apply(this, arguments); 5 | } 6 | UnmuteAction.prototype = Object.create(Action.prototype); 7 | UnmuteAction.prototype.constructor = UnmuteAction; 8 | 9 | UnmuteAction.external = { 10 | key: 'Unmute sounds', 11 | name: 'Unmute sounds', 12 | type: 'sound', 13 | description: 'Unmute all sounds globally.', 14 | canTransition: false, 15 | parameters: [], 16 | transitions: [] 17 | }; 18 | 19 | UnmuteAction.prototype.enter = function (fsm) { 20 | var world = fsm.getWorld(); 21 | if (!world) { return; } 22 | 23 | var soundSystem = world.getSystem('SoundSystem'); 24 | if (soundSystem) { 25 | soundSystem.unmute(); 26 | } 27 | }; 28 | 29 | module.exports = UnmuteAction; -------------------------------------------------------------------------------- /src/goo/geometrypack/RegularPolygon.js: -------------------------------------------------------------------------------- 1 | var PolyLine = require('../geometrypack/PolyLine'); 2 | 3 | /** 4 | * Regular polygon mesh 5 | */ 6 | function RegularPolygon(nSegments, radius) { 7 | this.nSegments = nSegments || 5; 8 | this.radius = radius || 1; 9 | 10 | var verts = []; 11 | var ak = Math.PI * 2 / nSegments; 12 | for (var i = 0, k = 0; i < this.nSegments; i++, k += ak) { 13 | verts.push(Math.cos(k) * this.radius, Math.sin(k) * this.radius, 0); 14 | } 15 | 16 | PolyLine.call(this, verts, true); 17 | 18 | this.rebuild(); 19 | } 20 | 21 | RegularPolygon.prototype = Object.create(PolyLine.prototype); 22 | 23 | module.exports = RegularPolygon; -------------------------------------------------------------------------------- /src/goo/geometrypack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | FilledPolygon: require('./FilledPolygon'), 3 | PolyLine: require('./PolyLine'), 4 | RegularPolygon: require('./RegularPolygon'), 5 | Surface: require('./Surface'), 6 | TextComponent: require('./text/TextComponent'), 7 | TextComponentHandler: require('./text/TextComponentHandler'), 8 | TextMeshGenerator: require('./text/TextMeshGenerator'), 9 | Triangle: require('./Triangle') 10 | }; 11 | if (typeof(window) !== 'undefined') { 12 | for (var key in module.exports) { 13 | window.goo[key] = module.exports[key]; 14 | } 15 | } -------------------------------------------------------------------------------- /src/goo/math/Matrix2x2.js: -------------------------------------------------------------------------------- 1 | var Matrix2 = require('./Matrix2'); 2 | var ObjectUtils = require('../util/ObjectUtils'); 3 | 4 | var Matrix2x2 = ObjectUtils.warnOnce( 5 | 'Matrix2x2 has been renamed to Matrix2.', 6 | function () { 7 | Matrix2.apply(this, arguments); 8 | } 9 | ); 10 | 11 | Matrix2x2.prototype = Object.create(Matrix2.prototype); 12 | Matrix2x2.prototype.constructor = Matrix2x2; 13 | for (var x in Matrix2) { 14 | Matrix2x2[x] = Matrix2[x]; 15 | } 16 | 17 | module.exports = Matrix2x2; 18 | -------------------------------------------------------------------------------- /src/goo/math/Matrix3x3.js: -------------------------------------------------------------------------------- 1 | var Matrix3 = require('./Matrix3'); 2 | var ObjectUtils = require('../util/ObjectUtils'); 3 | 4 | var Matrix3x3 = ObjectUtils.warnOnce( 5 | 'Matrix3x3 has been renamed to Matrix3.', 6 | function () { 7 | Matrix3.apply(this, arguments); 8 | } 9 | ); 10 | 11 | Matrix3x3.prototype = Object.create(Matrix3.prototype); 12 | Matrix3x3.prototype.constructor = Matrix3x3; 13 | for (var x in Matrix3) { 14 | Matrix3x3[x] = Matrix3[x]; 15 | } 16 | 17 | module.exports = Matrix3x3; 18 | -------------------------------------------------------------------------------- /src/goo/math/Matrix4x4.js: -------------------------------------------------------------------------------- 1 | var Matrix4 = require('./Matrix4'); 2 | var ObjectUtils = require('../util/ObjectUtils'); 3 | 4 | var Matrix4x4 = ObjectUtils.warnOnce( 5 | 'Matrix4x4 has been renamed to Matrix4.', 6 | function () { 7 | Matrix4.apply(this, arguments); 8 | } 9 | ); 10 | 11 | Matrix4x4.prototype = Object.create(Matrix4.prototype); 12 | Matrix4x4.prototype.constructor = Matrix4x4; 13 | for (var x in Matrix4) { 14 | Matrix4x4[x] = Matrix4[x]; 15 | } 16 | 17 | module.exports = Matrix4x4; 18 | -------------------------------------------------------------------------------- /src/goo/passpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | BloomPass: require('./BloomPass'), 3 | BlurPass: require('./BlurPass'), 4 | DepthPass: require('./DepthPass'), 5 | DofPass: require('./DofPass'), 6 | DogPass: require('./DogPass'), 7 | MotionBlurPass: require('./MotionBlurPass'), 8 | PassLib: require('./PassLib'), 9 | PosteffectsHandler: require('./PosteffectsHandler'), 10 | ShaderLibExtra: require('./ShaderLibExtra'), 11 | SsaoPass: require('./SsaoPass') 12 | }; 13 | if (typeof(window) !== 'undefined') { 14 | for (var key in module.exports) { 15 | window.goo[key] = module.exports[key]; 16 | } 17 | } -------------------------------------------------------------------------------- /src/goo/quadpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | DoubleQuad: require('./DoubleQuad'), 3 | QuadComponent: require('./QuadComponent'), 4 | QuadComponentHandler: require('./QuadComponentHandler') 5 | }; 6 | if (typeof(window) !== 'undefined') { 7 | for (var key in module.exports) { 8 | window.goo[key] = module.exports[key]; 9 | } 10 | } -------------------------------------------------------------------------------- /src/goo/renderer/RenderStats.js: -------------------------------------------------------------------------------- 1 | function RenderStats() { 2 | this.reset(); 3 | } 4 | 5 | RenderStats.prototype.reset = function () { 6 | this.calls = 0; 7 | this.vertices = 0; 8 | this.indices = 0; 9 | }; 10 | 11 | RenderStats.prototype.toString = function () { 12 | return 'Calls: ' + this.calls + 13 | '
Vertices: ' + this.vertices + 14 | '
Indices: ' + this.indices; 15 | }; 16 | 17 | module.exports = RenderStats; -------------------------------------------------------------------------------- /src/goo/renderer/pass/FullscreenUtil.js: -------------------------------------------------------------------------------- 1 | var FullscreenUtils = require('../../renderer/pass/FullscreenUtils'); 2 | 3 | /** 4 | * Fullscreen-related utilities 5 | * @target-class FullscreenUtil FullscreenUtil constructor 6 | * @require-pathvar FullscreenUtil = require('../../renderer/pass/FullscreenUtil'); 7 | * @group renderer/pass 8 | * @deprecated Deprecated as of 0.14.x and scheduled for removal in 0.16.0; The class has been renamed to `goo/util/FullscreenUtils` 9 | */ 10 | module.exports = FullscreenUtils; -------------------------------------------------------------------------------- /src/goo/renderer/pass/FullscreenUtils.js: -------------------------------------------------------------------------------- 1 | var Quad = require('../../shapes/Quad'); 2 | var Camera = require('../../renderer/Camera'); 3 | var Vector3 = require('../../math/Vector3'); 4 | 5 | /** 6 | * Utility class with a default setup parallel camera and fullscreen quad for fullscreen pass usage 7 | */ 8 | function FullscreenUtils() {} 9 | 10 | var camera = new Camera(); 11 | camera.projectionMode = Camera.Parallel; 12 | camera.setFrustum(0, 1, -1, 1, 1, -1); 13 | camera._left.copy(Vector3.UNIT_X).negate(); 14 | camera._up.copy(Vector3.UNIT_Y); 15 | camera._direction.copy(Vector3.UNIT_Z); 16 | camera.onFrameChange(); 17 | FullscreenUtils.camera = camera; 18 | 19 | FullscreenUtils.quad = new Quad(2, 2); 20 | 21 | module.exports = FullscreenUtils; -------------------------------------------------------------------------------- /src/goo/renderer/pass/Pass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Base pass class 3 | */ 4 | function Pass() {} 5 | 6 | Pass.prototype.destroy = function (/* renderer */) {}; 7 | 8 | Pass.prototype.render = function (/* renderer, writeBuffer, readBuffer, delta, maskActive, camera, lights, clearColor */) {}; 9 | 10 | Pass.prototype.updateSize = function (/* size, renderer */) {}; 11 | 12 | Pass.prototype.invalidateHandles = function (/* renderer */) {}; 13 | 14 | module.exports = Pass; -------------------------------------------------------------------------------- /src/goo/scriptpack/ScriptHandlers.js: -------------------------------------------------------------------------------- 1 | require('./ScriptHandler'); 2 | require('./ScriptComponentHandler'); -------------------------------------------------------------------------------- /src/goo/scriptpack/ScriptRegister.js: -------------------------------------------------------------------------------- 1 | var Scripts = require('../scripts/Scripts'); 2 | 3 | var scripts = { 4 | OrbitCamControlScript: require('../scripts/OrbitCamControlScript'), 5 | OrbitNPanControlScript: require('./OrbitNPanControlScript'), 6 | FlyControlScript: require('./FlyControlScript'), 7 | AxisAlignedCamControlScript: require('./AxisAlignedCamControlScript'), 8 | PanCamScript: require('./PanCamScript'), 9 | MouseLookControlScript: require('./MouseLookControlScript'), 10 | WasdControlScript: require('./WasdControlScript'), 11 | ButtonScript: require('./ButtonScript'), 12 | PickAndRotateScript: require('./PickAndRotateScript'), 13 | LensFlareScript: require('./LensFlareScript') 14 | }; 15 | 16 | for (var key in scripts) { 17 | Scripts.register(scripts[key]); 18 | } 19 | -------------------------------------------------------------------------------- /src/goo/timelinepack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | AbstractTimelineChannel: require('./AbstractTimelineChannel'), 3 | EventChannel: require('./EventChannel'), 4 | TimelineComponent: require('./TimelineComponent'), 5 | TimelineComponentHandler: require('./TimelineComponentHandler'), 6 | TimelineSystem: require('./TimelineSystem'), 7 | ValueChannel: require('./ValueChannel') 8 | }; 9 | if (typeof(window) !== 'undefined') { 10 | for (var key in module.exports) { 11 | window.goo[key] = module.exports[key]; 12 | } 13 | } -------------------------------------------------------------------------------- /src/goo/util/ArrayUtil.js: -------------------------------------------------------------------------------- 1 | var ArrayUtils = require('../util/ArrayUtils'); 2 | 3 | 4 | /** 5 | * Array-related utilities 6 | * @target-class ArrayUtil ArrayUtil constructor 7 | * @require-pathvar ArrayUtil = require('../util/ArrayUtil'); 8 | * @group util 9 | * @deprecated Deprecated as of 0.14.x and scheduled for removal in 0.16.0; The class has been renamed to `goo/util/ArrayUtils` 10 | */ 11 | module.exports = ArrayUtils; 12 | -------------------------------------------------------------------------------- /src/goo/util/ObjectUtil.js: -------------------------------------------------------------------------------- 1 | var ObjectUtils = require('./ObjectUtils'); 2 | 3 | /** 4 | * Object-related utilities 5 | * @target-class ObjectUtil ObjectUtil constructor 6 | * @require-pathvar ObjectUtil = require('../util/ObjectUtil'); 7 | * @group util 8 | * @deprecated Deprecated as of 0.14.x and scheduled for removal in 0.16.0; The class has been renamed to `goo/util/ObjectUtils` 9 | */ 10 | module.exports = ObjectUtils; -------------------------------------------------------------------------------- /src/goo/util/PromiseUtil.js: -------------------------------------------------------------------------------- 1 | var PromiseUtils = require('../util/PromiseUtils'); 2 | 3 | /** 4 | * Promise-related utilities 5 | * @target-class PromiseUtil PromiseUtil constructor 6 | * @require-pathvar PromiseUtil = require('../util/PromiseUtil'); 7 | * @group util 8 | * @deprecated Deprecated as of 0.14.x and scheduled for removal in 0.16.0; The class has been renamed to `goo/util/PromiseUtils` 9 | */ 10 | module.exports = PromiseUtils; -------------------------------------------------------------------------------- /src/goo/util/StringUtil.js: -------------------------------------------------------------------------------- 1 | var StringUtils = require('../util/StringUtils'); 2 | 3 | /** 4 | * String-related utilities 5 | * @target-class StringUtil StringUtil constructor 6 | * @require-pathvar StringUtil = require('../util/StringUtil'); 7 | * @group util 8 | * @deprecated Deprecated as of 0.14.x and scheduled for removal in 0.16.0; The class has been renamed to `goo/util/StringUtils` 9 | */ 10 | module.exports = StringUtils; -------------------------------------------------------------------------------- /src/goo/util/combine/Rectangle.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Rectangle 3 | * @hidden 4 | * @param {number} x 5 | * @param {number} y 6 | * @param {number} w Width 7 | * @param {number} h Height 8 | */ 9 | function Rectangle(x, y, w, h) { 10 | this.x = x; 11 | this.y = y; 12 | this.w = w; 13 | this.h = h; 14 | } 15 | 16 | module.exports = Rectangle; -------------------------------------------------------------------------------- /src/goo/util/gizmopack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | Gizmo: require('./Gizmo'), 3 | GizmoRenderSystem: require('./GizmoRenderSystem'), 4 | GlobalRotationGizmo: require('./GlobalRotationGizmo'), 5 | GlobalTranslationGizmo: require('./GlobalTranslationGizmo'), 6 | RotationGizmo: require('./RotationGizmo'), 7 | ScaleGizmo: require('./ScaleGizmo'), 8 | TranslationGizmo: require('./TranslationGizmo') 9 | }; 10 | if (typeof(window) !== 'undefined') { 11 | for (var key in module.exports) { 12 | window.goo[key] = module.exports[key]; 13 | } 14 | } -------------------------------------------------------------------------------- /test/e2etesting/.gitignore: -------------------------------------------------------------------------------- 1 | # Temporary screenshots that are made when running the visual tests via jasmine 2 | screenshots-tmp 3 | -------------------------------------------------------------------------------- /test/e2etesting/README.md: -------------------------------------------------------------------------------- 1 | e2e tests 2 | ========= 3 | 4 | Generate reference screenshots with `grunt refs`. 5 | 6 | Run the screenshot comparator with `grunt e2e`. The image diffs for failed tests are found in the 7 | *screenshot-tmp/* folder. 8 | 9 | The e2e test runner will take screenshots of all *.html* files under *visual-test*. To add filters (to exclude files 10 | from testing) edit *filterList.js* - some visual-tests may be problematic against e2e testing (sound-related tests 11 | for example). 12 | 13 | To write or find more about visual tests please consult the appropriate *README.md*. -------------------------------------------------------------------------------- /test/e2etesting/conf.js: -------------------------------------------------------------------------------- 1 | // An example configuration file. 2 | exports.config = { 3 | // The address of a running selenium server. 4 | //seleniumAddress: 'http://localhost:4444/wd/hub' 5 | 6 | // Capabilities to be passed to the webdriver instance. 7 | capabilities: { 8 | browserName: 'chrome' 9 | }, 10 | 11 | // Spec patterns are relative to the current working directly when protractor is called. 12 | specs: ['specs/**/*.js'], 13 | 14 | // Options to be passed to Jasmine-node. 15 | jasmineNodeOpts: { 16 | showColors: true, 17 | defaultTimeoutInterval: 30000 // raise this value if loading times become a problem 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/Box2DComponent/Box2DComponent-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/Box2DComponent/Box2DComponent-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/Cannon/Cannon-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/Cannon/Cannon-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/Sound/Sound-spatial-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/Sound/Sound-spatial-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/Sound/Sound-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/Sound/Sound-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/Water/water-animation-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/Water/water-animation-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/Water/water-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/Water/water-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/ammopack/Ammo-vehicle-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/ammopack/Ammo-vehicle-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/ammopack/Ammo-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/ammopack/Ammo-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/p2/p2-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/p2/p2-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/particlepack/particle-bounds-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/particlepack/particle-bounds-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/particlepack/particle-emission-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/particlepack/particle-emission-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/particlepack/particle-getWorldPosition-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/particlepack/particle-getWorldPosition-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/addons/particlepack/particle-startPaused-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/addons/particlepack/particle-startPaused-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/debugpack/DebugRenderSystemCamera/DebugRenderSystemCamera-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/debugpack/DebugRenderSystemCamera/DebugRenderSystemCamera-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/debugpack/DebugRenderSystemLights/DebugRenderSystemLights-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/debugpack/DebugRenderSystemLights/DebugRenderSystemLights-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/debugpack/Debugger/Debugger-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/debugpack/Debugger/Debugger-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/CallbacksNextFrame/CallbacksNextFrame-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/CallbacksNextFrame/CallbacksNextFrame-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/Clone/Clone-light-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/Clone/Clone-light-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/Clone/Clone-lightComponent-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/Clone/Clone-lightComponent-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/Clone/Clone-material-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/Clone/Clone-material-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/Clone/Clone-meshData-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/Clone/Clone-meshData-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/Clone/Clone-meshRendererComponent-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/Clone/Clone-meshRendererComponent-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/Clone/Clone-shapes-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/Clone/Clone-shapes-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/Clone/Clone-texture-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/Clone/Clone-texture-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/components/TransformComponent/TransformComponent-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/components/TransformComponent/TransformComponent-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/entities/systems/PickingSystem-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/entities/systems/PickingSystem-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/fsmpack/LightSwitchGame/LightSwitchGame-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/fsmpack/LightSwitchGame/LightSwitchGame-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/fsmpack/MoveTheBoxGame/MoveTheBoxGame-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/fsmpack/MoveTheBoxGame/MoveTheBoxGame-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/fsmpack/PongGame/PongGame-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/fsmpack/PongGame/PongGame-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/geometrypack/FilledPolygon/FilledPolygon-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/geometrypack/FilledPolygon/FilledPolygon-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/geometrypack/Surface/Lathe-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/geometrypack/Surface/Lathe-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/math/LookAt/LookAt-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/math/LookAt/LookAt-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/misc/BillboardShader/BillboardShader-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/misc/BillboardShader/BillboardShader-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/misc/CombinedIndexModes/CombinedIndexModes-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/misc/CombinedIndexModes/CombinedIndexModes-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/misc/FlatwaterAndParticles/FlatwaterAndParticles-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/misc/FlatwaterAndParticles/FlatwaterAndParticles-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/misc/IndexModes/IndexModes-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/misc/IndexModes/IndexModes-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/misc/ParticleLib/ParticleLib-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/misc/ParticleLib/ParticleLib-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/misc/PickSync/PickSync-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/misc/PickSync/PickSync-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/misc/PickingEvents/PickingEvents-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/misc/PickingEvents/PickingEvents-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/passpack/BloomPass/BloomPass-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/passpack/BloomPass/BloomPass-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/quadpack/DoubleQuad/DoubleQuad-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/quadpack/DoubleQuad/DoubleQuad-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/quadpack/QuadComponent/QuadComponent-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/quadpack/QuadComponent/QuadComponent-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/BufferSubData/BufferSubData-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/BufferSubData/BufferSubData-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/DeIndex/DeIndex-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/DeIndex/DeIndex-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/Material/DepthFunc-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/Material/DepthFunc-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/RenderTarget/RenderTarget-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/RenderTarget/RenderTarget-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/UberShader/AmbientTest-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/UberShader/AmbientTest-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/bounds/BoundingBox/BoundingBox-computeFromPoints-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/bounds/BoundingBox/BoundingBox-computeFromPoints-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/bounds/BoundingBox/BoundingBox-merge-with-BoundingBox-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/bounds/BoundingBox/BoundingBox-merge-with-BoundingBox-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/bounds/BoundingBox/BoundingBox-merge-with-BoundingSphere-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/bounds/BoundingBox/BoundingBox-merge-with-BoundingSphere-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/bounds/BoundingSphere/BoundingSphere-computeFromPoints-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/bounds/BoundingSphere/BoundingSphere-computeFromPoints-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/bounds/BoundingSphere/BoundingSphere-merge-with-BoundingBox-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/bounds/BoundingSphere/BoundingSphere-merge-with-BoundingBox-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/light/Lights-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/light/Lights-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/light/Shadowmaps-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/light/Shadowmaps-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/light/Simpleshadows-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/light/Simpleshadows-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/texture/AnisotropicFiltering/Anisotropic-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/texture/AnisotropicFiltering/Anisotropic-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/renderer/texture/NPOT/NPOT-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/renderer/texture/NPOT/NPOT-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/shapes/Box/Box-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/shapes/Box/Box-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/shapes/Cone/Cone-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/shapes/Cone/Cone-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/shapes/Cylinder/Cylinder-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/shapes/Cylinder/Cylinder-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/shapes/Disk/Disk-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/shapes/Disk/Disk-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/shapes/Sphere/Sphere-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/shapes/Sphere/Sphere-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/util/EntityCombiner/EntityCombiner-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/util/EntityCombiner/EntityCombiner-vtest.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/util/EntityCombiner/ladda ned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/util/EntityCombiner/ladda ned.png -------------------------------------------------------------------------------- /test/e2etesting/screenshots/goo/util/TransformGizmos/TransformGizmos-vtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/e2etesting/screenshots/goo/util/TransformGizmos/TransformGizmos-vtest.png -------------------------------------------------------------------------------- /test/lib/jasmine-2.3.4/jasmine_favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/lib/jasmine-2.3.4/jasmine_favicon.png -------------------------------------------------------------------------------- /test/stress-test/stress-main.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | paths: { 3 | 'goo': '../src/goo', 4 | 'lib': '../lib', 5 | 'goo/lib': '../lib' 6 | }, 7 | waitSeconds: 5 8 | }); 9 | 10 | require([ 11 | 'trials/Vector3-vs-Vector', 12 | 'trials/EntityManager-stress' 13 | ], function () { 14 | stress(); 15 | }); 16 | -------------------------------------------------------------------------------- /test/stress-test/stress.css: -------------------------------------------------------------------------------- 1 | .title, .subtitle { 2 | font-family: sans-serif; 3 | font-size: small; 4 | } 5 | 6 | .entry { 7 | font-family: sans-serif; 8 | font-size: large; 9 | padding: 8px; 10 | margin: 4px; 11 | border: 1px solid #cccccc; 12 | } 13 | 14 | .entry-measurements { 15 | font-size: medium; 16 | } -------------------------------------------------------------------------------- /test/stress-test/stress.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | GooJS Speed Tests 10 | 11 | 12 |
Goo engine stress tests
13 |
Be patient, this may take a while
14 |

15 | 16 | 17 | -------------------------------------------------------------------------------- /test/stress-test/trials/Vector3-vs-Vector.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'goo/math/Vector', 3 | 'goo/math/Vector3' 4 | ], function ( 5 | Vector, 6 | Vector3 7 | ) { 8 | 'use strict'; 9 | 10 | responseTime('Vector.invert', 1000, function () { 11 | var vector = new Vector(3); 12 | for (var i = 0; i < 10000; i++) { 13 | vector.invert(); 14 | } 15 | }); 16 | 17 | responseTime('Vector3.invert', 1000, function () { 18 | var vector3 = new Vector3(); 19 | for (var i = 0; i < 10000; i++) { 20 | vector3.invert(); 21 | } 22 | }); 23 | }); -------------------------------------------------------------------------------- /test/unit/addons/particlepack/curves/Curve-test.js: -------------------------------------------------------------------------------- 1 | var Curve = require('../../../../../src/goo/addons/particlepack/curves/Curve'); 2 | 3 | describe('Curve', function () { 4 | it('.getValueAt', function () { 5 | var curve = new Curve(); 6 | expect(curve.getValueAt(0)).toBe(0); 7 | }); 8 | 9 | it('.toGLSL', function () { 10 | var curve = new Curve(); 11 | expect(curve.toGLSL('t')).toBe('0.0'); 12 | }); 13 | }); -------------------------------------------------------------------------------- /test/unit/addons/physicspack/colliders/PlaneCollider-test.js: -------------------------------------------------------------------------------- 1 | describe('PlaneCollider', function () { 2 | 3 | var PlaneCollider = require('../../../../../src/goo/addons/physicspack/colliders/PlaneCollider'); 4 | var Transform = require('../../../../../src/goo/math/Transform'); 5 | 6 | it('can clone', function () { 7 | var collider = new PlaneCollider(); 8 | var clone = collider.clone(); 9 | expect(collider).toEqual(clone); 10 | }); 11 | 12 | it('can transform', function () { 13 | var collider = new PlaneCollider(); 14 | var collider2 = new PlaneCollider(); 15 | var transform = new Transform(); 16 | collider.transform(transform, collider2); 17 | expect(collider).toEqual(collider2); 18 | }); 19 | }); 20 | -------------------------------------------------------------------------------- /test/unit/addons/physicspack/colliders/SphereCollider-test.js: -------------------------------------------------------------------------------- 1 | describe('SphereCollider', function () { 2 | 3 | var SphereCollider = require('../../../../../src/goo/addons/physicspack/colliders/SphereCollider'); 4 | var Transform = require('../../../../../src/goo/math/Transform'); 5 | 6 | it('can clone', function () { 7 | var collider = new SphereCollider({ 8 | radius: 2 9 | }); 10 | var clone = collider.clone(); 11 | expect(collider).toEqual(clone); 12 | }); 13 | 14 | it('can transform', function () { 15 | var collider = new SphereCollider({ 16 | radius: 2 17 | }); 18 | var transform = new Transform(); 19 | transform.scale.setDirect(1, 2, 3); 20 | collider.transform(transform, collider); 21 | expect(collider.radius).toEqual(6); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /test/unit/animationpack/Joint-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/Joint-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/Skeleton-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/Skeleton-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/SkeletonPose-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/SkeletonPose-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/blendtree/BinaryLerpSource-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/blendtree/BinaryLerpSource-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/blendtree/ClipSource-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/blendtree/ClipSource-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/blendtree/FrozenClipSource-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/blendtree/FrozenClipSource-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/blendtree/ManagedTransformSource-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/blendtree/ManagedTransformSource-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/AbstractAnimationChannel-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/AbstractAnimationChannel-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/AnimationClip-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/AnimationClip-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/AnimationClipInstance-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/AnimationClipInstance-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/InterpolatedFloatChannel-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/InterpolatedFloatChannel-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/JointChannel-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/JointChannel-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/JointData-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/JointData-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/TransformChannel-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/TransformChannel-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/TransformData-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/TransformData-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/TriggerChannel-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/TriggerChannel-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/clip/TriggerData-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/clip/TriggerData-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/components/AnimationComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/components/AnimationComponent-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/layer/AnimationLayer-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/layer/AnimationLayer-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/layer/LayerLerpBlender-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/layer/LayerLerpBlender-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/state/AbstractState-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/state/AbstractState-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/state/AbstractTransitionState-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/state/AbstractTransitionState-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/state/FadeTransitionState-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/state/FadeTransitionState-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/state/FrozenTransitionState-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/state/FrozenTransitionState-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/state/SteadyState-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/state/SteadyState-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/state/SyncFadeTransitionState-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/state/SyncFadeTransitionState-test.js -------------------------------------------------------------------------------- /test/unit/animationpack/systems/AnimationSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/animationpack/systems/AnimationSystem-test.js -------------------------------------------------------------------------------- /test/unit/debugpack/BoundingVolumeMeshBuilder-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/debugpack/BoundingVolumeMeshBuilder-test.js -------------------------------------------------------------------------------- /test/unit/debugpack/DebugDrawHelper-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/debugpack/DebugDrawHelper-test.js -------------------------------------------------------------------------------- /test/unit/debugpack/Debugger-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/debugpack/Debugger-test.js -------------------------------------------------------------------------------- /test/unit/debugpack/EntityCounter-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/debugpack/EntityCounter-test.js -------------------------------------------------------------------------------- /test/unit/debugpack/components/MarkerComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/debugpack/components/MarkerComponent-test.js -------------------------------------------------------------------------------- /test/unit/debugpack/systems/MarkerSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/debugpack/systems/MarkerSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/GooRunner-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/GooRunner-test.js -------------------------------------------------------------------------------- /test/unit/entities/SystemBus-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/SystemBus-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/CameraDebugComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/CameraDebugComponent-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/Component-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/Component-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/CssTransformComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/CssTransformComponent-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/LightComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/LightComponent-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/LightDebugComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/LightDebugComponent-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/MeshDataComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/MeshDataComponent-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/ParticleComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/ParticleComponent-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/PortalComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/PortalComponent-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/SoundComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/SoundComponent-test.js -------------------------------------------------------------------------------- /test/unit/entities/components/TextComponent-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/components/TextComponent-test.js -------------------------------------------------------------------------------- /test/unit/entities/managers/Manager-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/managers/Manager-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/BoundingUpdateSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/BoundingUpdateSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/CameraDebugSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/CameraDebugSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/CameraSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/CameraSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/CssTransformSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/CssTransformSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/DebugRenderSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/DebugRenderSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/GizmoRenderSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/GizmoRenderSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/GridRenderSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/GridRenderSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/LightDebugSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/LightDebugSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/MovementSystem-test.js: -------------------------------------------------------------------------------- 1 | describe('test that movement updates transform', function () { 2 | // what happened here? 3 | }); 4 | -------------------------------------------------------------------------------- /test/unit/entities/systems/ParticlesSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/ParticlesSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/PickingSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/PickingSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/PortalSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/PortalSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/RenderSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/RenderSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/ScriptSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/ScriptSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/SoundSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/SoundSystem-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/System-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/System-test.js -------------------------------------------------------------------------------- /test/unit/entities/systems/TextSystem-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/test/unit/entities/systems/TextSystem-test.js -------------------------------------------------------------------------------- /test/unit/fsmpack/statemachine/actions/Actions-test.js: -------------------------------------------------------------------------------- 1 | var Actions = require('../../../../../src/goo/fsmpack/statemachine/actions/Actions'); 2 | 3 | describe('Actions', function () { 4 | it('Every action has a key', function () { 5 | var allActions = Actions.allActionsArray(); 6 | for (var i=0; i 7 | 8 | 9 | 10 | 11 |

Goo Changelog

12 | Back to the Goo Docs 13 | {{{content}}} 14 | 15 | 16 | -------------------------------------------------------------------------------- /tools/util.js: -------------------------------------------------------------------------------- 1 | // jshint node:true 2 | 'use strict'; 3 | 4 | function isSafeIdentifier(identifier) { 5 | return /^[\w_]+$/.test(identifier); 6 | } 7 | 8 | function safenIdentifier(identifier) { 9 | return identifier.replace(/[^\w_]/g, ''); 10 | } 11 | 12 | function extractModuleName(completeName) { 13 | var index = completeName.lastIndexOf('/'); 14 | return index === -1 ? completeName : completeName.substr(index + 1); 15 | } 16 | 17 | function stripEnding(ending, string) { 18 | if (string.slice(-ending.length) === ending) { 19 | return string.slice(0, -ending.length); 20 | } 21 | return string; 22 | } 23 | 24 | exports.isSafeIdentifier = isSafeIdentifier; 25 | exports.safenIdentifier = safenIdentifier; 26 | exports.extractModuleName = extractModuleName; 27 | exports.stripEnding = stripEnding; 28 | -------------------------------------------------------------------------------- /visual-test/carousel/carousel.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: sans-serif; 3 | font-size: small; 4 | } 5 | 6 | iframe { 7 | border: 1px solid black; 8 | } -------------------------------------------------------------------------------- /visual-test/carousel/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Visual test runner 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
Status:
18 |
CurrentUrl:
19 |
20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /visual-test/goo/addons/Gamepad/Gamepad-example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Gamepad addon example 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/addons/Sound/Sound-shared-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sound test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/goo/addons/Sound/Sound-spatial-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sound test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/goo/addons/Sound/Sound-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sound test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/projected-water-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Water test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/27d63c140ee0f5777daecc07147ff198dc086ed8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/27d63c140ee0f5777daecc07147ff198dc086ed8.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/29b32b2124d5b9ca1a2636b3cc30929c330aa4e6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/29b32b2124d5b9ca1a2636b3cc30929c330aa4e6.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/3181399bd55e8bde687f65f7d190c00b16f36a3a.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/3181399bd55e8bde687f65f7d190c00b16f36a3a.bin -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/34111bd3dbddb6756fdc1da0e11796898dc81102.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/34111bd3dbddb6756fdc1da0e11796898dc81102.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/4008374269388f5f2ebd4296261fabd1b13a0a56.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/4008374269388f5f2ebd4296261fabd1b13a0a56.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/4cbdbf2056762a397351da03b385184e51c1c4f4.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/4cbdbf2056762a397351da03b385184e51c1c4f4.bin -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/6b6127e8732fc8fbd6e61a4a5a63537013e7bd0a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/6b6127e8732fc8fbd6e61a4a5a63537013e7bd0a.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/8b1a49b89b1399bd6583b30ba6271c4f65ee29c5.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/8b1a49b89b1399bd6583b30ba6271c4f65ee29c5.bin -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/a08a6baa5f03ac1f288c02f9aa8a484ed4a6be0e.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/a08a6baa5f03ac1f288c02f9aa8a484ed4a6be0e.bin -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/res/d7968aa0b348df54ba9b461874f1501b66f77109.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/res/d7968aa0b348df54ba9b461874f1501b66f77109.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/resources/skybox/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/resources/skybox/1.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/resources/skybox/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/resources/skybox/2.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/resources/skybox/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/resources/skybox/3.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/resources/skybox/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/resources/skybox/4.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/resources/skybox/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/resources/skybox/5.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/resources/skybox/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/resources/skybox/6.jpg -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/resources/water/waternormals3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/addons/Water/resources/water/waternormals3.png -------------------------------------------------------------------------------- /visual-test/goo/addons/Water/water-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Water test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/goo/addons/p2/p2-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | p2 test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /visual-test/goo/addons/particlepack/particle-startPaused-vtest.js: -------------------------------------------------------------------------------- 1 | goo.V.attachToGlobal(); 2 | 3 | var gooRunner = V.initGoo(); 4 | var world = gooRunner.world; 5 | 6 | world.setSystem(new ParticleSystemSystem()); 7 | 8 | var entity = world.createEntity([0, 0, 0], new ParticleSystemComponent({ 9 | paused: true 10 | })).addToWorld(); 11 | 12 | setTimeout(function(){ 13 | entity.particleSystemComponent.play(); 14 | }, 2000); 15 | 16 | V.addOrbitCamera(new Vector3(40, 0, Math.PI / 4)); 17 | gooRunner.renderer.setClearColor(0, 0, 0, 1); 18 | V.process(); -------------------------------------------------------------------------------- /visual-test/goo/entities/CallbacksNextFrame/CallbacksNextFrame-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Callbacks next frame test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/goo/entities/Clone/Clone-camera-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Cloning cameras visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/entities/Clone/Clone-light-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Cloning lights visual test 5 | 6 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/goo/entities/Clone/Clone-material-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Clone materials visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/entities/Clone/Clone-meshData-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Cloning mesh data visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/entities/Clone/Clone-shapes-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Cloning shapes visual test 5 | 6 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/27d63c140ee0f5777daecc07147ff198dc086ed8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/27d63c140ee0f5777daecc07147ff198dc086ed8.jpg -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/29b32b2124d5b9ca1a2636b3cc30929c330aa4e6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/29b32b2124d5b9ca1a2636b3cc30929c330aa4e6.jpg -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/3181399bd55e8bde687f65f7d190c00b16f36a3a.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/3181399bd55e8bde687f65f7d190c00b16f36a3a.bin -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/34111bd3dbddb6756fdc1da0e11796898dc81102.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/34111bd3dbddb6756fdc1da0e11796898dc81102.jpg -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/4008374269388f5f2ebd4296261fabd1b13a0a56.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/4008374269388f5f2ebd4296261fabd1b13a0a56.jpg -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/4cbdbf2056762a397351da03b385184e51c1c4f4.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/4cbdbf2056762a397351da03b385184e51c1c4f4.bin -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/6b6127e8732fc8fbd6e61a4a5a63537013e7bd0a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/6b6127e8732fc8fbd6e61a4a5a63537013e7bd0a.jpg -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/8b1a49b89b1399bd6583b30ba6271c4f65ee29c5.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/8b1a49b89b1399bd6583b30ba6271c4f65ee29c5.bin -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/a08a6baa5f03ac1f288c02f9aa8a484ed4a6be0e.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/a08a6baa5f03ac1f288c02f9aa8a484ed4a6be0e.bin -------------------------------------------------------------------------------- /visual-test/goo/entities/components/Dom3dComponent/res/d7968aa0b348df54ba9b461874f1501b66f77109.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/entities/components/Dom3dComponent/res/d7968aa0b348df54ba9b461874f1501b66f77109.jpg -------------------------------------------------------------------------------- /visual-test/goo/entities/components/HTMLComponent/HTMLComponent-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | HTMLComponent tests 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/entities/components/PortalComponent/PortalComponent-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | PortalComponent test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/fsmpack/PongGame/PongGame-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Pong Game 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/geometrypack/FilledPolygon/FilledPolygon-vtest.js: -------------------------------------------------------------------------------- 1 | 2 | goo.V.attachToGlobal(); 3 | 4 | V.describe('A filled polygon generated from a polyLine'); 5 | 6 | var gooRunner = V.initGoo(); 7 | var world = gooRunner.world; 8 | 9 | var verts = [ 10 | 0, 0, 0, 11 | 1, 0, 0, 12 | 1 + 0.1, 1 - 0.1, 0, 13 | 2, 1, 0, 14 | 2, 2, 0, 15 | 0, 2, 0 16 | ]; 17 | var meshData = new FilledPolygon(verts); 18 | var material = new Material(ShaderLib.texturedLit); 19 | new TextureCreator().loadTexture2D('../../../resources/check.png').then(function (texture) { 20 | material.setTexture('DIFFUSE_MAP', texture); 21 | }); 22 | 23 | world.createEntity(meshData, material).addToWorld(); 24 | 25 | V.addLights(); 26 | 27 | V.addOrbitCamera(); 28 | 29 | V.process(); 30 | -------------------------------------------------------------------------------- /visual-test/goo/geometrypack/Surface/HeightMap-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Height map visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/geometrypack/Surface/Lathe-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Lathe visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/geometrypack/Surface/Pipe-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Pipe visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/goo/geometrypack/TextComponentHandler/Calligraffiti.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/geometrypack/TextComponentHandler/Calligraffiti.ttf -------------------------------------------------------------------------------- /visual-test/goo/geometrypack/TextComponentHandler/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/geometrypack/TextComponentHandler/Roboto-Black.ttf -------------------------------------------------------------------------------- /visual-test/goo/geometrypack/TextComponentHandler/TextComponentHandler-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Text Component Handler test 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/27d63c140ee0f5777daecc07147ff198dc086ed8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/27d63c140ee0f5777daecc07147ff198dc086ed8.jpg -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/29b32b2124d5b9ca1a2636b3cc30929c330aa4e6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/29b32b2124d5b9ca1a2636b3cc30929c330aa4e6.jpg -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/3181399bd55e8bde687f65f7d190c00b16f36a3a.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/3181399bd55e8bde687f65f7d190c00b16f36a3a.bin -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/34111bd3dbddb6756fdc1da0e11796898dc81102.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/34111bd3dbddb6756fdc1da0e11796898dc81102.jpg -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/4008374269388f5f2ebd4296261fabd1b13a0a56.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/4008374269388f5f2ebd4296261fabd1b13a0a56.jpg -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/4cbdbf2056762a397351da03b385184e51c1c4f4.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/4cbdbf2056762a397351da03b385184e51c1c4f4.bin -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/6b6127e8732fc8fbd6e61a4a5a63537013e7bd0a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/6b6127e8732fc8fbd6e61a4a5a63537013e7bd0a.jpg -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/8b1a49b89b1399bd6583b30ba6271c4f65ee29c5.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/8b1a49b89b1399bd6583b30ba6271c4f65ee29c5.bin -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/a08a6baa5f03ac1f288c02f9aa8a484ed4a6be0e.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/a08a6baa5f03ac1f288c02f9aa8a484ed4a6be0e.bin -------------------------------------------------------------------------------- /visual-test/goo/loaders/DynamicLoaderDestroy/res/d7968aa0b348df54ba9b461874f1501b66f77109.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/goo/loaders/DynamicLoaderDestroy/res/d7968aa0b348df54ba9b461874f1501b66f77109.jpg -------------------------------------------------------------------------------- /visual-test/goo/loaders/HtmlComponentHandler/HtmlComponentHandler-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Html Component Handler test 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /visual-test/goo/math/FromAngleNormalAxis/FromAngleNormalAxis-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | FromAngleNormalAxis visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/goo/math/LookAt/LookAt-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LookAt visual test 5 | 6 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/goo/math/Ray/RayIntersectsPlane-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ray intersects plane visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/math/Spline/Spline-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Spline visual test 5 | 6 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /visual-test/goo/misc/CombinedIndexModes/CombinedIndexModes-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CombinedIndexModes tests 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/misc/GooDestroy/GooDestroy-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | GooDestroy visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/misc/IndexModes/IndexModes-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | IndexModes tests 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/misc/ParticleLib/ParticleLib-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ParticleLib visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/goo/misc/PickSync/PickSync-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | PickSync test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/misc/PickingEvents/PickingEvents-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | PickingEvents test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/particles/ParticleInfluence-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ParticleInfluence visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/goo/passpack/BloomPass/BloomPass-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Button script 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/renderer/BufferSubData/BufferSubData-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | BufferSubData visual test 5 | 6 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/goo/renderer/DeIndex/DeIndex-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DeIndex visual test 5 | 6 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/goo/renderer/Material/DepthFunc-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DepthFunc visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/renderer/UberShader/AmbientTest-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | BufferSubData visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/goo/renderer/WorldPickCoords/WorldPickCoordinates-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | World Pick Coordinates visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/goo/renderer/bounds/BoundingBox/BoundingBox-computeFromPoints-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | BoundingBox tests 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/goo/renderer/texture/NPOT/NPOT-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Non-power of two texture test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/scripts/ButtonScript/ButtonScript.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Button script 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/goo/scripts/LensFlareScript/LensFlareScript-vtest.js: -------------------------------------------------------------------------------- 1 | 2 | goo.V.attachToGlobal(); 3 | 4 | var gooRunner = V.initGoo(); 5 | 6 | V.addLights(); 7 | 8 | var sphereEntity = V.addColoredSpheres().first(); 9 | 10 | // add camera 11 | V.addOrbitCamera(); 12 | 13 | // camera control set up 14 | var scripts = new ScriptComponent(); 15 | 16 | var lensFlareScript = Scripts.create(LensFlareScript, { 17 | domElement: gooRunner.renderer.domElement, 18 | edgeDampen: 1 19 | }); 20 | 21 | scripts.scripts.push(lensFlareScript); 22 | 23 | sphereEntity.setComponent(scripts); 24 | -------------------------------------------------------------------------------- /visual-test/goo/scripts/OrbitCamControlScript/OrbitCam-script.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Orbit cam script 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/scripts/OrbitCamControlScript/OrbitCam-script.js: -------------------------------------------------------------------------------- 1 | 2 | goo.V.attachToGlobal(); 3 | 4 | var gooRunner = V.initGoo(); 5 | 6 | V.addLights(); 7 | 8 | V.addColoredSpheres(); 9 | 10 | // add camera 11 | var camera = new Camera(); 12 | var cameraEntity = gooRunner.world.createEntity(camera, 'CameraEntity', [0, 0, 20]).lookAt([0, 0, 0]).addToWorld(); 13 | 14 | // camera control set up 15 | var scripts = new ScriptComponent(); 16 | 17 | var wasdScript = Scripts.create(OrbitCamControlScript, { 18 | domElement: gooRunner.renderer.domElement, 19 | lookAtDistance: 20 20 | }); 21 | 22 | scripts.scripts.push(wasdScript); 23 | 24 | cameraEntity.setComponent(scripts); 25 | -------------------------------------------------------------------------------- /visual-test/goo/scripts/WASDControlScript/WASD-script.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | WASD script 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/goo/shapes/Box/Box-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Box visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/shapes/Cone/Cone-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Cone visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/shapes/Cylinder/Cylinder-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Cylinder visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/shapes/Disk/Disk-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Disk visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/shapes/Sphere/Sphere-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sphere visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/timelinepack/TimelineComponent/TimelineComponent-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Timeline Component test 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /visual-test/goo/timelinepack/TimelineComponentHandler/TimelineComponentHandler-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Timeline Component Handler test 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /visual-test/goo/util/EntityCombiner/EntityCombiner-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | EntityCombiner visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/util/GameUtils/GameUtils-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | GameUtils visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/util/MeshBuilder/MeshBuilder-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | MeshBuilder visual test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /visual-test/goo/util/Skybox/Skybox-vtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Skybox visual test 5 | 6 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /visual-test/lib/Calligraffiti.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/lib/Calligraffiti.ttf -------------------------------------------------------------------------------- /visual-test/lib/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/lib/Roboto-Black.ttf -------------------------------------------------------------------------------- /visual-test/lib/vtest.js: -------------------------------------------------------------------------------- 1 | /* Google analytics */ 2 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 3 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 4 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 5 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 6 | 7 | ga('create', 'UA-55739361-8', 'auto', { 8 | 'allowLinker': true 9 | }); 10 | ga('require', 'linker'); 11 | ga('linker:autoLink', ['goocreate.com', 'gooengine.com']); 12 | ga('send', 'pageview'); 13 | /* End google analytics */ 14 | -------------------------------------------------------------------------------- /visual-test/panel/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /visual-test/panel/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #222222; 3 | } 4 | 5 | ::-webkit-scrollbar { 6 | display: none; 7 | } 8 | 9 | button { 10 | border-radius: 4px; 11 | border-width: 0; 12 | color: #ffffff; 13 | background-color: #237099; 14 | width: 64px; 15 | box-shadow: 0 2px 5px #000000; 16 | padding-top: 4px; 17 | padding-bottom: 4px; 18 | } 19 | 20 | .controls { 21 | position: fixed; 22 | left: 14px; 23 | bottom: 14px; 24 | } 25 | 26 | .container { 27 | display: inline-block; 28 | margin: 4px 6px; 29 | } 30 | 31 | iframe { 32 | border: 1px solid #999999; 33 | } 34 | 35 | .title { 36 | color: #ffffff; 37 | font-family: Consolas, "Lucida Console", Inconsolata, Monaco, monospace; 38 | } -------------------------------------------------------------------------------- /visual-test/resources/Pot_Diffuse.crn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/Pot_Diffuse.crn -------------------------------------------------------------------------------- /visual-test/resources/Pot_Diffuse.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/Pot_Diffuse.dds -------------------------------------------------------------------------------- /visual-test/resources/check-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/check-alt.png -------------------------------------------------------------------------------- /visual-test/resources/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/check.png -------------------------------------------------------------------------------- /visual-test/resources/check.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/check.tga -------------------------------------------------------------------------------- /visual-test/resources/checker_4x4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/checker_4x4.png -------------------------------------------------------------------------------- /visual-test/resources/checker_slope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/checker_slope.png -------------------------------------------------------------------------------- /visual-test/resources/collectedBottles_diffuse_1024.crn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/collectedBottles_diffuse_1024.crn -------------------------------------------------------------------------------- /visual-test/resources/collectedBottles_diffuse_1024.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/collectedBottles_diffuse_1024.dds -------------------------------------------------------------------------------- /visual-test/resources/cone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/cone.png -------------------------------------------------------------------------------- /visual-test/resources/cylinder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/cylinder.png -------------------------------------------------------------------------------- /visual-test/resources/flare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/flare.png -------------------------------------------------------------------------------- /visual-test/resources/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/font.png -------------------------------------------------------------------------------- /visual-test/resources/goo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/goo.png -------------------------------------------------------------------------------- /visual-test/resources/heightmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/heightmap.png -------------------------------------------------------------------------------- /visual-test/resources/heightmap_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/heightmap_small.png -------------------------------------------------------------------------------- /visual-test/resources/heightmap_walled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/heightmap_walled.png -------------------------------------------------------------------------------- /visual-test/resources/sfx1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/sfx1.wav -------------------------------------------------------------------------------- /visual-test/resources/sfx2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/sfx2.wav -------------------------------------------------------------------------------- /visual-test/resources/sintel.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/sintel.mp4 -------------------------------------------------------------------------------- /visual-test/resources/sintel.ogv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/sintel.ogv -------------------------------------------------------------------------------- /visual-test/resources/skybox_2048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/skybox_2048.jpg -------------------------------------------------------------------------------- /visual-test/resources/unfolded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/unfolded.png -------------------------------------------------------------------------------- /visual-test/resources/waternormals3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GooTechnologies/goojs/1aa882e467e022c8723f0c10dc10083eec4cc8ed/visual-test/resources/waternormals3.png -------------------------------------------------------------------------------- /visual-test/stress/manyboxes/manyboxes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Stress test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/stress/particles/particles.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Stress test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/stress/transforms/transforms.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Stress test 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /visual-test/style.css: -------------------------------------------------------------------------------- 1 | @import url(http://fonts.googleapis.com/css?family=Roboto:300); 2 | 3 | html, body { 4 | margin: 0; 5 | padding: 0; 6 | } 7 | 8 | body { 9 | background: #212326; 10 | font-family: 'Roboto', sans-serif; 11 | font-size: 18px; 12 | color: white; 13 | } 14 | 15 | a { 16 | color: #38b3f6; 17 | text-decoration: none; 18 | } 19 | 20 | a:hover { 21 | color: white; 22 | } 23 | 24 | ul { 25 | padding: 0; 26 | padding-left: 30px; 27 | line-height: 1.6em; 28 | list-style-type: lower-greek; 29 | } 30 | 31 | h1 { 32 | margin: 0 0 30px 0; 33 | font-size: 60px; 34 | font-weight: 300; 35 | } 36 | 37 | .container { 38 | width: 90%; 39 | max-width: 960px; 40 | margin: 0 auto; 41 | padding: 60px; 42 | } --------------------------------------------------------------------------------