Save image size when we save full graph to image.

This commit is contained in:
Oleg Sh
2024-08-11 13:09:32 +02:00
parent 451a964127
commit 23ef760b23
8 changed files with 107 additions and 49 deletions
+7 -7
View File
@@ -1184,24 +1184,24 @@ Graph.prototype.clampPositions = function (viewportSize)
}
// Use to setup scaling.
Graph.prototype.getGraphBBox = function (viewportSize)
// vertexStyle is not used now.
Graph.prototype.getGraphBBox = function (vertexStyle)
{
var pointMin = new Point(1e5, 1e5);
var pointMax = new Point(-1e5, -1e5);
var diameter = (new VertexModel()).diameter;
for(i = 0; i < this.vertices.length; i++)
for (i = 0; i < this.vertices.length; i++)
{
var vertex = this.vertices[i];
var factor = vertex.diameterFactor();
var deltaVector = new Point(factor.x * diameter, factor.y * diameter);
pointMin = pointMin.min(vertex.position.subtract(deltaVector));
pointMax = pointMax.max(vertex.position.add(deltaVector));
var bbox = vertex.getBBox(vertexStyle == undefined ? vertex.getStyleFor(0) : vertexStyle);
pointMin = pointMin.min(vertex.position.subtract(bbox));
pointMax = pointMax.max(vertex.position.add(bbox));
}
var max_curve_length = 32;
for(i = 0; i < this.edges.length; i++)
for (i = 0; i < this.edges.length; i++)
{
var edge = this.edges[i];
+20 -5
View File
@@ -92,11 +92,6 @@ BaseVertex.prototype.SetId = function (id)
this.mainText = this.vertexEnumType.GetVertexText(id);
}
BaseVertex.prototype.diameterFactor = function ()
{
return new Point(1.0 + (this.mainText.length ? this.mainText.length / 8.0 : 0), 1.5);
}
BaseVertex.prototype.IsUndefinedPosition = function ()
{
return this.hasUndefinedPosition;
@@ -183,4 +178,24 @@ BaseVertex.prototype.getStyleFor = function (index)
BaseVertex.prototype.hasOwnStyleFor = function (index)
{
return this.ownStyles.hasOwnProperty(index);
}
BaseVertex.prototype.getDefaultDiameterFactor = function (textSize)
{
var textFactor = defaultVertexDiameter * 8.0 / (2.0 * textSize);
return new Point(1.0 + (this.mainText.length ? this.mainText.length / textFactor : 0), 1.5);
}
BaseVertex.prototype.getBBox = function (style)
{
var textSize = DefaultMainTextFontSize;
if (style !== undefined)
{
textSize = style.mainTextFontSize;
}
var defaultDiameter = (new VertexModel()).diameter;
var vertexDiameter = this.model.diameter;
var factor = this.getDefaultDiameterFactor(textSize);
return new Point(Math.max(factor.x * defaultDiameter, vertexDiameter),
Math.max(factor.y * defaultDiameter, vertexDiameter));
}