Baby steps mode

This commit is contained in:
Tom MacWright
2016-06-06 16:40:21 -04:00
parent 02ba1ae0fd
commit 266504d4e2
40 changed files with 74 additions and 134 deletions
+5 -34
View File
@@ -77,40 +77,7 @@ dist/iD.js: \
js/id/geo/intersection.js \
js/id/geo/multipolygon.js \
js/id/geo/raw_mercator.js \
js/id/actions.js \
js/id/actions/add_entity.js \
js/id/actions/add_member.js \
js/id/actions/add_midpoint.js \
js/id/actions/add_vertex.js \
js/id/actions/change_member.js \
js/id/actions/change_preset.js \
js/id/actions/change_tags.js \
js/id/actions/circularize.js \
js/id/actions/connect.js \
js/id/actions/copy_entities.js \
js/id/actions/delete_member.js \
js/id/actions/delete_multiple.js \
js/id/actions/delete_node.js \
js/id/actions/delete_relation.js \
js/id/actions/delete_way.js \
js/id/actions/deprecate_tags.js \
js/id/actions/discard_tags.js \
js/id/actions/disconnect.js \
js/id/actions/join.js \
js/id/actions/merge.js \
js/id/actions/merge_polygon.js \
js/id/actions/merge_remote_changes.js \
js/id/actions/move.js \
js/id/actions/move_node.js \
js/id/actions/noop.js \
js/id/actions/orthogonalize.js \
js/id/actions/restrict_turn.js \
js/id/actions/reverse.js \
js/id/actions/revert.js \
js/id/actions/rotate_way.js \
js/id/actions/split.js \
js/id/actions/straighten.js \
js/id/actions/unrestrict_turn.js \
dist/modules/actions.js \
js/id/behavior.js \
js/id/behavior/add_way.js \
js/id/behavior/breathe.js \
@@ -317,5 +284,9 @@ d3:
node_modules/.bin/smash $(D3_FILES) > js/lib/d3.v3.js
@echo 'd3 rebuilt. Please reapply 7e2485d, 4da529f, and 223974d'
ACTIONS = $(shell ./node_modules/.bin/browserify --list modules/actions/index.js)
dist/modules/actions.js: $(ACTIONS)
node_modules/.bin/browserify modules/actions/index.js -s iD.actions > dist/modules/actions.js
lodash:
node_modules/.bin/lodash --development --output js/lib/lodash.js include="includes,toPairs,assign,bind,chunk,clone,compact,debounce,difference,each,every,extend,filter,find,first,forEach,forOwn,groupBy,indexOf,intersection,isEmpty,isEqual,isFunction,keys,last,map,omit,reject,some,throttle,union,uniq,values,without,flatten,value,chain,cloneDeep,merge,pick,reduce" exports="global,node"
View File
+1 -33
View File
@@ -145,39 +145,7 @@
<script src='js/id/ui/intro/line.js'></script>
<script src='js/id/ui/intro/start_editing.js'></script>
<script src='js/id/actions.js'></script>
<script src="js/id/actions/add_midpoint.js"></script>
<script src="js/id/actions/add_member.js"></script>
<script src='js/id/actions/add_entity.js'></script>
<script src='js/id/actions/add_vertex.js'></script>
<script src='js/id/actions/change_member.js'></script>
<script src='js/id/actions/change_preset.js'></script>
<script src='js/id/actions/change_tags.js'></script>
<script src='js/id/actions/circularize.js'></script>
<script src='js/id/actions/connect.js'></script>
<script src='js/id/actions/copy_entities.js'></script>
<script src='js/id/actions/delete_member.js'></script>
<script src='js/id/actions/delete_multiple.js'></script>
<script src='js/id/actions/delete_node.js'></script>
<script src="js/id/actions/delete_relation.js"></script>
<script src="js/id/actions/delete_way.js"></script>
<script src='js/id/actions/discard_tags.js'></script>
<script src='js/id/actions/disconnect.js'></script>
<script src='js/id/actions/join.js'></script>
<script src='js/id/actions/merge.js'></script>
<script src='js/id/actions/merge_polygon.js'></script>
<script src='js/id/actions/merge_remote_changes.js'></script>
<script src='js/id/actions/move_node.js'></script>
<script src='js/id/actions/move.js'></script>
<script src='js/id/actions/noop.js'></script>
<script src='js/id/actions/orthogonalize.js'></script>
<script src='js/id/actions/rotate_way.js'></script>
<script src='js/id/actions/restrict_turn.js'></script>
<script src='js/id/actions/reverse.js'></script>
<script src='js/id/actions/revert.js'></script>
<script src='js/id/actions/straighten.js'></script>
<script src='js/id/actions/split.js'></script>
<script src='js/id/actions/unrestrict_turn.js'></script>
<script src='dist/modules/actions.js'></script>
<script src='js/id/behavior.js'></script>
<script src='js/id/behavior/add_way.js'></script>
-1
View File
@@ -1 +0,0 @@
iD.actions = {};
@@ -1,4 +1,4 @@
iD.actions.AddEntity = function(way) {
module.exports = function(way) {
return function(graph) {
return graph.replace(way);
};
@@ -1,4 +1,4 @@
iD.actions.AddMember = function(relationId, member, memberIndex) {
module.exports = function(relationId, member, memberIndex) {
return function(graph) {
var relation = graph.entity(relationId);
@@ -1,4 +1,4 @@
iD.actions.AddMidpoint = function(midpoint, node) {
module.exports = function(midpoint, node) {
return function(graph) {
graph = graph.replace(node.move(midpoint.loc));
@@ -1,5 +1,5 @@
// https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/AddNodeToWayAction.as
iD.actions.AddVertex = function(wayId, nodeId, index) {
module.exports = function(wayId, nodeId, index) {
return function(graph) {
return graph.replace(graph.entity(wayId).addNode(nodeId, index));
};
@@ -1,4 +1,4 @@
iD.actions.ChangeMember = function(relationId, member, memberIndex) {
module.exports = function(relationId, member, memberIndex) {
return function(graph) {
return graph.replace(graph.entity(relationId).updateMember(member, memberIndex));
};
@@ -1,4 +1,4 @@
iD.actions.ChangePreset = function(entityId, oldPreset, newPreset) {
module.exports = function(entityId, oldPreset, newPreset) {
return function(graph) {
var entity = graph.entity(entityId),
geometry = entity.geometry(graph),
@@ -1,4 +1,4 @@
iD.actions.ChangeTags = function(entityId, tags) {
module.exports = function(entityId, tags) {
return function(graph) {
var entity = graph.entity(entityId);
return graph.replace(entity.update({tags: tags}));
@@ -1,4 +1,4 @@
iD.actions.Circularize = function(wayId, projection, maxAngle) {
module.exports = function(wayId, projection, maxAngle) {
maxAngle = (maxAngle || 20) * Math.PI / 180;
var action = function(graph) {
@@ -12,7 +12,7 @@
// https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/MergeNodesAction.as
// https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/actions/MergeNodesAction.java
//
iD.actions.Connect = function(nodeIds) {
module.exports = function(nodeIds) {
return function(graph) {
var survivor = graph.entity(_.last(nodeIds));
@@ -1,4 +1,4 @@
iD.actions.CopyEntities = function(ids, fromGraph) {
module.exports = function(ids, fromGraph) {
var copies = {};
var action = function(graph) {
@@ -1,4 +1,4 @@
iD.actions.DeleteMember = function(relationId, memberIndex) {
module.exports = function(relationId, memberIndex) {
return function(graph) {
var relation = graph.entity(relationId)
.removeMember(memberIndex);
@@ -1,4 +1,4 @@
iD.actions.DeleteMultiple = function(ids) {
module.exports = function(ids) {
var actions = {
way: iD.actions.DeleteWay,
node: iD.actions.DeleteNode,
@@ -1,5 +1,5 @@
// https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/DeleteNodeAction.as
iD.actions.DeleteNode = function(nodeId) {
module.exports = function(nodeId) {
var action = function(graph) {
var node = graph.entity(nodeId);
@@ -1,5 +1,5 @@
// https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/DeleteRelationAction.as
iD.actions.DeleteRelation = function(relationId) {
module.exports = function(relationId) {
function deleteEntity(entity, graph) {
return !graph.parentWays(entity).length &&
!graph.parentRelations(entity).length &&
@@ -1,5 +1,5 @@
// https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/DeleteWayAction.as
iD.actions.DeleteWay = function(wayId) {
module.exports = function(wayId) {
function deleteNode(node, graph) {
return !graph.parentWays(node).length &&
!graph.parentRelations(node).length &&
@@ -1,4 +1,4 @@
iD.actions.DeprecateTags = function(entityId) {
module.exports = function(entityId) {
return function(graph) {
var entity = graph.entity(entityId),
newtags = _.clone(entity.tags),
@@ -1,4 +1,4 @@
iD.actions.DiscardTags = function(difference) {
module.exports = function(difference) {
return function(graph) {
function discardTags(entity) {
if (!_.isEmpty(entity.tags)) {
@@ -12,7 +12,7 @@
// https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/UnjoinNodeAction.as
// https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/actions/UnGlueAction.java
//
iD.actions.Disconnect = function(nodeId, newNodeId) {
module.exports = function(nodeId, newNodeId) {
var wayIds;
var action = function(graph) {
+33
View File
@@ -0,0 +1,33 @@
module.exports.AddEntity = require('./add_entity');
module.exports.AddMember = require('./add_member');
module.exports.AddMidpoint = require('./add_midpoint');
module.exports.AddVertex = require('./add_vertex');
module.exports.ChangeMember = require('./change_member');
module.exports.ChangePreset = require('./change_preset');
module.exports.ChangeTags = require('./change_tags');
module.exports.Circularize = require('./circularize');
module.exports.Connect = require('./connect');
module.exports.CopyEntities = require('./copy_entities');
module.exports.DeleteMember = require('./delete_member');
module.exports.DeleteMultiple = require('./delete_multiple');
module.exports.DeleteNode = require('./delete_node');
module.exports.DeleteRelation = require('./delete_relation');
module.exports.DeleteWay = require('./delete_way');
module.exports.DeprecateTags = require('./deprecate_tags');
module.exports.DiscardTags = require('./discard_tags');
module.exports.Disconnect = require('./disconnect');
module.exports.Join = require('./join');
module.exports.Merge = require('./merge');
module.exports.MergePolygon = require('./merge_polygon');
module.exports.MergeRemoteChanges = require('./merge_remote_changes');
module.exports.Move = require('./move');
module.exports.MoveNode = require('./move_node');
module.exports.Noop = require('./noop');
module.exports.Orthogonalize = require('./orthogonalize');
module.exports.RestrictTurn = require('./restrict_turn');
module.exports.Reverse = require('./reverse');
module.exports.Revert = require('./revert');
module.exports.RotateWay = require('./rotate_way');
module.exports.Split = require('./split');
module.exports.Straighten = require('./straighten');
module.exports.UnrestrictTurn = require('./unrestrict_turn');
@@ -6,7 +6,7 @@
// https://github.com/systemed/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/MergeWaysAction.as
// https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/actions/CombineWayAction.java
//
iD.actions.Join = function(ids) {
module.exports = function(ids) {
function groupEntitiesByGeometry(graph) {
var entities = ids.map(function(id) { return graph.entity(id); });
@@ -1,4 +1,4 @@
iD.actions.Merge = function(ids) {
module.exports = function(ids) {
function groupEntitiesByGeometry(graph) {
var entities = ids.map(function(id) { return graph.entity(id); });
return _.extend({point: [], area: [], line: [], relation: []},
@@ -1,4 +1,4 @@
iD.actions.MergePolygon = function(ids, newRelationId) {
module.exports = function(ids, newRelationId) {
function groupEntities(graph) {
var entities = ids.map(function (id) { return graph.entity(id); });
@@ -1,4 +1,4 @@
iD.actions.MergeRemoteChanges = function(id, localGraph, remoteGraph, formatUser) {
module.exports = function(id, localGraph, remoteGraph, formatUser) {
var option = 'safe', // 'safe', 'force_local', 'force_remote'
conflicts = [];
@@ -1,6 +1,6 @@
// https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/command/MoveCommand.java
// https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/MoveNodeAction.as
iD.actions.Move = function(moveIds, tryDelta, projection, cache) {
module.exports = function(moveIds, tryDelta, projection, cache) {
var delta = tryDelta;
function vecAdd(a, b) { return [a[0] + b[0], a[1] + b[1]]; }
@@ -1,6 +1,6 @@
// https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/command/MoveCommand.java
// https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/MoveNodeAction.as
iD.actions.MoveNode = function(nodeId, loc) {
module.exports = function(nodeId, loc) {
return function(graph) {
return graph.replace(graph.entity(nodeId).move(loc));
};
@@ -1,4 +1,4 @@
iD.actions.Noop = function() {
module.exports = function() {
return function(graph) {
return graph;
};
@@ -2,7 +2,7 @@
* Based on https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/potlatch2/tools/Quadrilateralise.as
*/
iD.actions.Orthogonalize = function(wayId, projection) {
module.exports = function(wayId, projection) {
var threshold = 12, // degrees within right or straight to alter
lowerThreshold = Math.cos((90 - threshold) * Math.PI / 180),
upperThreshold = Math.cos(threshold * Math.PI / 180);
@@ -22,7 +22,7 @@
// Normally, this will be undefined and the relation will automatically
// be assigned a new ID.
//
iD.actions.RestrictTurn = function(turn, projection, restrictionId) {
module.exports = function(turn, projection, restrictionId) {
return function(graph) {
var from = graph.entity(turn.from.way),
via = graph.entity(turn.via.node),
@@ -29,7 +29,7 @@
http://wiki.openstreetmap.org/wiki/Route#Members
http://josm.openstreetmap.de/browser/josm/trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java
*/
iD.actions.Reverse = function(wayId, options) {
module.exports = function(wayId, options) {
var replacements = [
[/:right$/, ':left'], [/:left$/, ':right'],
[/:forward$/, ':backward'], [/:backward$/, ':forward']
@@ -1,4 +1,4 @@
iD.actions.Revert = function(id) {
module.exports = function(id) {
var action = function(graph) {
var entity = graph.hasEntity(id),
@@ -1,4 +1,4 @@
iD.actions.RotateWay = function(wayId, pivot, angle, projection) {
module.exports = function(wayId, pivot, angle, projection) {
return function(graph) {
return graph.update(function(graph) {
var way = graph.entity(wayId);
@@ -12,7 +12,7 @@
// Reference:
// https://github.com/systemed/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/SplitWayAction.as
//
iD.actions.Split = function(nodeId, newWayIds) {
module.exports = function(nodeId, newWayIds) {
var wayIds;
// if the way is closed, we need to search for a partner node
@@ -2,7 +2,7 @@
* Based on https://github.com/openstreetmap/potlatch2/net/systemeD/potlatch2/tools/Straighten.as
*/
iD.actions.Straighten = function(wayId, projection) {
module.exports = function(wayId, projection) {
function positionAlongWay(n, s, e) {
return ((n[0] - s[0]) * (e[0] - s[0]) + (n[1] - s[1]) * (e[1] - s[1]))/
(Math.pow(e[0] - s[0], 2) + Math.pow(e[1] - s[1], 2));
@@ -16,7 +16,7 @@
// that restriction is also deleted, but at the same time restrictions on
// the turns other than the first two are created.
//
iD.actions.UnrestrictTurn = function(turn) {
module.exports = function(turn) {
return function(graph) {
return iD.actions.DeleteRelation(turn.restriction)(graph);
};
+1
View File
@@ -23,6 +23,7 @@
],
"license": "ISC",
"devDependencies": {
"browserify": "13.0.1",
"chai": "~1.9.2",
"d3": "3.5.5",
"editor-layer-index": "git://github.com/osmlab/editor-layer-index.git#gh-pages",
+1 -33
View File
@@ -131,39 +131,7 @@
<script src='../js/id/ui/preset/localized.js'></script>
<script src='../js/id/ui/preset/wikipedia.js'></script>
<script src='../js/id/actions.js'></script>
<script src='../js/id/actions/add_entity.js'></script>
<script src='../js/id/actions/add_member.js'></script>
<script src="../js/id/actions/add_midpoint.js"></script>
<script src='../js/id/actions/add_vertex.js'></script>
<script src='../js/id/actions/change_member.js'></script>
<script src='../js/id/actions/change_preset.js'></script>
<script src='../js/id/actions/change_tags.js'></script>
<script src='../js/id/actions/circularize.js'></script>
<script src='../js/id/actions/connect.js'></script>
<script src='../js/id/actions/copy_entities.js'></script>
<script src='../js/id/actions/delete_member.js'></script>
<script src='../js/id/actions/delete_multiple.js'></script>
<script src='../js/id/actions/delete_node.js'></script>
<script src="../js/id/actions/delete_relation.js"></script>
<script src="../js/id/actions/delete_way.js"></script>
<script src='../js/id/actions/discard_tags.js'></script>
<script src='../js/id/actions/disconnect.js'></script>
<script src='../js/id/actions/join.js'></script>
<script src='../js/id/actions/merge.js'></script>
<script src='../js/id/actions/merge_polygon.js'></script>
<script src='../js/id/actions/merge_remote_changes.js'></script>
<script src='../js/id/actions/move.js'></script>
<script src='../js/id/actions/move_node.js'></script>
<script src='../js/id/actions/noop.js'></script>
<script src='../js/id/actions/orthogonalize.js'></script>
<script src='../js/id/actions/restrict_turn.js'></script>
<script src='../js/id/actions/reverse.js'></script>
<script src='../js/id/actions/revert.js'></script>
<script src='../js/id/actions/rotate_way.js'></script>
<script src='../js/id/actions/split.js'></script>
<script src='../js/id/actions/straighten.js'></script>
<script src='../js/id/actions/unrestrict_turn.js'></script>
<script src='../dist/modules/actions.js'></script>
<script src='../js/id/behavior.js'></script>
<script src='../js/id/behavior/add_way.js'></script>