Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Side by Side Diff: lib/src/dynamics/world.dart

Issue 1138063003: pkg/box2d: 0.2.0 release (Closed) Base URL: https://github.com/google/dbox2d.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/src/dynamics/joints/wheel_joint.dart ('k') | lib/src/particle/particle_system.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /******************************************************************************* 1 /*******************************************************************************
2 * Copyright (c) 2015, Daniel Murphy, Google 2 * Copyright (c) 2015, Daniel Murphy, Google
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without modificati on, 5 * Redistribution and use in source and binary forms, with or without modificati on,
6 * are permitted provided that the following conditions are met: 6 * are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright notice, 7 * * Redistributions of source code must retain the above copyright notice,
8 * this list of conditions and the following disclaimer. 8 * this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright notice, 9 * * Redistributions in binary form must reproduce the above copyright notice,
10 * this list of conditions and the following disclaimer in the documentation 10 * this list of conditions and the following disclaimer in the documentation
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 } 180 }
181 } 181 }
182 182
183 void _initializeRegisters() { 183 void _initializeRegisters() {
184 _addType(_pool.getCircleContactStack(), ShapeType.CIRCLE, ShapeType.CIRCLE); 184 _addType(_pool.getCircleContactStack(), ShapeType.CIRCLE, ShapeType.CIRCLE);
185 _addType( 185 _addType(
186 _pool.getPolyCircleContactStack(), ShapeType.POLYGON, ShapeType.CIRCLE); 186 _pool.getPolyCircleContactStack(), ShapeType.POLYGON, ShapeType.CIRCLE);
187 _addType(_pool.getPolyContactStack(), ShapeType.POLYGON, ShapeType.POLYGON); 187 _addType(_pool.getPolyContactStack(), ShapeType.POLYGON, ShapeType.POLYGON);
188 _addType( 188 _addType(
189 _pool.getEdgeCircleContactStack(), ShapeType.EDGE, ShapeType.CIRCLE); 189 _pool.getEdgeCircleContactStack(), ShapeType.EDGE, ShapeType.CIRCLE);
190 _addType(_pool.getEdgePolyContactStack(), ShapeType.EDGE, ShapeType.POLYGON) ; 190 _addType(
191 _pool.getEdgePolyContactStack(), ShapeType.EDGE, ShapeType.POLYGON);
191 _addType( 192 _addType(
192 _pool.getChainCircleContactStack(), ShapeType.CHAIN, ShapeType.CIRCLE); 193 _pool.getChainCircleContactStack(), ShapeType.CHAIN, ShapeType.CIRCLE);
193 _addType( 194 _addType(
194 _pool.getChainPolyContactStack(), ShapeType.CHAIN, ShapeType.POLYGON); 195 _pool.getChainPolyContactStack(), ShapeType.CHAIN, ShapeType.POLYGON);
195 } 196 }
196 197
197 DestructionListener getDestructionListener() { 198 DestructionListener getDestructionListener() {
198 return _destructionListener; 199 return _destructionListener;
199 } 200 }
200 201
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after
1114 void solveTOI(final TimeStep step) { 1115 void solveTOI(final TimeStep step) {
1115 final Island island = toiIsland; 1116 final Island island = toiIsland;
1116 island.init(2 * Settings.maxTOIContacts, Settings.maxTOIContacts, 0, 1117 island.init(2 * Settings.maxTOIContacts, Settings.maxTOIContacts, 0,
1117 _contactManager.contactListener); 1118 _contactManager.contactListener);
1118 if (_stepComplete) { 1119 if (_stepComplete) {
1119 for (Body b = bodyList; b != null; b = b._next) { 1120 for (Body b = bodyList; b != null; b = b._next) {
1120 b._flags &= ~Body.ISLAND_FLAG; 1121 b._flags &= ~Body.ISLAND_FLAG;
1121 b._sweep.alpha0 = 0.0; 1122 b._sweep.alpha0 = 0.0;
1122 } 1123 }
1123 1124
1124 for (Contact c = _contactManager.contactList; 1125 for (Contact c = _contactManager.contactList; c != null; c = c._next) {
1125 c != null;
1126 c = c._next) {
1127 // Invalidate TOI 1126 // Invalidate TOI
1128 c._flags &= ~(Contact.TOI_FLAG | Contact.ISLAND_FLAG); 1127 c._flags &= ~(Contact.TOI_FLAG | Contact.ISLAND_FLAG);
1129 c._toiCount = 0; 1128 c._toiCount = 0;
1130 c._toi = 1.0; 1129 c._toi = 1.0;
1131 } 1130 }
1132 } 1131 }
1133 1132
1134 // Find TOI events and solve them. 1133 // Find TOI events and solve them.
1135 for (;;) { 1134 for (;;) {
1136 // Find the first TOI. 1135 // Find the first TOI.
1137 Contact minContact = null; 1136 Contact minContact = null;
1138 double minAlpha = 1.0; 1137 double minAlpha = 1.0;
1139 1138
1140 for (Contact c = _contactManager.contactList; 1139 for (Contact c = _contactManager.contactList; c != null; c = c._next) {
1141 c != null;
1142 c = c._next) {
1143 // Is this contact disabled? 1140 // Is this contact disabled?
1144 if (c.isEnabled() == false) { 1141 if (c.isEnabled() == false) {
1145 continue; 1142 continue;
1146 } 1143 }
1147 1144
1148 // Prevent excessive sub-stepping. 1145 // Prevent excessive sub-stepping.
1149 if (c._toiCount > Settings.maxSubSteps) { 1146 if (c._toiCount > Settings.maxSubSteps) {
1150 continue; 1147 continue;
1151 } 1148 }
1152 1149
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after
1939 _point.setFrom(input.p1).scale(1 - fraction).add(_temp); 1936 _point.setFrom(input.p1).scale(1 - fraction).add(_temp);
1940 return callback.reportFixture(fixture, _point, _output.normal, fraction); 1937 return callback.reportFixture(fixture, _point, _output.normal, fraction);
1941 } 1938 }
1942 1939
1943 return input.maxFraction; 1940 return input.maxFraction;
1944 } 1941 }
1945 1942
1946 BroadPhase broadPhase; 1943 BroadPhase broadPhase;
1947 RayCastCallback callback; 1944 RayCastCallback callback;
1948 } 1945 }
OLDNEW
« no previous file with comments | « lib/src/dynamics/joints/wheel_joint.dart ('k') | lib/src/particle/particle_system.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698