UNPKG

phaser-multires

Version:

A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers.

1 lines 182 kB
{"version":3,"sources":["p2.js"],"names":["e","exports","module","define","f","window","global","self","p2","t","n","r","s","o","u","a","require","i","Error","call","length","1","_dereq_","Line","Scalar","lineInt","l1","l2","precision","a1","b1","c1","a2","b2","c2","det","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar","2","Point","area","b","c","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","dot","magA","Math","sqrt","magB","angle","acos","sqdist","3","Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","v","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","dist","copy","j","targetPoly","k","getCutEdges","min","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point","4","abs","5","./Polygon","6","name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp","7","AABB","options","lowerBound","vec2","create","upperBound","setFromPoints","points","position","skinSize","l","rotate","cosAngle","cos","sinAngle","sin","x","y","add","aabb","extend","overlaps","u1","u2","containsPoint","point","overlapsRay","ray","dirFracX","direction","dirFracY","t1","t2","t3","t4","tmin","max","tmax","../math/vec2","../utils/Utils","8","Broadphase","world","boundingVolumeType","Body","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","KINEMATIC","STATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body","9","NaiveBroadphase","constructor","bodies","Ncolliding","bi","bj","aabbQuery","aabbNeedsUpdate","updateAABB","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane","../shapes/Shape","10","Narrowphase","contactEquations","frictionEquations","enableFriction","enabledEquations","slipForce","frictionCoefficient","surfaceVelocity","contactEquationPool","ContactEquationPool","size","frictionEquationPool","FrictionEquationPool","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","set","radius","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","verts","lastCross","v0","v1","cross","crossLength","Circle","Convex","Shape","Box","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","bodiesOverlap_shapePositionA","bodiesOverlap_shapePositionB","bodiesOverlap","shapePositionA","shapePositionB","Nshapesi","shapes","shapeA","toWorldFrame","Nshapesj","shapeB","collidedLastStep","id1","id","id2","get","reset","eqs","ce","fe","release","createContactEquation","firstImpact","needsUpdate","enabled","offset","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","scale","normalize","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","BOX","lineBox","boxBody","boxShape","boxOffset","boxAngle","convexCapsule_tempRect","width","height","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","xi","ai","sj","xj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","rect","lineLine","positionA","angleA","positionB","angleB","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","particleBody","particleShape","particlePosition","particleAngle","circleLine","CIRCLE","circleBody","circleShape","circleOffset","circleAngle","lineRadius","circleRadius","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","radiusSum","pos","pos0","pos1","pow","circleCapsule","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","convexToparticle","minEdgeNormal","offsetA","offsetB","radiusA","radiusB","planeConvex","numReported","particlePlane","circleParticle","planeCapsule_tmpCircle","planeCapsule_tmp1","planeCapsule_tmp2","planeCapsule","capsuleOffset","end1","end2","circle","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","temp","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","data","heights","w","elementWidth","minCandidateNormal","idxA","floor","idxB","ceil","PI","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","tileHeight","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Box","../shapes/Convex","../utils/ContactEquationPool","../utils/FrictionEquationPool","../utils/TupleDictionary","11","Ray","checkCollisionResponse","undefined","skipBackfaces","collisionMask","collisionGroup","mode","ANY","callback","update","distanceFromIntersectionSquared","intersect","squaredDistance","CLOSEST","ALL","intersectBodies","shouldStop","body","intersectBody","intersectBody_worldPosition","collisionResponse","worldPosition","shape","worldAngle","intersectShape","distance","_currentBody","_currentShape","raycast","reportIntersection","fraction","faceIndex","hasHit","../collision/AABB","../collision/RaycastResult","12","RaycastResult","isStopped","getHitDistance","getHitPoint","out","lerp","stop","../collision/Ray","13","SAPBroadphase","axisList","axisIndex","that","_addBodyHandler","_removeBodyHandler","idx","Utils","appendArray","off","on","sortAxisList","sortList","14","Constraint","defaults","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation","15","DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","G","violating","minForce","rixn","rjxn","getMaxForce","./Constraint","16","GearConstraint","ratio","AngleLockEquation","maxTorque","setMaxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation","17","LockConstraint","localAngleB","rot","g","localOffsetB","force","xAxis","18","PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","velocity","upperLimitEquation","ContactEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vi","vj","wi","angularVelocity","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation","19","RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation","20","./Equation","21","computeB","h","GW","Gq","GiMf","computeGiMf","B","22","ARRAY_TYPE","epsilon","timeStep","multiplier","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","multiply","massMultiplier","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps","23","FrictionEquation","getSlipForce","24","worldVectorA","worldVectorB","25","26","EventEmitter","listener","context","_listeners","listeners","has","index","emit","event","listenerArray","target","27","ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material","28","29","PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","30","crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","vectorToLocalFrame","worldVector","vectorToGlobalFrame","localVector","centroid","clone","subtract","mul","divide","div","sqrDist","len","sqrLen","negate","str","reflect","vector","getLineSegmentsIntersection","p0","p3","getLineSegmentsIntersectionFraction","s1_x","s1_y","s2_x","s2_y","31","_idCounter","mass","invMass","inertia","invInertia","fixedRotation","fixedX","fixedY","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","idleTime","timeLastSleepy","ccdSpeedThreshold","ccdIterations","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","m","I","r2","Icm","computeMomentOfInertia","applyForce","relativePoint","rotForce","Body_applyForce_forceWorld","Body_applyForce_pointWorld","Body_applyForce_pointLocal","applyForceLocal","localForce","worldForce","vectorToWorldFrame","Body_applyImpulse_velo","applyImpulse","impulseVector","velo","rotVelo","Body_applyImpulse_impulseWorld","Body_applyImpulse_pointWorld","Body_applyImpulse_pointLocal","applyImpulseLocal","localImpulse","worldImpulse","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","dt","wakeUpEvent","sleep","sleepEvent","sleepTick","time","dontSleep","speedSquared","speedLimitSquared","SLEEPY","overlapKeeper","bodiesAreOverlapping","integrate_fhMinv","integrate_velodt","integrate","minv","integrateToTimeOfImpact","end","startToEnd","rememberPosition","hit","startToEndAngle","timeOfImpact","rememberAngle","iter","tmid","narrowphase","getVelocityAtPoint","sleepyEvent","../events/EventEmitter","32","LinearSpring","Spring","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","worldDistance","restLength","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f","./Spring","33","RotationalSpring","restAngle","34","35","TopDownVehicle","chassisBody","wheels","groundBody","preStepCallback","WheelConstraint","vehicle","forwardEquation","sideEquation","steerValue","engineForce","setSideFriction","sideFriction","localForwardVector","localPosition","apply","setBrakeForce","addToWorld","addBody","wheel","addConstraint","removeFromWorld","removeBody","removeConstraint","addWheel","wheelOptions","worldVelocity","getSpeed","tmpVec","../constraints/Constraint","36","Capsule","GSSolver","Heightfield","Particle","Plane","Pool","Solver","World","Object","defineProperty","../package.json","./collision/AABB","./collision/Broadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/Ray","./collision/RaycastResult","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/LinearSpring","./objects/RotationalSpring","./objects/Spring","./objects/TopDownVehicle","./shapes/Box","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/ContactEquationPool","./utils/FrictionEquationPool","./utils/Pool","./utils/Utils","./world/World","37","arguments","axes","updateArea","./Convex","./Shape","38","intersectCapsule_hitPointWorld","intersectCapsule_normal","intersectCapsule_l0","intersectCapsule_l1","intersectCapsule_unit_y","hitPointWorld","l0","halfLen","diagonalLengthSquared","sqrtDelta","inv2a","d1","39","Ray_intersectSphere_intersectionPoint","Ray_intersectSphere_normal","intersectionPoint","40","isArray","triangles","polyk","tmpVec1","tmpVec2","projectOntoLocalAxis","projectOntoWorldAxis","shapeOffset","shapeAngle","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","denom","numer","intersectConvex_rayStart","intersectConvex_rayEnd","intersectConvex_normal","rayStart","rayEnd","../math/polyk","41","key","maxValue","minValue","updateMaxMinValues","getLineSegment","start","getSegmentIndex","getClampedSegmentIndex","intersectHeightfield_worldNormal","intersectHeightfield_l0","intersectHeightfield_l1","intersectHeightfield_localFrom","intersectHeightfield_localTo","localFrom","localTo","42","raycast_normal","raycast_l0","raycast_l1","raycast_unit_y","43","44","intersectPlane_planePointToFrom","intersectPlane_normal","intersectPlane_len","planePointToFrom","planeToFrom","planeToTo","n_dot_dir","45","material","sensor","46","GS","iterations","tolerance","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","array","solve","sortEquations","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver","47","equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","sort","addEquation","removeEquation","ISLAND","48","destroy","equation","./Pool","49","50","IslandNodePool","IslandNode","../world/IslandNode","51","IslandPool","Island","../world/Island","52","OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","OverlapKeeperRecordPool","tmpDict","tmpArray1","tick","current","keys","lastObject","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./OverlapKeeperRecord","./OverlapKeeperRecordPool","./TupleDictionary","./Utils","53","OverlapKeeperRecord","54","record","55","objects","resize","object","56","getKey","dict","57","howmany","P2_ARRAY_TYPE","Float32Array","58","bodyIds","59","IslandManager","nodePool","islandPool","islands","nodes","queue","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","root","child","neighbors","split","ni","nj","./../utils/IslandNodePool","./../utils/IslandPool","./Island","./IslandNode","60","61","springs","disabledBodyCollisionPairs","solver","islandManager","gravity","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","stepping","bodiesToBeRemoved","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","BODY_SLEEPING","ISLAND_SLEEPING","constraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","substeps","endOverlaps","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","runNarrowphase","ev","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","evt","removeSpring","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","hitTest_tmp1","hitTest_tmp2","hitTest","pb","ps","pa","NS","setGlobalStiffness","setGlobalRelaxation","tmpAABB","../../package.json","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/LinearSpring","../objects/RotationalSpring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager"],"mappings":"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