mirror of
https://github.com/UnickSoft/graphonline.git
synced 2025-07-01 23:36:00 +00:00
Merge pull request #40 from PonomarevIK/master: Major grammar and typo fixes
Major grammar and typo fixes
This commit is contained in:
commit
9aa9888e4b
@ -3,8 +3,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
// Return list of vertex with connected vertex.
|
||||
function getVertexToVertexArray(graph, ignoryDirection)
|
||||
// Return list of 'vertex = [connected vertices]'
|
||||
function getVertexToVertexArray(graph, ignoreDirection)
|
||||
{
|
||||
res = {};
|
||||
|
||||
@ -16,7 +16,7 @@ function getVertexToVertexArray(graph, ignoryDirection)
|
||||
res[edge.vertex1.id] = [];
|
||||
}
|
||||
res[edge.vertex1.id].push(edge.vertex2);
|
||||
if (!edge.isDirect || ignoryDirection)
|
||||
if (!edge.isDirect || ignoreDirection)
|
||||
{
|
||||
if (!res.hasOwnProperty(edge.vertex2.id))
|
||||
{
|
||||
@ -34,7 +34,7 @@ function getVertexToVertexArray(graph, ignoryDirection)
|
||||
var g_Algorithms = [];
|
||||
var g_AlgorithmIds = [];
|
||||
|
||||
// Call this function to register your factory algoritm.
|
||||
// Call this function to register your factory algorithm.
|
||||
function RegisterAlgorithm (factory)
|
||||
{
|
||||
g_Algorithms.push(factory);
|
||||
@ -48,13 +48,13 @@ function BaseAlgorithm (graph, app)
|
||||
this.app = app;
|
||||
}
|
||||
|
||||
// @return name of algorthm. For now we supports only 2 locals: "ru" and "en"
|
||||
// @return name of algorithm. For now we supports only 2 locals: "ru" and "en"
|
||||
BaseAlgorithm.prototype.getName = function(local)
|
||||
{
|
||||
return "unknown_name_" + local;
|
||||
}
|
||||
|
||||
// @return id of algorthm. Please use format: "your id"."algorithm id". Ex. "OlegSh.ConnectedComponent"
|
||||
// @return id of algorithm. Please use format: "your id"."algorithm id". Ex. "OlegSh.ConnectedComponent"
|
||||
BaseAlgorithm.prototype.getId = function()
|
||||
{
|
||||
return "unknown.unknown";
|
||||
@ -109,7 +109,7 @@ BaseAlgorithm.prototype.needRestoreUpText = function()
|
||||
return true;
|
||||
}
|
||||
|
||||
// @return true, if you change resotry graph after use.
|
||||
// @return true, if you change restore graph after use.
|
||||
BaseAlgorithm.prototype.wantRestore = function()
|
||||
{
|
||||
return false;
|
||||
@ -126,7 +126,7 @@ BaseAlgorithm.prototype.getObjectSelectedGroup = function(object)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// This methos is called, when messages was updated on html page.
|
||||
// This method is called, when messages was updated on html page.
|
||||
BaseAlgorithm.prototype.messageWasChanged = function() {}
|
||||
|
||||
// Algorithm priority in menu
|
||||
@ -172,7 +172,7 @@ BaseAlgorithmEx.prototype.CalculateAlgorithm = function(algorithmName, otherPara
|
||||
if (!graph.HasConnectedNodes(graph.vertices[i]))
|
||||
ignoreNodes[graph.vertices[i].id] = 1;
|
||||
|
||||
var creator = new GraphMLCreater(graph.vertices, graph.edges, ignoreNodes);
|
||||
var creator = new GraphMLCreator(graph.vertices, graph.edges, ignoreNodes);
|
||||
var pathObjects = [];
|
||||
var properties = {};
|
||||
var result = [];
|
||||
|
@ -11,7 +11,7 @@ function Application(document, window)
|
||||
this.canvas = this.document.getElementById('canvas');
|
||||
this.handler = new AddGraphHandler(this);
|
||||
this.savedGraphName = "";
|
||||
this.currentEnumVertesType = new BaseEnumVertices(this, 1);//this.enumVertexesTextList[0];
|
||||
this.currentEnumVerticesType = new BaseEnumVertices(this, 1);//this.enumVerticesTextList[0];
|
||||
this.findPathReport = 1;
|
||||
this.isTimerRender = false;
|
||||
globalApplication = this;
|
||||
@ -20,7 +20,7 @@ function Application(document, window)
|
||||
this.renderPathLength = 0;
|
||||
this.renderPathCounter = 0;
|
||||
this.renderPathLoops = 0;
|
||||
this.enumVertexesTextList = [new BaseEnumVertices(this, 1), new BaseEnumVertices(this, 0), new TextEnumVertexs(this), new TextEnumVertexsCyr(this), new TextEnumVertexsGreek(this), new TextEnumVertexsCustom(this)];
|
||||
this.enumVerticesTextList = [new BaseEnumVertices(this, 1), new BaseEnumVertices(this, 0), new TextEnumVertices(this), new TextEnumVerticesCyr(this), new TextEnumVerticesGreek(this), new TextEnumVerticesCustom(this)];
|
||||
this.SetDefaultTransformations();
|
||||
this.algorithmsValues = {};
|
||||
this.userAction = function(){};
|
||||
@ -58,7 +58,7 @@ function Application(document, window)
|
||||
|
||||
// List of graph.
|
||||
//Application.prototype.graph.vertices = [];
|
||||
// Current draged object.
|
||||
// Current dragged object.
|
||||
Application.prototype.graph = new Graph();
|
||||
Application.prototype.dragObject = -1;
|
||||
// List of graph.edges.
|
||||
@ -326,15 +326,15 @@ Application.prototype.GetBaseArcDrawer = function(context, edge)
|
||||
{
|
||||
var arcDrawer = new BaseEdgeDrawer(context);
|
||||
|
||||
if (edge.model.type == EdgeModels.cruvled)
|
||||
if (edge.model.type == EdgeModels.curve)
|
||||
{
|
||||
var curvedArcDrawer = new CurvedArcDrawer(context, edge.model);
|
||||
|
||||
arcDrawer = new BaseEdgeDrawer(context,
|
||||
{
|
||||
drawArc : curvedArcDrawer,
|
||||
startArrowDiretion : curvedArcDrawer,
|
||||
finishArrowDiretion : curvedArcDrawer,
|
||||
startArrowDirection : curvedArcDrawer,
|
||||
finishArrowDirection : curvedArcDrawer,
|
||||
textCenterObject : curvedArcDrawer,
|
||||
getPointOnArc : curvedArcDrawer
|
||||
}
|
||||
@ -570,7 +570,7 @@ Application.prototype.CreateNewGraph = function(x, y)
|
||||
{
|
||||
var app = this;
|
||||
|
||||
this.currentEnumVertesType.GetVertexTextAsync(
|
||||
this.currentEnumVerticesType.GetVertexTextAsync(
|
||||
function (enumType)
|
||||
{
|
||||
app.graph.AddNewVertex(new BaseVertex(x, y, enumType));
|
||||
@ -587,7 +587,7 @@ Application.prototype.CreateNewArc = function(graph1, graph2, isDirect, weight,
|
||||
{
|
||||
var edge = this.AddNewEdge(new BaseEdge(graph1, graph2, isDirect, weight, upText), replaceIfExist);
|
||||
|
||||
this.graph.FixEdgeCurved(edge);
|
||||
this.graph.FixEdgeCurve(edge);
|
||||
|
||||
var edgeObject = this.graph.edges[edge];
|
||||
|
||||
@ -661,9 +661,9 @@ Application.prototype.FindAllEdges = function(id1, id2)
|
||||
|
||||
Application.prototype.SetHandlerMode = function(mode)
|
||||
{
|
||||
var manipolationHandlers = ["default", "addGraph", "addArc", "delete", "findPath", "connectedComponent", "eulerianLoop"];
|
||||
var manipulationHandlers = ["default", "addGraph", "addArc", "delete", "findPath", "connectedComponent", "eulerianLoop"];
|
||||
|
||||
if (this.handler && (g_AlgorithmIds.indexOf(mode) >= 0 || manipolationHandlers.indexOf(mode) >= 0))
|
||||
if (this.handler && (g_AlgorithmIds.indexOf(mode) >= 0 || manipulationHandlers.indexOf(mode) >= 0))
|
||||
{
|
||||
this.handler.RestoreAll();
|
||||
}
|
||||
@ -799,7 +799,7 @@ Application.prototype.getParameterByName = function (name)
|
||||
|
||||
Application.prototype.onPostLoadEvent = function()
|
||||
{
|
||||
this.SetEnumVertexsType(document.cookie.replace(/(?:(?:^|.*;\s*)enumType\s*\=\s*([^;]*).*$)|^.*$/, "$1"));
|
||||
this.SetEnumVerticesType(document.cookie.replace(/(?:(?:^|.*;\s*)enumType\s*\=\s*([^;]*).*$)|^.*$/, "$1"));
|
||||
|
||||
var wasLoad = false;
|
||||
var matrix = document.getElementById("inputMatrix").innerHTML;
|
||||
@ -927,7 +927,7 @@ Application.prototype.SetAdjacencyMatrix = function (matrix, separator)
|
||||
res = false;
|
||||
}
|
||||
|
||||
this.graph.SetAdjacencyMatrix(matrix, new Point(this.GetRealWidth(), this.GetRealHeight()), this.currentEnumVertesType, separator);
|
||||
this.graph.SetAdjacencyMatrix(matrix, new Point(this.GetRealWidth(), this.GetRealHeight()), this.currentEnumVerticesType, separator);
|
||||
this.AutoAdjustViewport();
|
||||
this.redrawGraph();
|
||||
return res;
|
||||
@ -955,7 +955,7 @@ Application.prototype.SetIncidenceMatrix = function (matrix)
|
||||
res = false;
|
||||
}
|
||||
|
||||
this.graph.SetIncidenceMatrix(matrix, new Point(this.GetRealWidth(), this.GetRealHeight()), this.currentEnumVertesType);
|
||||
this.graph.SetIncidenceMatrix(matrix, new Point(this.GetRealWidth(), this.GetRealHeight()), this.currentEnumVerticesType);
|
||||
this.AutoAdjustViewport();
|
||||
this.redrawGraph();
|
||||
return res;
|
||||
@ -963,7 +963,7 @@ Application.prototype.SetIncidenceMatrix = function (matrix)
|
||||
|
||||
Application.prototype.Test = function ()
|
||||
{
|
||||
this.graph.VertexesReposition(new Point(this.GetRealWidth(), this.GetRealHeight()), this.graph.vertices);
|
||||
this.graph.VerticesReposition(new Point(this.GetRealWidth(), this.GetRealHeight()), this.graph.vertices);
|
||||
this.redrawGraph();
|
||||
}
|
||||
|
||||
@ -1146,7 +1146,7 @@ Application.prototype.LoadGraphFromString = function (str)
|
||||
this.graph = graph;
|
||||
if (this.graph.isNeedReposition())
|
||||
{
|
||||
this.graph.VertexesReposition(new Point(this.GetRealWidth(), this.GetRealHeight()), this.graph.vertices);
|
||||
this.graph.VerticesReposition(new Point(this.GetRealWidth(), this.GetRealHeight()), this.graph.vertices);
|
||||
}
|
||||
this.AutoAdjustViewport();
|
||||
this.updateMessage();
|
||||
@ -1206,17 +1206,17 @@ Application.prototype.SetDefaultHandler = function()
|
||||
this.SetHandlerMode("default");
|
||||
}
|
||||
|
||||
Application.prototype.GetEnumVertexsList = function()
|
||||
Application.prototype.GetEnumVerticesList = function()
|
||||
{
|
||||
var res = [];
|
||||
|
||||
for (var i = 0; i < this.enumVertexesTextList.length; i ++)
|
||||
for (var i = 0; i < this.enumVerticesTextList.length; i ++)
|
||||
{
|
||||
var one = {};
|
||||
one["text"] = this.enumVertexesTextList[i].GetText();
|
||||
one["value"] = this.enumVertexesTextList[i].GetValue();
|
||||
one["text"] = this.enumVerticesTextList[i].GetText();
|
||||
one["value"] = this.enumVerticesTextList[i].GetValue();
|
||||
|
||||
one["select"] = this.enumVertexesTextList[i].GetValue() == this.currentEnumVertesType.GetValue();
|
||||
one["select"] = this.enumVerticesTextList[i].GetValue() == this.currentEnumVerticesType.GetValue();
|
||||
|
||||
res.push(one);
|
||||
}
|
||||
@ -1224,13 +1224,13 @@ Application.prototype.GetEnumVertexsList = function()
|
||||
return res;
|
||||
}
|
||||
|
||||
Application.prototype.SetEnumVertexsType = function(value)
|
||||
Application.prototype.SetEnumVerticesType = function(value)
|
||||
{
|
||||
for (var i = 0; i < this.enumVertexesTextList.length; i ++)
|
||||
for (var i = 0; i < this.enumVerticesTextList.length; i ++)
|
||||
{
|
||||
if (this.enumVertexesTextList[i].GetValue() == value)
|
||||
if (this.enumVerticesTextList[i].GetValue() == value)
|
||||
{
|
||||
this.currentEnumVertesType = this.enumVertexesTextList[i];
|
||||
this.currentEnumVerticesType = this.enumVerticesTextList[i];
|
||||
document.cookie = "enumType=" + value;
|
||||
break;
|
||||
}
|
||||
@ -1698,14 +1698,14 @@ Application.prototype.ResetBackgroundStyle = function ()
|
||||
this.isBackgroundCommonStyleCustom = false;
|
||||
}
|
||||
|
||||
Application.prototype.GetAvalibleCruvledValue = function(neighbourEdges, originalEdge)
|
||||
Application.prototype.GetAvailableCurveValue = function(neighborEdges, originalEdge)
|
||||
{
|
||||
return this.graph.GetAvalibleCruvledValue(neighbourEdges, originalEdge);
|
||||
return this.graph.GetAvailableCurveValue(neighborEdges, originalEdge);
|
||||
}
|
||||
|
||||
Application.prototype.GraphTypeChanged = function()
|
||||
{
|
||||
$("#CanvasMessage").text(this.graph.isMulti() ? g_GrapsIsMultiMessage : g_GrapsIsGeneralMessage);
|
||||
$("#CanvasMessage").text(this.graph.isMulti() ? g_GraphIsMultiMessage : g_GraphIsGeneralMessage);
|
||||
}
|
||||
|
||||
Application.prototype.UpdateEdgePresets = function(weight)
|
||||
@ -1793,7 +1793,7 @@ Application.prototype.GetStyle = function(type, styleName, object, index)
|
||||
}
|
||||
|
||||
Application.prototype._RedrawGraph = function(context, backgroundPosition, backgroundStyle, bDrawSelectedRect,
|
||||
forceVertexCommon, forceVertexSeleceted, forceEdgeCommon, forceEdgeSelected)
|
||||
forceVertexCommon, forceVertexSelected, forceEdgeCommon, forceEdgeSelected)
|
||||
{
|
||||
var backgroundDrawer = new BaseBackgroundDrawer(context);
|
||||
|
||||
@ -1805,7 +1805,7 @@ Application.prototype._RedrawGraph = function(context, backgroundPosition, backg
|
||||
this.canvasScale);
|
||||
|
||||
this.UpdateEdgesCurrentStyle(forceEdgeCommon, forceEdgeSelected);
|
||||
this.UpdateNodesCurrentStyle(forceVertexCommon, forceVertexSeleceted);
|
||||
this.UpdateNodesCurrentStyle(forceVertexCommon, forceVertexSelected);
|
||||
|
||||
this.RedrawEdges(context);
|
||||
this.RedrawNodes(context);
|
||||
@ -1813,7 +1813,7 @@ Application.prototype._RedrawGraph = function(context, backgroundPosition, backg
|
||||
this.RedrawSelectionRect(context);
|
||||
}
|
||||
|
||||
Application.prototype.GetSelectedVertexes = function()
|
||||
Application.prototype.GetSelectedVertices = function()
|
||||
{
|
||||
var res = [];
|
||||
for (i = 0; i < this.graph.vertices.length; i ++)
|
@ -194,13 +194,13 @@ BaseEdge.prototype.GetEdgePositions = function()
|
||||
var d1 = diameter1;
|
||||
var d2 = diameter2;
|
||||
|
||||
if (this.model.type == EdgeModels.cruvled)
|
||||
if (this.model.type == EdgeModels.curve)
|
||||
{
|
||||
var dist = position1.distance(position2);
|
||||
var point1 = this.model.GetCurvedPoint(position1, position2, 10.0 / dist);
|
||||
var point1 = this.model.GetCurvePoint(position1, position2, 10.0 / dist);
|
||||
direction1 = position1.subtract(point1);
|
||||
|
||||
var point2 = this.model.GetCurvedPoint(position1, position2, 1.0 - 10.0 / dist);
|
||||
var point2 = this.model.GetCurvePoint(position1, position2, 1.0 - 10.0 / dist);
|
||||
direction2 = position2.subtract(point2);
|
||||
|
||||
d2 = diameter2;
|
||||
@ -213,11 +213,11 @@ BaseEdge.prototype.GetEdgePositions = function()
|
||||
direction1.normalize(1.0);
|
||||
direction2.normalize(1.0);
|
||||
|
||||
var vertexes = [];
|
||||
vertexes.push({vertex : this.vertex1, direction : direction1, position : position1, diameter : d1});
|
||||
vertexes.push({vertex : this.vertex2, direction : direction2, position : position2, diameter : d2});
|
||||
var vertices = [];
|
||||
vertices.push({vertex : this.vertex1, direction : direction1, position : position1, diameter : d1});
|
||||
vertices.push({vertex : this.vertex2, direction : direction2, position : position2, diameter : d2});
|
||||
|
||||
vertexes.forEach(function(data)
|
||||
vertices.forEach(function(data)
|
||||
{
|
||||
var shape = data.vertex.currentStyle.GetStyle({}, data.vertex).shape;
|
||||
if (shape == VertexCircleShape)
|
||||
|
@ -34,8 +34,8 @@ const WeightTextCenter = 0,
|
||||
baseStyle.fillStyle = this.fillStyle;
|
||||
if (this.hasOwnProperty('textPadding'))
|
||||
baseStyle.textPadding = this.textPadding;
|
||||
if (this.hasOwnProperty('textStrockeWidth'))
|
||||
baseStyle.textStrockeWidth = this.textStrockeWidth;
|
||||
if (this.hasOwnProperty('textStrokeWidth'))
|
||||
baseStyle.textStrokeWidth = this.textStrokeWidth;
|
||||
if (this.hasOwnProperty('lineDash'))
|
||||
baseStyle.lineDash = this.lineDash;
|
||||
if (this.hasOwnProperty('additionalTextColor'))
|
||||
@ -63,7 +63,7 @@ BaseEdgeStyle.prototype.FixNewFields = function (style)
|
||||
delete this.strokeStyle;
|
||||
delete this.fillStyle;
|
||||
delete this.textPadding;
|
||||
delete this.textStrockeWidth;
|
||||
delete this.textStrokeWidth;
|
||||
delete this.lineDash;
|
||||
delete this.additionalTextColor;
|
||||
delete this.weightPosition;
|
||||
@ -82,7 +82,7 @@ function CommonEdgeStyle()
|
||||
this.weightText = '#f0d543';
|
||||
this.fillStyle = '#68aeba';
|
||||
this.textPadding = 4;
|
||||
this.textStrockeWidth = 2;
|
||||
this.textStrokeWidth = 2;
|
||||
this.lineDash = 0;
|
||||
this.additionalTextColor = '#c7b7c7';
|
||||
this.weightPosition = WeightTextCenter;
|
||||
@ -98,7 +98,7 @@ function CommonPrintEdgeStyle()
|
||||
this.weightText = '#000000';
|
||||
this.fillStyle = '#FFFFFF';
|
||||
this.textPadding = 4;
|
||||
this.textStrockeWidth = 2;
|
||||
this.textStrokeWidth = 2;
|
||||
|
||||
this.baseStyles.push("common");
|
||||
}
|
||||
@ -194,8 +194,8 @@ function BaseEdgeDrawer(context, drawObjects)
|
||||
|
||||
this.drawObject = null;
|
||||
this.drawArc = null;
|
||||
this.startArrowDiretion = null;
|
||||
this.finishArrowDiretion = null;
|
||||
this.startArrowDirection = null;
|
||||
this.finishArrowDirection = null;
|
||||
this.textCenterObject = null;
|
||||
this.getPointOnArc = null;
|
||||
|
||||
@ -205,10 +205,10 @@ function BaseEdgeDrawer(context, drawObjects)
|
||||
this.drawObject = drawObjects.drawObject;
|
||||
if (drawObjects.hasOwnProperty("drawArc"))
|
||||
this.drawArc = drawObjects.drawArc;
|
||||
if (drawObjects.hasOwnProperty("startArrowDiretion"))
|
||||
this.startArrowDiretion = drawObjects.startArrowDiretion;
|
||||
if (drawObjects.hasOwnProperty("finishArrowDiretion"))
|
||||
this.finishArrowDiretion = drawObjects.finishArrowDiretion;
|
||||
if (drawObjects.hasOwnProperty("startArrowDirection"))
|
||||
this.startArrowDirection = drawObjects.startArrowDirection;
|
||||
if (drawObjects.hasOwnProperty("finishArrowDirection"))
|
||||
this.finishArrowDirection = drawObjects.finishArrowDirection;
|
||||
if (drawObjects.hasOwnProperty("textCenterObject"))
|
||||
this.textCenterObject = drawObjects.textCenterObject;
|
||||
if (drawObjects.hasOwnProperty("getPointOnArc"))
|
||||
@ -242,13 +242,13 @@ BaseEdgeDrawer.prototype.Draw = function(baseEdge, arcStyle)
|
||||
|
||||
if (hasStartStyle)
|
||||
{
|
||||
var dirArrow = this.GetStartArrowDiretion(positions[0], positions[1], lengthArrow);
|
||||
var dirArrow = this.GetStartArrowDirection(positions[0], positions[1], lengthArrow);
|
||||
arcPos1 = arcPos1.add(dirArrow.multiply(lengthArrow / 2));
|
||||
}
|
||||
|
||||
if (hasFinishStyle)
|
||||
{
|
||||
var dirArrow = this.GetFinishArrowDiretion(positions[0], positions[1], lengthArrow);
|
||||
var dirArrow = this.GetFinishArrowDirection(positions[0], positions[1], lengthArrow);
|
||||
arcPos2 = arcPos2.add(dirArrow.multiply(-lengthArrow / 2));
|
||||
}
|
||||
|
||||
@ -259,11 +259,11 @@ BaseEdgeDrawer.prototype.Draw = function(baseEdge, arcStyle)
|
||||
|
||||
if (hasStartStyle)
|
||||
{
|
||||
this.DrawArrow(positions[0], this.GetStartArrowDiretion(positions[0], positions[1], lengthArrow), lengthArrow, widthArrow);
|
||||
this.DrawArrow(positions[0], this.GetStartArrowDirection(positions[0], positions[1], lengthArrow), lengthArrow, widthArrow);
|
||||
}
|
||||
if (hasFinishStyle)
|
||||
{
|
||||
this.DrawArrow(positions[1], this.GetFinishArrowDiretion(positions[0], positions[1], lengthArrow), lengthArrow, widthArrow);
|
||||
this.DrawArrow(positions[1], this.GetFinishArrowDirection(positions[0], positions[1], lengthArrow), lengthArrow, widthArrow);
|
||||
}
|
||||
|
||||
this.SetupStyle(baseEdge, arcStyle);
|
||||
@ -336,7 +336,7 @@ BaseEdgeDrawer.prototype.DrawWeight = function(position1, position2, text, arcSt
|
||||
|
||||
this.context.font = "bold 16px sans-serif";
|
||||
this.context.textBaseline = "middle";
|
||||
this.context.lineWidth = arcStyle.textStrockeWidth;
|
||||
this.context.lineWidth = arcStyle.textStrokeWidth;
|
||||
this.context.fillStyle = arcStyle.fillStyle;
|
||||
|
||||
var widthText = this.context.measureText(text).width;
|
||||
@ -399,11 +399,11 @@ BaseEdgeDrawer.prototype.DrawArrow = function(position, direction, length, width
|
||||
this.context.fill();
|
||||
}
|
||||
|
||||
BaseEdgeDrawer.prototype.GetStartArrowDiretion = function(position1, position2, lengthArrow)
|
||||
BaseEdgeDrawer.prototype.GetStartArrowDirection = function(position1, position2, lengthArrow)
|
||||
{
|
||||
if (this.startArrowDiretion && this.startArrowDiretion != this)
|
||||
if (this.startArrowDirection && this.startArrowDirection != this)
|
||||
{
|
||||
return this.startArrowDiretion.GetStartArrowDiretion(position1, position2, lengthArrow);
|
||||
return this.startArrowDirection.GetStartArrowDirection(position1, position2, lengthArrow);
|
||||
}
|
||||
|
||||
var direction = position1.subtract(position2);
|
||||
@ -411,11 +411,11 @@ BaseEdgeDrawer.prototype.GetStartArrowDiretion = function(position1, position2,
|
||||
return direction;
|
||||
}
|
||||
|
||||
BaseEdgeDrawer.prototype.GetFinishArrowDiretion = function(position1, position2, lengthArrow)
|
||||
BaseEdgeDrawer.prototype.GetFinishArrowDirection = function(position1, position2, lengthArrow)
|
||||
{
|
||||
if (this.finishArrowDiretion && this.finishArrowDiretion != this)
|
||||
if (this.finishArrowDirection && this.finishArrowDirection != this)
|
||||
{
|
||||
return this.finishArrowDiretion.GetFinishArrowDiretion(position1, position2, lengthArrow);
|
||||
return this.finishArrowDirection.GetFinishArrowDirection(position1, position2, lengthArrow);
|
||||
}
|
||||
|
||||
var direction = position2.subtract(position1);
|
||||
@ -441,14 +441,14 @@ BaseEdgeDrawer.prototype.GetTextCenterPoint = function (position1, position2, ha
|
||||
return centerPoint;
|
||||
}
|
||||
|
||||
BaseEdgeDrawer.prototype.GetPointOnArc = function (position1, position2, procent)
|
||||
BaseEdgeDrawer.prototype.GetPointOnArc = function (position1, position2, percent)
|
||||
{
|
||||
if (this.getPointOnArc && this.getPointOnArc != this)
|
||||
{
|
||||
return this.getPointOnArc.GetPointOnArc(position1, position2, procent);
|
||||
return this.getPointOnArc.GetPointOnArc(position1, position2, percent);
|
||||
}
|
||||
|
||||
return Point.interpolate(position1, position2, procent);
|
||||
return Point.interpolate(position1, position2, percent);
|
||||
}
|
||||
|
||||
function ProgressArcDrawer(context, baseDrawer, progress)
|
||||
@ -526,25 +526,25 @@ CurvedArcDrawer.prototype.DrawArc = function(position1, position2, arcStyle)
|
||||
this.context.setLineDash([]);
|
||||
}
|
||||
|
||||
CurvedArcDrawer.prototype.GetStartArrowDiretion = function(position1, position2, lengthArrow)
|
||||
CurvedArcDrawer.prototype.GetStartArrowDirection = function(position1, position2, lengthArrow)
|
||||
{
|
||||
var dist = position1.distance(position2);
|
||||
var direction = position1.subtract(this.model.GetCurvedPoint(position1, position2, lengthArrow / dist));
|
||||
var direction = position1.subtract(this.model.GetCurvePoint(position1, position2, lengthArrow / dist));
|
||||
direction.normalize(1.0);
|
||||
return direction;
|
||||
}
|
||||
|
||||
CurvedArcDrawer.prototype.GetFinishArrowDiretion = function(position1, position2, lengthArrow)
|
||||
CurvedArcDrawer.prototype.GetFinishArrowDirection = function(position1, position2, lengthArrow)
|
||||
{
|
||||
var dist = position1.distance(position2);
|
||||
var direction = position2.subtract(this.model.GetCurvedPoint(position1, position2, 1.0 - lengthArrow / dist));
|
||||
var direction = position2.subtract(this.model.GetCurvePoint(position1, position2, 1.0 - lengthArrow / dist));
|
||||
direction.normalize(1.0);
|
||||
return direction;
|
||||
}
|
||||
|
||||
CurvedArcDrawer.prototype.GetTextCenterPoint = function (position1, position2, hasPair, arcStyle)
|
||||
{
|
||||
var centerPoint = this.model.GetCurvedPoint(position1, position2, 0.5)
|
||||
var centerPoint = this.model.GetCurvePoint(position1, position2, 0.5)
|
||||
if (position1.equals(position2))
|
||||
{
|
||||
centerPoint.y = centerPoint.y - Math.cos(this.model.GetLoopShiftAngel()) * this.model.GetLoopSize() * 2;
|
||||
@ -554,7 +554,7 @@ CurvedArcDrawer.prototype.GetTextCenterPoint = function (position1, position2, h
|
||||
return centerPoint;
|
||||
}
|
||||
|
||||
CurvedArcDrawer.prototype.GetPointOnArc = function (position1, position2, procent)
|
||||
CurvedArcDrawer.prototype.GetPointOnArc = function (position1, position2, percent)
|
||||
{
|
||||
return this.model.GetCurvedPoint(position1, position2, procent);
|
||||
return this.model.GetCurvePoint(position1, position2, percent);
|
||||
}
|
||||
|
@ -113,9 +113,9 @@ BaseVertex.prototype.HitTest = function (pos)
|
||||
}
|
||||
else
|
||||
{
|
||||
var relativPos = (new Point(pos.x, pos.y)).subtract(this.position);
|
||||
var lineFinish1 = relativPos.add(new Point(1000, 0));
|
||||
var lineFinish2 = relativPos.add(new Point(-1000, 0));
|
||||
var relativePos = (new Point(pos.x, pos.y)).subtract(this.position);
|
||||
var lineFinish1 = relativePos.add(new Point(1000, 0));
|
||||
var lineFinish2 = relativePos.add(new Point(-1000, 0));
|
||||
|
||||
var pointsVertex1 = GetPointsForShape(shape, this.model.diameter + width);
|
||||
pointsVertex1.push(pointsVertex1[0]);
|
||||
@ -125,12 +125,12 @@ BaseVertex.prototype.HitTest = function (pos)
|
||||
|
||||
for (var i = 0; i < pointsVertex1.length - 1; i ++)
|
||||
{
|
||||
var hitTest = Point.hitTest(relativPos, lineFinish1, pointsVertex1[i], pointsVertex1[i + 1]);
|
||||
var hitTest = Point.hitTest(relativePos, lineFinish1, pointsVertex1[i], pointsVertex1[i + 1]);
|
||||
if (hitTest != null)
|
||||
{
|
||||
hitNumber1++;
|
||||
}
|
||||
hitTest = Point.hitTest(relativPos, lineFinish2, pointsVertex1[i], pointsVertex1[i + 1]);
|
||||
hitTest = Point.hitTest(relativePos, lineFinish2, pointsVertex1[i], pointsVertex1[i + 1]);
|
||||
if (hitTest != null)
|
||||
{
|
||||
hitNumber2++;
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
var EdgeModels = {"line": 0, "cruvled" : 1};
|
||||
var EdgeModels = {"line": 0, "curve" : 1};
|
||||
|
||||
const defaultEdgeWidth = 4;
|
||||
|
||||
@ -11,19 +11,19 @@ function EdgeModel()
|
||||
{
|
||||
this.width = globalApplication.GetDefaultEdgeWidth();
|
||||
this.type = EdgeModels.line;
|
||||
this.curvedValue = EdgeModel.prototype.defaultCruved;
|
||||
this.curveValue = EdgeModel.prototype.defaultCurve;
|
||||
this.default = true;
|
||||
this.sizeOfLoop = 24;
|
||||
this.loopShiftAngel = Math.PI / 6;
|
||||
}
|
||||
|
||||
EdgeModel.prototype.defaultCruved = 0.1;
|
||||
EdgeModel.prototype.defaultCurve = 0.1;
|
||||
|
||||
EdgeModel.prototype.copyFrom = function(other)
|
||||
{
|
||||
this.width = other.width;
|
||||
this.type = other.type;
|
||||
this.curvedValue = other.curvedValue;
|
||||
this.curveValue = other.curveValue;
|
||||
this.default = other.default;
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ EdgeModel.prototype.SaveToXML = function ()
|
||||
{
|
||||
return "model_width=\"" + this.width + "\" " +
|
||||
"model_type=\"" + this.type + "\" " +
|
||||
"model_curvedValue=\"" + this.curvedValue + "\" "
|
||||
"model_curveValue=\"" + this.curveValue + "\" "
|
||||
"model_default=\"" + this.default + "\" ";
|
||||
}
|
||||
|
||||
@ -39,11 +39,11 @@ EdgeModel.prototype.LoadFromXML = function (xml, graph)
|
||||
{
|
||||
this.width = xml.attr('model_width') == null ? this.width : parseFloat(xml.attr("model_width"));
|
||||
this.type = xml.attr('model_type') == null ? this.type : xml.attr("model_type");
|
||||
this.curvedValue = xml.attr('model_curvedValue') == null ? this.curvedValue : parseFloat(xml.attr("model_curvedValue"));
|
||||
this.curveValue = xml.attr('model_curveValue') == null ? this.curveValue : parseFloat(xml.attr("model_curveValue"));
|
||||
this.default = xml.attr('model_default') == null ? this.default : parseFloat(xml.attr("model_default"));
|
||||
}
|
||||
|
||||
EdgeModel.prototype.GetCurvedPoint = function(position1, position2, t)
|
||||
EdgeModel.prototype.GetCurvePoint = function(position1, position2, t)
|
||||
{
|
||||
var points = this.GetBezierPoints(position1, position2);
|
||||
var firstBezierPoint = points[0];
|
||||
@ -76,7 +76,7 @@ EdgeModel.prototype.GetBezierPoints = function(position1, position2)
|
||||
direction.normalize(1.0);
|
||||
var normal = direction.normal();
|
||||
|
||||
var deltaOffsetPixels = delta * this.curvedValue;
|
||||
var deltaOffsetPixels = delta * this.curveValue;
|
||||
var yOffset = normal.multiply(deltaOffsetPixels);
|
||||
var firstBezierPointShift = (direction.multiply(delta * 0.2)).add(yOffset);
|
||||
var secondBezierPointShift = (direction.multiply(-delta * 0.2)).add(yOffset);
|
||||
@ -91,8 +91,8 @@ EdgeModel.prototype.HitTest = function(position1, position2, mousePos)
|
||||
{
|
||||
if (this.type == EdgeModels.line)
|
||||
return this.HitTestLine(position1, position2, mousePos);
|
||||
else if (this.type == EdgeModels.cruvled)
|
||||
return this.HitTestCurved(position1, position2, mousePos);
|
||||
else if (this.type == EdgeModels.curve)
|
||||
return this.HitTestCurve(position1, position2, mousePos);
|
||||
|
||||
return false;
|
||||
}
|
||||
@ -139,7 +139,7 @@ EdgeModel.prototype.HitTestLine = function(position1, position2, mousePos, facto
|
||||
return false;
|
||||
}
|
||||
|
||||
EdgeModel.prototype.HitTestCurved = function(position1, position2, mousePos)
|
||||
EdgeModel.prototype.HitTestCurve = function(position1, position2, mousePos)
|
||||
{
|
||||
var pos1 = position1;
|
||||
var pos2 = position2;
|
||||
@ -159,7 +159,7 @@ EdgeModel.prototype.HitTestCurved = function(position1, position2, mousePos)
|
||||
var start = position1;
|
||||
for (var i = 0; i < interval_count; i ++)
|
||||
{
|
||||
var finish = this.GetCurvedPoint(position1, position2, i / interval_count);
|
||||
var finish = this.GetCurvePoint(position1, position2, i / interval_count);
|
||||
|
||||
if (this.HitTestLine(start, finish, mousePos, 2.0))
|
||||
return true;
|
||||
@ -170,33 +170,33 @@ EdgeModel.prototype.HitTestCurved = function(position1, position2, mousePos)
|
||||
return false;
|
||||
}
|
||||
|
||||
EdgeModel.prototype.ChangeCurvedValue = function (delta)
|
||||
EdgeModel.prototype.ChangeCurveValue = function (delta)
|
||||
{
|
||||
if (this.type == EdgeModels.line)
|
||||
{
|
||||
this.type = EdgeModels.cruvled;
|
||||
this.curvedValue = 0.0;
|
||||
this.type = EdgeModels.curve;
|
||||
this.curveValue = 0.0;
|
||||
}
|
||||
|
||||
this.curvedValue = this.curvedValue + delta;
|
||||
this.curveValue = this.curveValue + delta;
|
||||
|
||||
if (Math.abs(this.curvedValue) <= 0.01)
|
||||
if (Math.abs(this.curveValue) <= 0.01)
|
||||
this.type = EdgeModels.line;
|
||||
|
||||
this.default = false;
|
||||
}
|
||||
|
||||
EdgeModel.prototype.SetCurvedValue = function (value)
|
||||
EdgeModel.prototype.SetCurveValue = function (value)
|
||||
{
|
||||
if (this.type == EdgeModels.line)
|
||||
{
|
||||
this.type = EdgeModels.cruvled;
|
||||
this.curvedValue = 0.0;
|
||||
this.type = EdgeModels.curve;
|
||||
this.curveValue = 0.0;
|
||||
}
|
||||
|
||||
this.curvedValue = value;
|
||||
this.curveValue = value;
|
||||
|
||||
if (Math.abs(this.curvedValue) <= 0.01)
|
||||
if (Math.abs(this.curveValue) <= 0.01)
|
||||
this.type = EdgeModels.line;
|
||||
|
||||
this.default = false;
|
||||
@ -204,11 +204,26 @@ EdgeModel.prototype.SetCurvedValue = function (value)
|
||||
|
||||
EdgeModel.prototype.GetLoopSize = function ()
|
||||
{
|
||||
if (Math.abs(this.curveValue) <= 0.01)
|
||||
{ // without this condition arc disappears when curveValue=0
|
||||
return this.sizeOfLoop;
|
||||
}
|
||||
else
|
||||
{ // bigger curveValue -> bigger loop size
|
||||
return this.sizeOfLoop*Math.abs(this.curveValue)*(1/this.defaultCurve);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
EdgeModel.prototype.GetLoopShiftAngel = function ()
|
||||
{
|
||||
if (this.curveValue > 0)
|
||||
{ // shift to top-left
|
||||
return this.loopShiftAngel;
|
||||
}
|
||||
else
|
||||
{ // shift to bottom-right
|
||||
return this.loopShiftAngel + Math.PI;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
/*
|
||||
Classes for create text for vertexs.
|
||||
Classes for creating text for vertices.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Base Enum Vertexs.
|
||||
* Base Enum Vertices.
|
||||
*
|
||||
*/
|
||||
function BaseEnumVertices(app, startNumber)
|
||||
@ -55,7 +55,7 @@ TextEnumTitle.prototype.GetVertexText = function(id)
|
||||
* Text Enum
|
||||
*
|
||||
*/
|
||||
function TextEnumVertexs(app)
|
||||
function TextEnumVertices(app)
|
||||
{
|
||||
BaseEnumVertices.apply(this, arguments);
|
||||
this.pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
@ -63,9 +63,9 @@ function TextEnumVertexs(app)
|
||||
|
||||
|
||||
// inheritance.
|
||||
TextEnumVertexs.prototype = Object.create(BaseEnumVertices.prototype);
|
||||
TextEnumVertices.prototype = Object.create(BaseEnumVertices.prototype);
|
||||
|
||||
TextEnumVertexs.prototype.GetVertexText = function(id)
|
||||
TextEnumVertices.prototype.GetVertexText = function(id)
|
||||
{
|
||||
var res = "";
|
||||
|
||||
@ -81,12 +81,12 @@ TextEnumVertexs.prototype.GetVertexText = function(id)
|
||||
}
|
||||
|
||||
|
||||
TextEnumVertexs.prototype.GetText = function()
|
||||
TextEnumVertices.prototype.GetText = function()
|
||||
{
|
||||
return "A, B, ... Z";
|
||||
}
|
||||
|
||||
TextEnumVertexs.prototype.GetValue = function()
|
||||
TextEnumVertices.prototype.GetValue = function()
|
||||
{
|
||||
return "Latin";
|
||||
}
|
||||
@ -95,22 +95,22 @@ TextEnumVertexs.prototype.GetValue = function()
|
||||
* Text Enum
|
||||
*
|
||||
*/
|
||||
function TextEnumVertexsCyr(app)
|
||||
function TextEnumVerticesCyr(app)
|
||||
{
|
||||
TextEnumVertexs.apply(this, arguments);
|
||||
TextEnumVertices.apply(this, arguments);
|
||||
this.pattern = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
|
||||
}
|
||||
|
||||
|
||||
// inheritance.
|
||||
TextEnumVertexsCyr.prototype = Object.create(TextEnumVertexs.prototype);
|
||||
TextEnumVerticesCyr.prototype = Object.create(TextEnumVertices.prototype);
|
||||
|
||||
TextEnumVertexsCyr.prototype.GetText = function()
|
||||
TextEnumVerticesCyr.prototype.GetText = function()
|
||||
{
|
||||
return "А, Б, ... Я";
|
||||
}
|
||||
|
||||
TextEnumVertexsCyr.prototype.GetValue = function()
|
||||
TextEnumVerticesCyr.prototype.GetValue = function()
|
||||
{
|
||||
return "Cyrillic";
|
||||
}
|
||||
@ -120,22 +120,22 @@ TextEnumVertexsCyr.prototype.GetValue = function()
|
||||
* Text Enum
|
||||
*
|
||||
*/
|
||||
function TextEnumVertexsGreek(app)
|
||||
function TextEnumVerticesGreek(app)
|
||||
{
|
||||
TextEnumVertexs.apply(this, arguments);
|
||||
TextEnumVertices.apply(this, arguments);
|
||||
this.pattern = "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ";
|
||||
}
|
||||
|
||||
|
||||
// inheritance.
|
||||
TextEnumVertexsGreek.prototype = Object.create(TextEnumVertexs.prototype);
|
||||
TextEnumVerticesGreek.prototype = Object.create(TextEnumVertices.prototype);
|
||||
|
||||
TextEnumVertexsGreek.prototype.GetText = function()
|
||||
TextEnumVerticesGreek.prototype.GetText = function()
|
||||
{
|
||||
return "Α, Β, ... Ω";
|
||||
}
|
||||
|
||||
TextEnumVertexsGreek.prototype.GetValue = function()
|
||||
TextEnumVerticesGreek.prototype.GetValue = function()
|
||||
{
|
||||
return "Greek";
|
||||
}
|
||||
@ -144,7 +144,7 @@ TextEnumVertexsGreek.prototype.GetValue = function()
|
||||
* Text Enum
|
||||
*
|
||||
*/
|
||||
function TextEnumVertexsCustom(app)
|
||||
function TextEnumVerticesCustom(app)
|
||||
{
|
||||
BaseEnumVertices.apply(this, arguments);
|
||||
this.pattern = "";
|
||||
@ -153,25 +153,25 @@ function TextEnumVertexsCustom(app)
|
||||
|
||||
|
||||
// inheritance.
|
||||
TextEnumVertexsCustom.prototype = Object.create(BaseEnumVertices.prototype);
|
||||
TextEnumVerticesCustom.prototype = Object.create(BaseEnumVertices.prototype);
|
||||
|
||||
TextEnumVertexsCustom.prototype.GetText = function()
|
||||
TextEnumVerticesCustom.prototype.GetText = function()
|
||||
{
|
||||
return g_customEnumVertex;
|
||||
}
|
||||
|
||||
TextEnumVertexsCustom.prototype.GetValue = function()
|
||||
TextEnumVerticesCustom.prototype.GetValue = function()
|
||||
{
|
||||
return "Custom";
|
||||
}
|
||||
|
||||
TextEnumVertexsCustom.prototype.GetVertexTextAsync = function(callback)
|
||||
TextEnumVerticesCustom.prototype.GetVertexTextAsync = function(callback)
|
||||
{
|
||||
this.ShowDialog(callback, g_addVertex, g_addVertex, "A");
|
||||
}
|
||||
|
||||
|
||||
TextEnumVertexsCustom.prototype.ShowDialog = function(callback, buttonText, titleTitle, title)
|
||||
TextEnumVerticesCustom.prototype.ShowDialog = function(callback, buttonText, titleTitle, title)
|
||||
{
|
||||
var dialogButtons = {};
|
||||
app = this.app;
|
||||
|
@ -226,7 +226,7 @@ BaseHandler.prototype.addContextMenu = function()
|
||||
handler.RenameVertex(enumType.GetVertexText(0), handler.contextMenuObject);
|
||||
userAction("RenameVertex_contextMenu");
|
||||
};
|
||||
var customEnum = new TextEnumVertexsCustom(handler.app);
|
||||
var customEnum = new TextEnumVerticesCustom(handler.app);
|
||||
customEnum.ShowDialog(callback, g_rename, g_renameVertex, handler.contextMenuObject.mainText);
|
||||
}
|
||||
});
|
||||
@ -481,8 +481,8 @@ function DefaultHandler(app)
|
||||
DefaultHandler.prototype = Object.create(BaseHandler.prototype);
|
||||
// Is pressed
|
||||
DefaultHandler.prototype.pressed = false;
|
||||
// Cuvled change value.
|
||||
DefaultHandler.prototype.curvedValue = 0.1;
|
||||
// Curve change value.
|
||||
DefaultHandler.prototype.curveValue = 0.1;
|
||||
|
||||
DefaultHandler.prototype.GetSelectedVertex = function()
|
||||
{
|
||||
@ -633,18 +633,18 @@ DefaultHandler.prototype.MouseUp = function(pos)
|
||||
};
|
||||
$('#message').unbind();
|
||||
$('#message').on('click', '#renameButton', function(){
|
||||
var customEnum = new TextEnumVertexsCustom(handler.app);
|
||||
var customEnum = new TextEnumVerticesCustom(handler.app);
|
||||
customEnum.ShowDialog(callback, g_rename, g_renameVertex, handler.selectedObject.mainText);
|
||||
});
|
||||
$('#message').on('click', '#changeCommonStyle', function(){
|
||||
var selectedVertexes = handler.app.GetSelectedVertexes();
|
||||
var selectedVertices = handler.app.GetSelectedVertices();
|
||||
var setupVertexStyle = new SetupVertexStyle(handler.app);
|
||||
setupVertexStyle.show(0, selectedVertexes);
|
||||
setupVertexStyle.show(0, selectedVertices);
|
||||
});
|
||||
$('#message').on('click', '#changeSelectedStyle', function(){
|
||||
var selectedVertexes = handler.app.GetSelectedVertexes();
|
||||
var selectedVertices = handler.app.GetSelectedVertices();
|
||||
var setupVertexStyle = new SetupVertexStyle(handler.app);
|
||||
setupVertexStyle.show(1, selectedVertexes);
|
||||
setupVertexStyle.show(1, selectedVertices);
|
||||
});
|
||||
}
|
||||
else if (this.selectedObject != null && (this.selectedObject instanceof BaseEdge))
|
||||
@ -717,7 +717,7 @@ DefaultHandler.prototype.MouseUp = function(pos)
|
||||
$('#message').on('click', '#incCurvel', function(){
|
||||
handler.app.PushToStack("ChangeCurvelEdge");
|
||||
|
||||
handler.selectedObject.model.ChangeCurvedValue(DefaultHandler.prototype.curvedValue);
|
||||
handler.selectedObject.model.ChangeCurveValue(DefaultHandler.prototype.curveValue);
|
||||
handler.needRedraw = true;
|
||||
handler.app.redrawGraph();
|
||||
userAction("Edge.Bend");
|
||||
@ -725,7 +725,7 @@ DefaultHandler.prototype.MouseUp = function(pos)
|
||||
$('#message').on('click', '#decCurvel', function(){
|
||||
handler.app.PushToStack("ChangeCurvelEdge");
|
||||
|
||||
handler.selectedObject.model.ChangeCurvedValue(-DefaultHandler.prototype.curvedValue);
|
||||
handler.selectedObject.model.ChangeCurveValue(-DefaultHandler.prototype.curveValue);
|
||||
handler.needRedraw = true;
|
||||
handler.app.redrawGraph();
|
||||
userAction("Edge.Bend");
|
||||
@ -745,14 +745,14 @@ DefaultHandler.prototype.MouseUp = function(pos)
|
||||
{
|
||||
this.message = g_dragGroupText + " <span class=\"hidden-phone\">" + g_selectGroupText + "</span>";
|
||||
|
||||
var hasVertexes = false;
|
||||
var hasVertices = false;
|
||||
var hasEdges = false;
|
||||
for(var i = 0; i < this.selectedObjects.length; i ++)
|
||||
{
|
||||
var object = this.selectedObjects[i];
|
||||
if (object instanceof BaseVertex)
|
||||
{
|
||||
hasVertexes = true;
|
||||
hasVertices = true;
|
||||
}
|
||||
else if (object instanceof BaseEdge)
|
||||
{
|
||||
@ -779,7 +779,7 @@ DefaultHandler.prototype.MouseUp = function(pos)
|
||||
this.message = this.message + " <li><a href=\"#\" id=\"changeSelectedStyleEdge\">" + g_selectedEdgeStyle + "</a></li>";
|
||||
}
|
||||
|
||||
if (hasVertexes) {
|
||||
if (hasVertices) {
|
||||
this.message = this.message + " <li><a href=\"#\" id=\"changeCommonStyleVertex\">" + g_commonVertexStyle + "</a></li>";
|
||||
this.message = this.message + " <li><a href=\"#\" id=\"changeSelectedStyleVertex\">" + g_selectedVertexStyle + "</a></li>";
|
||||
}
|
||||
@ -841,11 +841,11 @@ DefaultHandler.prototype.MouseUp = function(pos)
|
||||
handler.app.AddNewEdge(newObject);
|
||||
if (!toNewVertex)
|
||||
{
|
||||
var neighbourEdges = handler.app.graph.getNeighbourEdges(newObject);
|
||||
if (neighbourEdges.length >= 1)
|
||||
var neighborEdges = handler.app.graph.getNeighborEdges(newObject);
|
||||
if (neighborEdges.length >= 1)
|
||||
{
|
||||
var cruvled = handler.app.GetAvalibleCruvledValue(neighbourEdges, newObject);
|
||||
newObject.model.SetCurvedValue(cruvled);
|
||||
var curve = handler.app.GetAvailableCurveValue(neighborEdges, newObject);
|
||||
newObject.model.SetCurveValue(curve);
|
||||
}
|
||||
}
|
||||
newSelected.push(newObject);
|
||||
@ -883,16 +883,16 @@ DefaultHandler.prototype.MouseUp = function(pos)
|
||||
});
|
||||
}
|
||||
|
||||
if (hasVertexes) {
|
||||
if (hasVertices) {
|
||||
$('#message').on('click', '#changeCommonStyleVertex', function(){
|
||||
var selectedVertexes = handler.app.GetSelectedVertexes();
|
||||
var selectedVertices = handler.app.GetSelectedVertices();
|
||||
var setupVertexStyle = new SetupVertexStyle(handler.app);
|
||||
setupVertexStyle.show(0, selectedVertexes);
|
||||
setupVertexStyle.show(0, selectedVertices);
|
||||
});
|
||||
$('#message').on('click', '#changeSelectedStyleVertex', function(){
|
||||
var selectedVertexes = handler.app.GetSelectedVertexes();
|
||||
var selectedVertices = handler.app.GetSelectedVertices();
|
||||
var setupVertexStyle = new SetupVertexStyle(handler.app);
|
||||
setupVertexStyle.show(1, selectedVertexes);
|
||||
setupVertexStyle.show(1, selectedVertices);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -956,7 +956,7 @@ AddGraphHandler.prototype.InitControls = function()
|
||||
var enumVertexsText = document.getElementById("enumVertexsText");
|
||||
if (enumVertexsText)
|
||||
{
|
||||
var enumsList = this.app.GetEnumVertexsList();
|
||||
var enumsList = this.app.GetEnumVerticesList();
|
||||
for (var i = 0; i < enumsList.length; i ++)
|
||||
{
|
||||
var option = document.createElement('option');
|
||||
@ -980,7 +980,7 @@ AddGraphHandler.prototype.ChangedType = function()
|
||||
{
|
||||
var enumVertexsText = document.getElementById("enumVertexsText");
|
||||
|
||||
this.app.SetEnumVertexsType(enumVertexsText.options[enumVertexsText.selectedIndex].value);
|
||||
this.app.SetEnumVerticesType(enumVertexsText.options[enumVertexsText.selectedIndex].value);
|
||||
}
|
||||
|
||||
|
||||
@ -1062,7 +1062,7 @@ ConnectionGraphHandler.prototype.SelectFirst = function()
|
||||
let hasDirectedEdges = this.app.graph.hasDirectEdge();
|
||||
let hasUndirectedEdges = this.app.graph.hasUndirectEdge();
|
||||
|
||||
this.message = g_selectFisrtVertexToConnect + this.GetSelect2VertexMenu();
|
||||
this.message = g_selectFirstVertexToConnect + this.GetSelect2VertexMenu();
|
||||
|
||||
if (!hasEdges) {
|
||||
return;
|
||||
@ -1071,7 +1071,7 @@ ConnectionGraphHandler.prototype.SelectFirst = function()
|
||||
this.message =
|
||||
". <div class=\"btn-group\" style=\"float:right; position: relative; margin-left: 8px\">"
|
||||
+ "<button type=\"button\" class=\"btn btn-default btn-sm dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">"
|
||||
+ g_additionlActions + " <span class=\"caret\"></span>"
|
||||
+ g_additionalActions + " <span class=\"caret\"></span>"
|
||||
+ " </button> "
|
||||
+ "<ul class=\"dropdown-menu dropdown-menu-right\" style=\"z-index:15; position: absolute;\">"
|
||||
+ (hasDirectedEdges ? " <li><a href=\"#\" id=\"reverseAll\">" + g_reverseAllEdges + "</a></li>" : "")
|
||||
@ -1457,7 +1457,7 @@ SavedDialogGraphImageHandler.prototype.pathObjects = null;
|
||||
// Objects.
|
||||
SavedDialogGraphImageHandler.prototype.objects = null;
|
||||
|
||||
SavedDialogGraphImageHandler.prototype.showDialogCallback = function (imageExtention)
|
||||
SavedDialogGraphImageHandler.prototype.showDialogCallback = function (imageExtension)
|
||||
{
|
||||
var dialogButtons = {};
|
||||
|
||||
@ -1465,7 +1465,7 @@ SavedDialogGraphImageHandler.prototype.showDialogCallback = function (imageExten
|
||||
$( this ).dialog( "close" );
|
||||
};
|
||||
|
||||
var fileLocation = "tmp/saved/" + this.imageName.substr(0, 2) + "/"+ this.imageName + "." + imageExtention
|
||||
var fileLocation = "tmp/saved/" + this.imageName.substr(0, 2) + "/"+ this.imageName + "." + imageExtension
|
||||
|
||||
document.getElementById("showSavedImageGraph").src = "/" + fileLocation;
|
||||
document.getElementById("showSavedImageGraphRef").href = "/" + fileLocation;
|
||||
@ -1538,7 +1538,7 @@ function AlgorithmGraphHandler(app, algorithm)
|
||||
this.algorithm = algorithm;
|
||||
this.SaveUpText();
|
||||
|
||||
this.UpdateResultAndMesasge();
|
||||
this.UpdateResultAndMessage();
|
||||
}
|
||||
|
||||
// inheritance.
|
||||
@ -1565,7 +1565,7 @@ AlgorithmGraphHandler.prototype.MouseDown = function(pos)
|
||||
this.needRedraw = true;
|
||||
}
|
||||
|
||||
this.UpdateResultAndMesasge();
|
||||
this.UpdateResultAndMessage();
|
||||
}
|
||||
else if (selectedObject && (selectedObject instanceof BaseEdge))
|
||||
{
|
||||
@ -1574,14 +1574,14 @@ AlgorithmGraphHandler.prototype.MouseDown = function(pos)
|
||||
this.needRedraw = true;
|
||||
}
|
||||
|
||||
this.UpdateResultAndMesasge();
|
||||
this.UpdateResultAndMessage();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.algorithm.deselectAll())
|
||||
{
|
||||
this.needRedraw = true;
|
||||
this.UpdateResultAndMesasge();
|
||||
this.UpdateResultAndMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1632,7 +1632,7 @@ AlgorithmGraphHandler.prototype.RestoreUpText = function()
|
||||
}
|
||||
}
|
||||
|
||||
AlgorithmGraphHandler.prototype.UpdateResultAndMesasge = function()
|
||||
AlgorithmGraphHandler.prototype.UpdateResultAndMessage = function()
|
||||
{
|
||||
var self = this;
|
||||
result = this.algorithm.result(function (result)
|
||||
@ -1729,15 +1729,15 @@ function SetupVertexStyle(app)
|
||||
// inheritance.
|
||||
SetupVertexStyle.prototype = Object.create(BaseHandler.prototype);
|
||||
|
||||
SetupVertexStyle.prototype.show = function(index, selectedVertexes)
|
||||
SetupVertexStyle.prototype.show = function(index, selectedVertices)
|
||||
{
|
||||
var handler = this;
|
||||
var dialogButtons = {};
|
||||
var graph = this.app.graph;
|
||||
var app = this.app;
|
||||
this.forAll = selectedVertexes == null;
|
||||
this.forAll = selectedVertices == null;
|
||||
var forAll = this.forAll;
|
||||
var sefl = this;
|
||||
var self = this;
|
||||
|
||||
var applyIndex = function(index)
|
||||
{
|
||||
@ -1745,7 +1745,7 @@ SetupVertexStyle.prototype.show = function(index, selectedVertexes)
|
||||
self.originStyle = (self.index == 0 ? app.vertexCommonStyle : app.vertexSelectedVertexStyles[self.index - 1]);
|
||||
if (!forAll)
|
||||
{
|
||||
self.originStyle = selectedVertexes[0].getStyleFor(self.index);
|
||||
self.originStyle = selectedVertices[0].getStyleFor(self.index);
|
||||
}
|
||||
self.style = FullObjectCopy(self.originStyle);
|
||||
}
|
||||
@ -1754,7 +1754,7 @@ SetupVertexStyle.prototype.show = function(index, selectedVertexes)
|
||||
|
||||
var fillFields = function()
|
||||
{
|
||||
var fullStyle = self.style.GetStyle({}, forAll ? undefined : selectedVertexes[0]);
|
||||
var fullStyle = self.style.GetStyle({}, forAll ? undefined : selectedVertices[0]);
|
||||
|
||||
$( "#vertexFillColor" ).val(fullStyle.fillStyle);
|
||||
$( "#vertexStrokeColor" ).val(fullStyle.strokeStyle);
|
||||
@ -1762,7 +1762,7 @@ SetupVertexStyle.prototype.show = function(index, selectedVertexes)
|
||||
$( "#upVertexTextColor" ).val(fullStyle.upTextColor);
|
||||
$( "#vertexStrokeSize" ).val(fullStyle.lineWidth);
|
||||
$( "#vertexShape" ).val(fullStyle.shape);
|
||||
$( "#vertexSize" ).val(forAll ? app.GetDefaultVertexSize() : selectedVertexes[0].model.diameter);
|
||||
$( "#vertexSize" ).val(forAll ? app.GetDefaultVertexSize() : selectedVertices[0].model.diameter);
|
||||
$( "#commonTextPosition" ).val(fullStyle.commonTextPosition);
|
||||
|
||||
if (self.index > 0 || self.index == "all")
|
||||
@ -1811,7 +1811,7 @@ SetupVertexStyle.prototype.show = function(index, selectedVertexes)
|
||||
|
||||
var redrawVertex = function()
|
||||
{
|
||||
var fullStyle = self.style.GetStyle({}, forAll ? undefined : selectedVertexes[0]);
|
||||
var fullStyle = self.style.GetStyle({}, forAll ? undefined : selectedVertices[0]);
|
||||
|
||||
if (fullStyle.fillStyle != $( "#vertexFillColor" ).val())
|
||||
self.style.fillStyle = $( "#vertexFillColor" ).val();
|
||||
@ -1851,7 +1851,7 @@ SetupVertexStyle.prototype.show = function(index, selectedVertexes)
|
||||
baseVertex.model.diameter = diameter;
|
||||
|
||||
if (!forAll)
|
||||
baseVertex.ownStyles = selectedVertexes[0].ownStyles;
|
||||
baseVertex.ownStyles = selectedVertices[0].ownStyles;
|
||||
|
||||
graphDrawer.Draw(baseVertex, self.style.GetStyle({}, baseVertex));
|
||||
|
||||
@ -1885,7 +1885,7 @@ SetupVertexStyle.prototype.show = function(index, selectedVertexes)
|
||||
}
|
||||
else
|
||||
{
|
||||
selectedVertexes.forEach(function(vertex) {
|
||||
selectedVertices.forEach(function(vertex) {
|
||||
vertex.model.diameter = diameter;
|
||||
});
|
||||
}
|
||||
@ -1919,7 +1919,7 @@ SetupVertexStyle.prototype.show = function(index, selectedVertexes)
|
||||
}
|
||||
else
|
||||
{
|
||||
selectedVertexes.forEach(function(vertex) {
|
||||
selectedVertices.forEach(function(vertex) {
|
||||
indexes.forEach(function(index) {
|
||||
vertex.resetOwnStyle(index);
|
||||
});
|
||||
@ -1963,7 +1963,7 @@ SetupVertexStyle.prototype.show = function(index, selectedVertexes)
|
||||
{
|
||||
if (JSON.stringify(self.originStyle) !== JSON.stringify(self.style))
|
||||
{
|
||||
selectedVertexes.forEach(function(vertex) {
|
||||
selectedVertices.forEach(function(vertex) {
|
||||
indexes.forEach(function(index) {
|
||||
vertex.setOwnStyle(index.index, index.style);
|
||||
});
|
||||
|
140
script/Graph.js
140
script/Graph.js
@ -22,14 +22,14 @@ function Graph()
|
||||
|
||||
// infinity
|
||||
Graph.prototype.infinity = 1E8;
|
||||
// Max vertexes
|
||||
Graph.prototype.maxVertexes = 1000;
|
||||
// Max vertices
|
||||
Graph.prototype.maxVertices = 1000;
|
||||
// Offset for edges ids.
|
||||
Graph.prototype.edgesOffset = 10000;
|
||||
|
||||
Graph.prototype.AddNewVertex = function(vertex)
|
||||
{
|
||||
if (this.vertices.length <= this.maxVertexes)
|
||||
if (this.vertices.length <= this.maxVertices)
|
||||
{
|
||||
vertex.SetId (this.uidGraph);
|
||||
this.uidGraph = this.uidGraph + 1;
|
||||
@ -138,7 +138,7 @@ Graph.prototype.FindVertex = function(id)
|
||||
return res;
|
||||
}
|
||||
|
||||
// depricated
|
||||
// deprecated
|
||||
Graph.prototype.FindEdge = function(id1, id2)
|
||||
{
|
||||
return this.FindEdgeAny(id1, id2);
|
||||
@ -350,7 +350,7 @@ Graph.prototype.TestAdjacencyMatrix = function (matrix, rowsObj, colsObj, separa
|
||||
}
|
||||
|
||||
|
||||
Graph.prototype.IsVertexesHasSamePosition = function (position, vertexCount)
|
||||
Graph.prototype.IsVerticesHaveSamePosition = function (position, vertexCount)
|
||||
{
|
||||
var res = false;
|
||||
|
||||
@ -399,7 +399,7 @@ Graph.prototype.GetRandomPositionOfVertex = function (matrix, vertexIndex, viewp
|
||||
point = new Point(Math.random() * viewportSize.x, Math.random() * viewportSize.y);
|
||||
}
|
||||
|
||||
if (this.IsVertexesHasSamePosition (point, matrix.length))
|
||||
if (this.IsVerticesHaveSamePosition (point, matrix.length))
|
||||
{
|
||||
point.offset (Math.random() * diameter + + (Math.random() ? -1 : 1) * 4 * diameter,
|
||||
Math.random() * diameter + + (Math.random() ? -1 : 1) * 4 * diameter);
|
||||
@ -412,7 +412,7 @@ Graph.prototype.GetRandomPositionOfVertex = function (matrix, vertexIndex, viewp
|
||||
return point;
|
||||
}
|
||||
|
||||
Graph.prototype.VertexesReposition = function (viewportSize, newVertexes)
|
||||
Graph.prototype.VerticesReposition = function (viewportSize, newVertices)
|
||||
{
|
||||
var maxGravityDistanceSqr = Math.max(viewportSize.x, viewportSize.y) / 5.0;
|
||||
maxGravityDistanceSqr = maxGravityDistanceSqr * maxGravityDistanceSqr;
|
||||
@ -434,10 +434,10 @@ Graph.prototype.VertexesReposition = function (viewportSize, newVertexes)
|
||||
}
|
||||
|
||||
var startAngel = Math.random() * 180.0;
|
||||
for(i = 0; i < newVertexes.length; i++) // loop through vertices
|
||||
for(i = 0; i < newVertices.length; i++) // loop through vertices
|
||||
{
|
||||
newVertexes[i].position.orbit(new Point(viewportSize.x / 2, viewportSize.y / 2), (viewportSize.x - diameter * 2) / 2,
|
||||
(viewportSize.y - diameter * 2) / 2, 360 * i / newVertexes.length + startAngel);
|
||||
newVertices[i].position.orbit(new Point(viewportSize.x / 2, viewportSize.y / 2), (viewportSize.x - diameter * 2) / 2,
|
||||
(viewportSize.y - diameter * 2) / 2, 360 * i / newVertices.length + startAngel);
|
||||
}
|
||||
|
||||
var k = 0;
|
||||
@ -445,11 +445,11 @@ Graph.prototype.VertexesReposition = function (viewportSize, newVertexes)
|
||||
while (k < 1000 && bChanged)
|
||||
{
|
||||
var vertexData = [];
|
||||
for(i = 0; i < newVertexes.length; i++) // loop through vertices
|
||||
for(i = 0; i < newVertices.length; i++) // loop through vertices
|
||||
{
|
||||
// Has no in newVertexes.
|
||||
// Has no in newVertices.
|
||||
var currentVertex = {};
|
||||
currentVertex.object = newVertexes[i];
|
||||
currentVertex.object = newVertices[i];
|
||||
currentVertex.net_force = new Point (0, 0);
|
||||
currentVertex.velocity = new Point (0, 0);
|
||||
vertexData.push(currentVertex);
|
||||
@ -480,7 +480,7 @@ Graph.prototype.VertexesReposition = function (viewportSize, newVertexes)
|
||||
|
||||
if (distance > maxDistance)
|
||||
{
|
||||
// countin the attraction
|
||||
// counting the attraction
|
||||
var force = (otherVertex.position.subtract(currentVertex.object.position)).normalize(edgeGravityKof * (distance - maxDistance));
|
||||
currentVertex.net_force = currentVertex.net_force.add(force);
|
||||
}
|
||||
@ -516,21 +516,21 @@ Graph.prototype.VertexesReposition = function (viewportSize, newVertexes)
|
||||
}
|
||||
|
||||
|
||||
// Looks like somthing going wrong and will use circle algorithm for reposition.
|
||||
// Looks like something going wrong and will use circle algorithm for reposition.
|
||||
var bbox = this.getGraphBBox();
|
||||
if (bbox.size().length() > viewportSize.length() * 1000)
|
||||
{
|
||||
for(i = 0; i < newVertexes.length; i++) // loop through vertices
|
||||
for(i = 0; i < newVertices.length; i++) // loop through vertices
|
||||
{
|
||||
newVertexes[i].position.orbit(new Point(viewportSize.x / 2, viewportSize.y / 2), (viewportSize.x - diameter * 2) / 2,
|
||||
(viewportSize.y - diameter * 2) / 2, 360 * i / newVertexes.length + startAngel);
|
||||
newVertices[i].position.orbit(new Point(viewportSize.x / 2, viewportSize.y / 2), (viewportSize.x - diameter * 2) / 2,
|
||||
(viewportSize.y - diameter * 2) / 2, 360 * i / newVertices.length + startAngel);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Try to rotate graph to fill small area.
|
||||
var count = 10;
|
||||
var agnle = 360.0 / count;
|
||||
var angle = 360.0 / count;
|
||||
var viewportAspect = viewportSize.x / viewportSize.y;
|
||||
var bestIndex = 0;
|
||||
var graphSize = bbox.size();
|
||||
@ -539,9 +539,9 @@ Graph.prototype.VertexesReposition = function (viewportSize, newVertexes)
|
||||
|
||||
for (var i = 1; i < count; i++)
|
||||
{
|
||||
for(j = 0; j < newVertexes.length; j++) // loop through vertices
|
||||
for(j = 0; j < newVertices.length; j++) // loop through vertices
|
||||
{
|
||||
newVertexes[j].position.rotate(center, agnle);
|
||||
newVertices[j].position.rotate(center, angle);
|
||||
}
|
||||
|
||||
var newBBox = this.getGraphBBox();
|
||||
@ -554,14 +554,14 @@ Graph.prototype.VertexesReposition = function (viewportSize, newVertexes)
|
||||
}
|
||||
|
||||
// Rotate to best aspect.
|
||||
for(j = 0; j < newVertexes.length; j++) // loop through vertices
|
||||
for(j = 0; j < newVertices.length; j++) // loop through vertices
|
||||
{
|
||||
newVertexes[j].position.rotate(center, - agnle * (count - bestIndex - 1));
|
||||
newVertices[j].position.rotate(center, - angle * (count - bestIndex - 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Graph.prototype.SetAdjacencyMatrix = function (matrix, viewportSize, currentEnumVertesType, separator)
|
||||
Graph.prototype.SetAdjacencyMatrix = function (matrix, viewportSize, currentEnumVerticesType, separator)
|
||||
{
|
||||
if (separator === undefined)
|
||||
{
|
||||
@ -584,7 +584,7 @@ Graph.prototype.SetAdjacencyMatrix = function (matrix, viewportSize, currentEnum
|
||||
this.DeleteEdge (clonedEdge[i]);
|
||||
}
|
||||
|
||||
var newVertexes = [];
|
||||
var newVertices = [];
|
||||
var bWeightGraph = false;
|
||||
|
||||
for (var i = 0; i < rows.length; i++)
|
||||
@ -594,14 +594,14 @@ Graph.prototype.SetAdjacencyMatrix = function (matrix, viewportSize, currentEnum
|
||||
if (j >= this.vertices.length)
|
||||
{
|
||||
var newPos = this.GetRandomPositionOfVertex (matrix, j, viewportSize);
|
||||
newVertexes.push(new BaseVertex(newPos.x, newPos.y, currentEnumVertesType));
|
||||
this.AddNewVertex(newVertexes[newVertexes.length - 1]);
|
||||
newVertices.push(new BaseVertex(newPos.x, newPos.y, currentEnumVerticesType));
|
||||
this.AddNewVertex(newVertices[newVertices.length - 1]);
|
||||
}
|
||||
|
||||
if (cols[i][j] > 0)
|
||||
{
|
||||
var nEdgeIndex = this.AddNewEdgeSafe(this.vertices[i], this.vertices[j], cols[i][j] != cols[j][i], cols[i][j], true);
|
||||
this.FixEdgeCurved(nEdgeIndex);
|
||||
this.FixEdgeCurve(nEdgeIndex);
|
||||
if (nEdgeIndex >= 0)
|
||||
{
|
||||
bWeightGraph = bWeightGraph || this.edges[nEdgeIndex].weight != 1;
|
||||
@ -610,7 +610,7 @@ Graph.prototype.SetAdjacencyMatrix = function (matrix, viewportSize, currentEnum
|
||||
}
|
||||
}
|
||||
|
||||
// Set use weight false, because we have unwieghts graph.
|
||||
// Set use weight false, because we have unweighted graph.
|
||||
if (!bWeightGraph)
|
||||
{
|
||||
this.edges.forEach(function(part, index, theArray) {
|
||||
@ -624,7 +624,7 @@ Graph.prototype.SetAdjacencyMatrix = function (matrix, viewportSize, currentEnum
|
||||
i--;
|
||||
}
|
||||
|
||||
this.VertexesReposition(viewportSize, newVertexes);
|
||||
this.VerticesReposition(viewportSize, newVertices);
|
||||
}
|
||||
}
|
||||
|
||||
@ -694,7 +694,7 @@ Graph.prototype.TestIncidenceMatrix = function (matrix, rowsObj, colsObj, separa
|
||||
return bGoodFormat;
|
||||
}
|
||||
|
||||
Graph.prototype.SetIncidenceMatrix = function (matrix, viewportSize, currentEnumVertesType)
|
||||
Graph.prototype.SetIncidenceMatrix = function (matrix, viewportSize, currentEnumVerticesType)
|
||||
{
|
||||
var rowsObj = {};
|
||||
var colsObj = {};
|
||||
@ -709,7 +709,7 @@ Graph.prototype.SetIncidenceMatrix = function (matrix, viewportSize, currentEnum
|
||||
{
|
||||
this.DeleteEdge (clonedEdge[i]);
|
||||
}
|
||||
var newVertexes = [];
|
||||
var newVertices = [];
|
||||
var bWeightGraph = false;
|
||||
for (var i = 0; i < cols[0].length; i++)
|
||||
{
|
||||
@ -721,8 +721,8 @@ Graph.prototype.SetIncidenceMatrix = function (matrix, viewportSize, currentEnum
|
||||
{
|
||||
|
||||
var newPos = new Point(0, 0);//this.GetRandomPositionOfVertex (matrix, j, viewportSize);
|
||||
newVertexes.push(new BaseVertex(newPos.x, newPos.y, currentEnumVertesType));
|
||||
this.AddNewVertex(newVertexes[newVertexes.length - 1]);
|
||||
newVertices.push(new BaseVertex(newPos.x, newPos.y, currentEnumVerticesType));
|
||||
this.AddNewVertex(newVertices[newVertices.length - 1]);
|
||||
}
|
||||
|
||||
if (cols[j][i] != 0)
|
||||
@ -752,7 +752,7 @@ Graph.prototype.SetIncidenceMatrix = function (matrix, viewportSize, currentEnum
|
||||
var nEdgeIndex = this.AddNewEdgeSafe(this.vertices[edgeIndex[0]], this.vertices[edgeIndex[1]],
|
||||
edgeValue[0] != edgeValue[1], Math.abs(edgeValue[1]), false);
|
||||
|
||||
this.FixEdgeCurved(nEdgeIndex);
|
||||
this.FixEdgeCurve(nEdgeIndex);
|
||||
if (nEdgeIndex >= 0)
|
||||
{
|
||||
bWeightGraph = bWeightGraph || this.edges[nEdgeIndex].weight != 1;
|
||||
@ -760,7 +760,7 @@ Graph.prototype.SetIncidenceMatrix = function (matrix, viewportSize, currentEnum
|
||||
}
|
||||
}
|
||||
|
||||
// Set use weight false, because we have unwieghts graph.
|
||||
// Set use weight false, because we have unweighted graph.
|
||||
if (!bWeightGraph)
|
||||
{
|
||||
this.edges.forEach(function(part, index, theArray) {
|
||||
@ -774,7 +774,7 @@ Graph.prototype.SetIncidenceMatrix = function (matrix, viewportSize, currentEnum
|
||||
i--;
|
||||
}
|
||||
|
||||
this.VertexesReposition(viewportSize, newVertexes);
|
||||
this.VerticesReposition(viewportSize, newVertices);
|
||||
}
|
||||
}
|
||||
|
||||
@ -882,21 +882,21 @@ Graph.prototype.SaveToXML = function (additionalData)
|
||||
var mainHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><graphml>";
|
||||
var header = "<graph id=\"Graph\" uidGraph=\"" + this.uidGraph + "\"" + " uidEdge=\"" + this.uidEdge + "\">";
|
||||
|
||||
var xmlBoby = "";
|
||||
var xmlBody = "";
|
||||
|
||||
for (var i = 0; i < this.vertices.length; i++)
|
||||
{
|
||||
xmlBoby = xmlBoby + this.vertices[i].SaveToXML();
|
||||
xmlBody = xmlBody + this.vertices[i].SaveToXML();
|
||||
}
|
||||
|
||||
xmlBoby = xmlBoby + "";
|
||||
xmlBody = xmlBody + "";
|
||||
|
||||
for (var i = 0; i < this.edges.length; i++)
|
||||
{
|
||||
xmlBoby = xmlBoby + this.edges[i].SaveToXML();
|
||||
xmlBody = xmlBody + this.edges[i].SaveToXML();
|
||||
}
|
||||
|
||||
xmlBoby = xmlBoby + "";
|
||||
xmlBody = xmlBody + "";
|
||||
|
||||
additionalField = "";
|
||||
if (additionalData.length > 0)
|
||||
@ -904,7 +904,7 @@ Graph.prototype.SaveToXML = function (additionalData)
|
||||
additionalField = "<additional data=\"" + additionalData + "\"/>"
|
||||
}
|
||||
|
||||
return mainHeader + header + xmlBoby + "</graph>" + additionalField + "</graphml>";
|
||||
return mainHeader + header + xmlBody + "</graph>" + additionalField + "</graphml>";
|
||||
}
|
||||
|
||||
Graph.prototype.LoadFromXML = function (xmlText, additionalData)
|
||||
@ -922,7 +922,7 @@ Graph.prototype.LoadFromXML = function (xmlText, additionalData)
|
||||
loadedEdgeId = parseInt($(this).attr('uidEdge'));
|
||||
});
|
||||
|
||||
// Back comportebility.
|
||||
// Backward compatibility
|
||||
if (isNaN(loadedEdgeId))
|
||||
{
|
||||
loadedEdgeId = this.edgesOffset;
|
||||
@ -936,14 +936,14 @@ Graph.prototype.LoadFromXML = function (xmlText, additionalData)
|
||||
|
||||
$nodes = $xml.find( "node" );
|
||||
|
||||
var vertexs = [];
|
||||
var vertices = [];
|
||||
|
||||
$nodes.each(function(){
|
||||
var vertex = new BaseVertex();
|
||||
vertex.LoadFromXML($(this));
|
||||
vertexs.push(vertex);
|
||||
vertices.push(vertex);
|
||||
});
|
||||
this.vertices = vertexs;
|
||||
this.vertices = vertices;
|
||||
|
||||
$edges = $xml.find( "edge" );
|
||||
|
||||
@ -1033,20 +1033,20 @@ Graph.prototype.getGraphBBox = function (viewportSize)
|
||||
pointMax = pointMax.max(vertex.position.add(deltaVector));
|
||||
}
|
||||
|
||||
var max_cruvled_length = 32;
|
||||
var max_curve_length = 32;
|
||||
|
||||
for(i = 0; i < this.edges.length; i++)
|
||||
{
|
||||
var edge = this.edges[i];
|
||||
|
||||
if (edge.model.type == EdgeModels.cruvled)
|
||||
if (edge.model.type == EdgeModels.curve)
|
||||
{
|
||||
var max_cruvled = edge.vertex2.position.subtract(edge.vertex1.position).length() / max_cruvled_length;
|
||||
var max_curve = edge.vertex2.position.subtract(edge.vertex1.position).length() / max_curve_length;
|
||||
|
||||
for (j = 0; j < max_cruvled; j++)
|
||||
for (j = 0; j < max_curve; j++)
|
||||
{
|
||||
var point = edge.model.GetCurvedPoint(edge.vertex1.position, edge.vertex2.position, j / max_cruvled);
|
||||
var deltaVector = new Point(max_cruvled_length, max_cruvled_length);
|
||||
var point = edge.model.GetCurvePoint(edge.vertex1.position, edge.vertex2.position, j / max_curve);
|
||||
var deltaVector = new Point(max_curve_length, max_curve_length);
|
||||
pointMin = pointMin.min(point.subtract(deltaVector));
|
||||
pointMax = pointMax.max(point.add(deltaVector));
|
||||
}
|
||||
@ -1063,12 +1063,12 @@ Graph.prototype.hasPair = function (edge)
|
||||
|
||||
Graph.prototype.FindPairFor = function (edge)
|
||||
{
|
||||
var res = this.getNeighbourEdges(edge);
|
||||
var res = this.getNeighborEdges(edge);
|
||||
|
||||
return res.length == 1 ? res[0] : null;
|
||||
}
|
||||
|
||||
Graph.prototype.getNeighbourEdges = function (edge)
|
||||
Graph.prototype.getNeighborEdges = function (edge)
|
||||
{
|
||||
var res = [];
|
||||
|
||||
@ -1138,51 +1138,51 @@ Graph.prototype.isNeedReposition = function ()
|
||||
return res;
|
||||
}
|
||||
|
||||
Graph.prototype.FixEdgeCurved = function (edgeIndex)
|
||||
Graph.prototype.FixEdgeCurve = function (edgeIndex)
|
||||
{
|
||||
var edgeObject = this.edges[edgeIndex];
|
||||
var hasPair = this.hasPair(edgeObject);
|
||||
var neighbourEdges = this.getNeighbourEdges(edgeObject);
|
||||
var neighborEdges = this.getNeighborEdges(edgeObject);
|
||||
|
||||
if (hasPair)
|
||||
{
|
||||
if (edgeObject.model.default)
|
||||
edgeObject.model.type = EdgeModels.cruvled;
|
||||
edgeObject.model.type = EdgeModels.curve;
|
||||
|
||||
var pairEdge = this.FindPairFor(edgeObject);
|
||||
if (pairEdge.model.default)
|
||||
{
|
||||
pairEdge.model.type = EdgeModels.cruvled;
|
||||
pairEdge.model.type = EdgeModels.curve;
|
||||
if (pairEdge.vertex1 == edgeObject.vertex1 && pairEdge.vertex2 == edgeObject.vertex2)
|
||||
pairEdge.model.curvedValue = -pairEdge.model.curvedValue;
|
||||
pairEdge.model.curveValue = -pairEdge.model.curveValue;
|
||||
}
|
||||
}
|
||||
else if (neighbourEdges.length >= 2)
|
||||
else if (neighborEdges.length >= 2)
|
||||
{
|
||||
var cruvled = this.GetAvalibleCruvledValue(neighbourEdges, edgeObject);
|
||||
var curve = this.GetAvailableCurveValue(neighborEdges, edgeObject);
|
||||
if (edgeObject.model.default)
|
||||
{
|
||||
edgeObject.model.type = EdgeModels.cruvled;
|
||||
edgeObject.model.curvedValue = cruvled;
|
||||
edgeObject.model.type = EdgeModels.curve;
|
||||
edgeObject.model.curveValue = curve;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Graph.prototype.GetAvalibleCruvledValue = function(neighbourEdges, originalEdge)
|
||||
Graph.prototype.GetAvailableCurveValue = function(neighborEdges, originalEdge)
|
||||
{
|
||||
var values = [];
|
||||
|
||||
for (var i = 0; i < neighbourEdges.length; i ++)
|
||||
for (var i = 0; i < neighborEdges.length; i ++)
|
||||
{
|
||||
var edge = neighbourEdges[i];
|
||||
var edge = neighborEdges[i];
|
||||
var sameDirection = (originalEdge.vertex1.id == edge.vertex1.id);
|
||||
if (edge.model.type == EdgeModels.cruvled)
|
||||
if (edge.model.type == EdgeModels.curve)
|
||||
{
|
||||
values[(sameDirection ? edge.model.curvedValue : -edge.model.curvedValue)] = true;
|
||||
values[(sameDirection ? edge.model.curveValue : -edge.model.curveValue)] = true;
|
||||
}
|
||||
}
|
||||
|
||||
var changeValue = DefaultHandler.prototype.curvedValue;
|
||||
var changeValue = DefaultHandler.prototype.curveValue;
|
||||
var defaultValue = 0.0;
|
||||
var maxSearch = 10;
|
||||
|
||||
|
14
script/GraphMLCreater.js → script/GraphMLCreator.js
Executable file → Normal file
14
script/GraphMLCreater.js → script/GraphMLCreator.js
Executable file → Normal file
@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
|
||||
function GraphMLCreater(nodes, arcs, ignoreNodes = {})
|
||||
function GraphMLCreator(nodes, arcs, ignoreNodes = {})
|
||||
{
|
||||
this.nodes = nodes;
|
||||
this.arcs = arcs;
|
||||
@ -12,7 +12,7 @@ function GraphMLCreater(nodes, arcs, ignoreNodes = {})
|
||||
}
|
||||
|
||||
|
||||
GraphMLCreater.prototype.GetXMLString = function()
|
||||
GraphMLCreator.prototype.GetXMLString = function()
|
||||
{
|
||||
var mainHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><graphml>";
|
||||
var directedHeader = "<graph id=\"Graph\" edgedefault=\"directed\">";
|
||||
@ -24,12 +24,12 @@ GraphMLCreater.prototype.GetXMLString = function()
|
||||
"<default>" + defaultWeight + "</default>" +
|
||||
"</key>";
|
||||
|
||||
var xmlBoby = "";
|
||||
var xmlBody = "";
|
||||
|
||||
for (var i = 0; i < this.nodes.length; i++)
|
||||
{
|
||||
if (!this.ignoreNodes.hasOwnProperty(this.nodes[i].id))
|
||||
xmlBoby = xmlBoby + "<node id=\"" + this.nodes[i].id + "\"/>";
|
||||
xmlBody = xmlBody + "<node id=\"" + this.nodes[i].id + "\"/>";
|
||||
}
|
||||
var hasDirected = false;
|
||||
for (var i = 0; i < this.arcs.length; i++)
|
||||
@ -50,13 +50,13 @@ GraphMLCreater.prototype.GetXMLString = function()
|
||||
weightData = "<data key=" + weightKeyId + ">" + arc.weight + "</data>";
|
||||
}
|
||||
|
||||
xmlBoby = xmlBoby + "<edge source=\"" + arc.vertex1.id + "\" target=\""
|
||||
xmlBody = xmlBody + "<edge source=\"" + arc.vertex1.id + "\" target=\""
|
||||
+ arc.vertex2.id + "\" " +
|
||||
(arc.isDirect != hasDirected ? (hasDirected ? "directed=\"false\"" : "directed=\"true\"") : "") +
|
||||
" id=\"" + arc.id + "\"";
|
||||
|
||||
xmlBoby = xmlBoby + ((weightData != "") ? ">" + weightData + "</edge>" : "/>")
|
||||
xmlBody = xmlBody + ((weightData != "") ? ">" + weightData + "</edge>" : "/>")
|
||||
}
|
||||
xml = mainHeader + weightNode + (hasDirected ? directedHeader : undirectedHeader) + xmlBoby + "</graph></graphml>"
|
||||
xml = mainHeader + weightNode + (hasDirected ? directedHeader : undirectedHeader) + xmlBody + "</graph></graphml>"
|
||||
return xml;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
|
||||
var SiteDir = "";
|
||||
var DisableEmscripted = false;
|
||||
var DisableEmscripten = false;
|
||||
var algorithmsVersion = 2;
|
||||
|
||||
var application = new Application(document, window);
|
||||
@ -103,7 +103,7 @@ function preLoadPage()
|
||||
|
||||
function createAlgorithmMenu()
|
||||
{
|
||||
var algorihtmsBaseId = "Algo";
|
||||
var algorithmBaseId = "Algo";
|
||||
var algorithms = application.getAlgorithmNames();
|
||||
var index = 0;
|
||||
|
||||
@ -283,7 +283,7 @@ function postLoadPage()
|
||||
{
|
||||
selectHandler('DeleteObject', 'delete');
|
||||
}
|
||||
// Disabled becase it is easy to lose graph, when you press miss letter.
|
||||
// Disabled because it is easy to lose graph, when you press miss letter.
|
||||
//else if (key == 'n' || key == 'т') // new
|
||||
//{
|
||||
// userAction('NewGraph_shortcut');
|
||||
@ -740,9 +740,9 @@ $(document).ready(function ()
|
||||
document.getElementById('canvas').addEventListener("touchend", touchHandler, true);
|
||||
document.getElementById('canvas').addEventListener("touchcancel", touchHandler, true);
|
||||
|
||||
// Try load emscripted implementation
|
||||
// Try load emscripten implementation
|
||||
var isMobile = navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i);
|
||||
if (!isMobile && !DisableEmscripted) {
|
||||
if (!isMobile && !DisableEmscripten) {
|
||||
const jsScript = document.createElement('script');
|
||||
jsScript.src = '/script/Graphoffline.Emscripten.js';
|
||||
document.body.appendChild(jsScript);
|
||||
|
@ -15,10 +15,10 @@ file_put_contents($outputFilename, file_get_contents("BaseEdgeDrawer.js"), FILE_
|
||||
file_put_contents($outputFilename, file_get_contents("BaseBackgroundDrawer.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("Algorithms.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("EventHandlers.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("GraphMLCreater.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("GraphMLCreator.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("Graph.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("EnumVertices.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("Appilcation.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("Application.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("main.js"), FILE_APPEND);
|
||||
file_put_contents($outputFilename, file_get_contents("BaseTraversal.js"), FILE_APPEND);
|
||||
|
||||
|
@ -47,18 +47,18 @@ FindConnectedComponentNew.prototype.calculate = function(fillUpText = false)
|
||||
{
|
||||
this.connectedComponentNumber = 0;
|
||||
this.component = {};
|
||||
var tempVertexes = this.graph.vertices.slice();
|
||||
var tempVertices = this.graph.vertices.slice();
|
||||
connectedVertex = getVertexToVertexArray(this.graph, true);
|
||||
var connectedComponentNumber = 0;
|
||||
|
||||
while (tempVertexes.length > 0)
|
||||
while (tempVertices.length > 0)
|
||||
{
|
||||
connectedComponentNumber++;
|
||||
|
||||
var stack = [];
|
||||
stack.push(tempVertexes[0]);
|
||||
stack.push(tempVertices[0]);
|
||||
|
||||
tempVertexes.splice(0, 1);
|
||||
tempVertices.splice(0, 1);
|
||||
|
||||
indexInStack = 0;
|
||||
|
||||
@ -80,7 +80,7 @@ FindConnectedComponentNew.prototype.calculate = function(fillUpText = false)
|
||||
if (stack.indexOf(nextVertex) < 0)
|
||||
{
|
||||
stack.push(nextVertex);
|
||||
tempVertexes.splice(tempVertexes.indexOf(nextVertex), 1);
|
||||
tempVertices.splice(tempVertices.indexOf(nextVertex), 1);
|
||||
if (connectedEdge)
|
||||
{
|
||||
this.component[connectedEdge.id] = connectedComponentNumber;
|
||||
|
@ -207,7 +207,7 @@ FloidAlgorithm.prototype.restore = function()
|
||||
|
||||
var edge = this.graph.edges[edgeIndex];
|
||||
edge.model.type = this.egdesCopy[i].model.type;
|
||||
edge.model.curvedValue = this.egdesCopy[i].model.curvedValue;
|
||||
edge.model.curveValue = this.egdesCopy[i].model.curveValue;
|
||||
|
||||
//edge.model = this.egdesCopy[i].model;
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ GraphReorder.prototype.result = function(resultCallback)
|
||||
var vertexData = [];
|
||||
for(i = 0; i < this.vertices.length; i++) // loop through vertices
|
||||
{
|
||||
// Has no in newVertexes.
|
||||
// Has no in newVertices.
|
||||
var currentVertex = {};
|
||||
currentVertex.object = this.vertices[i];
|
||||
currentVertex.net_force = new Point (0, 0);
|
||||
|
@ -2,7 +2,7 @@
|
||||
function MinimumSpanningTree(graph, app)
|
||||
{
|
||||
BaseAlgorithm.apply(this, arguments);
|
||||
this.isNotConneted = false;
|
||||
this.isNotConnected = false;
|
||||
this.MST = 0;
|
||||
this.edges = [];
|
||||
}
|
||||
@ -25,7 +25,7 @@ MinimumSpanningTree.prototype.getId = function()
|
||||
// @return message for user.
|
||||
MinimumSpanningTree.prototype.getMessage = function(local)
|
||||
{
|
||||
if (!this.isNotConneted )
|
||||
if (!this.isNotConnected )
|
||||
{
|
||||
return g_SpanningTreeResult + this.MST + ". " +
|
||||
(this.graph.hasDirectEdge() ? g_SpanningTreeIgnoreDir : "");
|
||||
@ -40,16 +40,16 @@ MinimumSpanningTree.prototype.result = function(resultCallback)
|
||||
{
|
||||
this.MST = 0;
|
||||
this.edges = [];
|
||||
this.isNotConneted = true;
|
||||
var tempVertexes = this.graph.vertices.slice();
|
||||
this.isNotConnected = true;
|
||||
var tempVertices = this.graph.vertices.slice();
|
||||
connectedVertex = getVertexToVertexArray(this.graph, true);
|
||||
|
||||
// We ignore orientation for this algorithm.
|
||||
//if (!this.graph.hasDirectEdge())
|
||||
{
|
||||
res = this.resultStartedFrom(tempVertexes[0], connectedVertex);
|
||||
this.isNotConneted = res.isNotConneted;
|
||||
if (!this.isNotConneted)
|
||||
res = this.resultStartedFrom(tempVertices[0], connectedVertex);
|
||||
this.isNotConnected = res.isNotConnected;
|
||||
if (!this.isNotConnected)
|
||||
{
|
||||
this.MST = res.MST;
|
||||
this.edges = res.edges;
|
||||
@ -57,12 +57,12 @@ MinimumSpanningTree.prototype.result = function(resultCallback)
|
||||
}
|
||||
/*else
|
||||
{
|
||||
for (var i = 0; i < tempVertexes.length; i++)
|
||||
for (var i = 0; i < tempVertices.length; i++)
|
||||
{
|
||||
res = this.resultStartedFrom(tempVertexes[i], connectedVertex);
|
||||
if (!res.isNotConneted)
|
||||
res = this.resultStartedFrom(tempVertices[i], connectedVertex);
|
||||
if (!res.isNotConnected)
|
||||
{
|
||||
this.isNotConneted = res.isNotConneted;
|
||||
this.isNotConnected = res.isNotConnected;
|
||||
if (this.MST == 0 || res.MST < this.MST)
|
||||
{
|
||||
console.log(res);
|
||||
@ -85,7 +85,7 @@ MinimumSpanningTree.prototype.resultStartedFrom = function(vertex, connectedVert
|
||||
var res = {};
|
||||
res.MST = 0;
|
||||
res.edges = [];
|
||||
res.isNotConneted = false;
|
||||
res.isNotConnected = false;
|
||||
|
||||
var inTree = [];
|
||||
inTree.push(vertex);
|
||||
@ -133,14 +133,14 @@ MinimumSpanningTree.prototype.resultStartedFrom = function(vertex, connectedVert
|
||||
}
|
||||
}
|
||||
|
||||
res.isNotConneted = (inTree.length < this.graph.vertices.length);
|
||||
res.isNotConnected = (inTree.length < this.graph.vertices.length);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
MinimumSpanningTree.prototype.getObjectSelectedGroup = function(object)
|
||||
{
|
||||
return this.isNotConneted ? 0 :
|
||||
return this.isNotConnected ? 0 :
|
||||
(object instanceof BaseVertex || this.edges.indexOf(object) >= 0) ? 1 : 0;
|
||||
}
|
||||
|
||||
|
@ -9,8 +9,8 @@ function RadiusAndDiameter(graph, app)
|
||||
this.radius = 0;
|
||||
this.diameterSelectedObjects = [];
|
||||
this.radiusSelectedObjects = [];
|
||||
this.centerVertexes = [];
|
||||
this.peripheralVertexes = [];
|
||||
this.centerVertices = [];
|
||||
this.peripheralVertices = [];
|
||||
this.isNotConnected = false;
|
||||
this.isOneVertex = false;
|
||||
}
|
||||
@ -148,12 +148,12 @@ RadiusAndDiameter.prototype.result = function(resultCallback)
|
||||
|
||||
if (eccentricity[i].value == this.radius)
|
||||
{
|
||||
this.centerVertexes.push(this.graph.vertices[i].id);
|
||||
this.centerVertices.push(this.graph.vertices[i].id);
|
||||
this.graph.vertices[i].upText = g_vertexCentral;
|
||||
}
|
||||
if (eccentricity[i].value == this.diameter)
|
||||
{
|
||||
this.peripheralVertexes.push(this.graph.vertices[i].id);
|
||||
this.peripheralVertices.push(this.graph.vertices[i].id);
|
||||
this.graph.vertices[i].upText = g_vertexPeripheral;
|
||||
}
|
||||
}
|
||||
@ -203,8 +203,8 @@ RadiusAndDiameter.prototype.getObjectSelectedGroup = function(object)
|
||||
{
|
||||
var res = (this.diameterSelectedObjects.includes(object)) ? 1 : 0;
|
||||
res = (this.radiusSelectedObjects.includes(object)) ? 2 : res;
|
||||
//res = (this.centerVertexes.includes(object.id)) ? 3 : res;
|
||||
//res = (this.peripheralVertexes.includes(object.id)) ? 4 : res;
|
||||
//res = (this.centerVertices.includes(object.id)) ? 3 : res;
|
||||
//res = (this.peripheralVertices.includes(object.id)) ? 4 : res;
|
||||
|
||||
|
||||
return res;
|
||||
|
@ -16,7 +16,7 @@ VerticesDegree.prototype = Object.create(BaseAlgorithm.prototype);
|
||||
|
||||
VerticesDegree.prototype.getName = function(local)
|
||||
{
|
||||
return g_VerticesDegreeName; //local == "ru" ? "Рассчитать степень вершин" : "Calculate vertexes degree";
|
||||
return g_VerticesDegreeName; //local == "ru" ? "Рассчитать степень вершин" : "Calculate vertices degree";
|
||||
}
|
||||
|
||||
VerticesDegree.prototype.getId = function()
|
||||
|
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Place here all tests constans.
|
||||
* Place here all tests constants.
|
||||
*
|
||||
*/
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
var g_textsSelectAndMove = "Drag objects";
|
||||
var g_moveCursorForMoving = "Move cursor";
|
||||
var g_clickToAddVertex = "Click to add vertex";
|
||||
var g_selectFisrtVertexToConnect = "Select first vertex to connect";
|
||||
var g_selectFirstVertexToConnect = "Select first vertex to connect";
|
||||
var g_selectSecondVertexToConnect = "Select second vertex to connect";
|
||||
var g_selectStartVertexForShortPath = "Select start vertex for shortest path";
|
||||
var g_selectFinishVertexForShortPath = "Select finish vertex for shortest path";
|
||||
@ -17,8 +17,8 @@ var g_selectObjectToDelete = "Select object to delete";
|
||||
|
||||
|
||||
var g_addEdge = "Add edge";
|
||||
var g_orintEdge = "Orient";
|
||||
var g_notOrintEdge = "not Orient";
|
||||
var g_orintEdge = "Directed";
|
||||
var g_notOrintEdge = "Undirected";
|
||||
|
||||
var g_adjacencyMatrixText = "Adjacency Matrix";
|
||||
var g_save = "Save";
|
||||
@ -102,14 +102,14 @@ var g_Undo = "Undo";
|
||||
var g_default = "default";
|
||||
var g_vertexDraw = "Vertex draw style";
|
||||
var g_edgeDraw = "Edge draw style";
|
||||
var g_backgroundStyle = "Bacgkround style";
|
||||
var g_backgroundStyle = "Background style";
|
||||
|
||||
var g_GrapsIsMultiMessage = "Graph is multigraph";
|
||||
var g_GrapsIsGeneralMessage = "";
|
||||
var g_GraphIsMultiMessage = "Graph is multigraph";
|
||||
var g_GraphIsGeneralMessage = "";
|
||||
var g_DefaultWeightPreset = "no weight";
|
||||
var g_dragGroupText = "Drag group.";
|
||||
var g_selectGroupText = "Select using ctrl";
|
||||
var g_copyGroupeButton = "Dublicate";
|
||||
var g_copyGroupeButton = "Duplicate";
|
||||
var g_removeGroupeButton = "Remove objects";
|
||||
|
||||
var g_BFSName = "Breadth-first search";
|
||||
@ -124,10 +124,10 @@ var g_HamiltoianCycleName = "Find Hamiltonian cycle";
|
||||
var g_HamiltonianPath = "Find Hamiltonian path";
|
||||
var g_MaxFlowName = "Find Maximum flow";
|
||||
var g_minimumSpanningTree = "Search of minimum spanning tree";
|
||||
var g_modernGraphStyleName = "Visualisation based on weight";
|
||||
var g_modernGraphStyleName = "Visualization based on weight";
|
||||
var g_RadiusAndDiameter = "Search graph radius and diameter";
|
||||
var g_findShortPathName = "Find shortest path using Dijkstra's algorithm";
|
||||
var g_VerticesDegreeName = "Calculate vertexes degree";
|
||||
var g_VerticesDegreeName = "Calculate vertices degree";
|
||||
var g_SpanningTreeResult = "Min Spanning Tree is";
|
||||
var g_SpanningTreeIgnoreDir = "We ignored edges direction for calculation";
|
||||
var g_SpanningTreeNotConnected = "Graph is not connected";
|
||||
@ -171,8 +171,8 @@ var g_commonVertexStyle = "Common Vertex Style";
|
||||
var g_selectedVertexStyle = "Selected Vertex Style";
|
||||
|
||||
// FindAllPatches.js
|
||||
var g_findAllPathes = "Find all pathes";
|
||||
var g_numberOfPathesFrom = "Number of pathes from "
|
||||
var g_findAllPathes = "Find all paths";
|
||||
var g_numberOfPathesFrom = "Number of paths from "
|
||||
var g_to = " to ";
|
||||
var g_are = " are ";
|
||||
var g_pathN = "Path #";
|
||||
@ -189,7 +189,7 @@ var g_useContextMenuText = "Use context menu for addition actions."
|
||||
var g_findLongestPath = "Find the longest path";
|
||||
var g_LengthOfLongestPathFrom = "Length of the longest path from ";
|
||||
|
||||
var g_additionlActions = "Additional actions";
|
||||
var g_additionalActions = "Additional actions";
|
||||
var g_reverseAllEdges = "Reverse all edges";
|
||||
var g_makeAllUndirected = "Make all edges undirected";
|
||||
var g_makeAllDirected = "Make all edges directed";
|
||||
@ -199,7 +199,7 @@ function loadTexts()
|
||||
g_textsSelectAndMove = document.getElementById("SelectAndMoveObject").innerHTML;
|
||||
g_moveCursorForMoving = document.getElementById("MoveCursorForMoving").innerHTML;
|
||||
g_clickToAddVertex = document.getElementById("clickToAddVertex").innerHTML;
|
||||
g_selectFisrtVertexToConnect = document.getElementById("selectFisrtVertextToConnect").innerHTML;
|
||||
g_selectFirstVertexToConnect = document.getElementById("selectFisrtVertextToConnect").innerHTML;
|
||||
g_selectSecondVertexToConnect = document.getElementById("selectSecondVertextToConnect").innerHTML;
|
||||
g_selectStartVertexForShortPath = document.getElementById("selectStartShortPathVertex").innerHTML;
|
||||
g_selectFinishVertexForShortPath = document.getElementById("selectFinishShortPathVertex").innerHTML;
|
||||
@ -299,8 +299,8 @@ function loadTexts()
|
||||
|
||||
g_backgroundStyle = document.getElementById("backgroundStyle").innerHTML;
|
||||
|
||||
g_GrapsIsMultiMessage = document.getElementById("graphIsMultiMessage").innerHTML;
|
||||
g_GrapsIsGeneralMessage = document.getElementById("graphIsGeneralMessage").innerHTML;
|
||||
g_GraphIsMultiMessage = document.getElementById("graphIsMultiMessage").innerHTML;
|
||||
g_GraphIsGeneralMessage = document.getElementById("graphIsGeneralMessage").innerHTML;
|
||||
g_DefaultWeightPreset = document.getElementById("defaultWeightPreset").innerHTML;
|
||||
|
||||
var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
|
||||
@ -391,7 +391,7 @@ function loadTexts()
|
||||
g_findLongestPath = document.getElementById("findLongestPath").innerHTML;
|
||||
g_LengthOfLongestPathFrom = document.getElementById("LengthOfLongestPathFrom").innerHTML;
|
||||
|
||||
g_additionlActions = document.getElementById("additionlActions").innerHTML;
|
||||
g_additionalActions = document.getElementById("additionlActions").innerHTML;
|
||||
g_reverseAllEdges = document.getElementById("reverseAllEdges").innerHTML;
|
||||
g_makeAllUndirected = document.getElementById("makeAllUndirected").innerHTML;
|
||||
g_makeAllDirected = document.getElementById("makeAllDirected").innerHTML;
|
||||
|
Loading…
x
Reference in New Issue
Block a user