mirror of
https://github.com/UnickSoft/graphonline.git
synced 2026-06-16 05:41:00 +00:00
Save image size when we save full graph to image.
This commit is contained in:
@@ -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];
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
Reference in New Issue
Block a user