Show / Hide Table of Contents

Class MinimumDistanceConstraint<TNode, TConfiguration, TEnergyData>

Inheritance
System.Object
MinimumDistanceConstraint<TNode, TConfiguration, TEnergyData>
Implements
INodeConstraint<ILayout<TNode, TConfiguration>, TNode, TConfiguration, TEnergyData>
Namespace: Edgar.GraphBasedGenerator.Common.Constraints.MinimumDistanceConstraint
Assembly: Edgar.dll
Syntax
public class MinimumDistanceConstraint<TNode, TConfiguration, TEnergyData> : Object, INodeConstraint<ILayout<TNode, TConfiguration>, TNode, TConfiguration, TEnergyData> where TConfiguration : IEnergyConfiguration<TEnergyData> where TEnergyData : IMinimumDistanceConstraintData
Type Parameters
Name Description
TNode
TConfiguration
TEnergyData

Constructors

MinimumDistanceConstraint(ILevelDescription<TNode>, IRoomShapeGeometry<TConfiguration>, Int32)

Declaration
public MinimumDistanceConstraint(ILevelDescription<TNode> mapDescription, IRoomShapeGeometry<TConfiguration> roomShapeGeometry, int minimumDistance)
Parameters
Type Name Description
ILevelDescription<TNode> mapDescription
IRoomShapeGeometry<TConfiguration> roomShapeGeometry
System.Int32 minimumDistance

Methods

ComputeEnergyData(ILayout<TNode, TConfiguration>, TNode, TConfiguration, ref TEnergyData)

Computes energy data for a given node.

Declaration
public bool ComputeEnergyData(ILayout<TNode, TConfiguration> layout, TNode node, TConfiguration configuration, ref TEnergyData energyData)
Parameters
Type Name Description
ILayout<TNode, TConfiguration> layout
TNode node

Node for which an energy data should be computed.

TConfiguration configuration

Current configuration of the node.

TEnergyData energyData

Energy data to be modified.

Returns
Type Description
System.Boolean

Whether the configuration is valid for a given node.

UpdateEnergyData(ILayout<TNode, TConfiguration>, TNode, TConfiguration, TConfiguration, TNode, TConfiguration, ref TEnergyData)

Updates energy data of a given node based on a perturbed node.

Declaration
public bool UpdateEnergyData(ILayout<TNode, TConfiguration> layout, TNode perturbedNode, TConfiguration oldConfiguration, TConfiguration newConfiguration, TNode node, TConfiguration configuration, ref TEnergyData energyData)
Parameters
Type Name Description
ILayout<TNode, TConfiguration> layout
TNode perturbedNode

Node that was perturbed.

TConfiguration oldConfiguration

Old configuration of the perturbed node.

TConfiguration newConfiguration

New configuration of the perturbed node.

TNode node

Node for which an energy data should be computed.

TConfiguration configuration

Current configuration of the node.

TEnergyData energyData

Energy data to be modified.

Returns
Type Description
System.Boolean

Whether the configuration is valid for a given node.

Remarks

This method is used to speedup the computation. It would have a complexity of O(n^2) (n being the number of vertices) if all vertices needed all other vertices to compute their energy data. But it can be computed in O(n) if we change only relevant data and do not compute it all again. To support this method, energy data often hold all the information needed to make this kind of update.

UpdateEnergyData(ILayout<TNode, TConfiguration>, ILayout<TNode, TConfiguration>, TNode, ref TEnergyData)

Updates energy data of a perturbed node.

Declaration
public bool UpdateEnergyData(ILayout<TNode, TConfiguration> oldLayout, ILayout<TNode, TConfiguration> newLayout, TNode node, ref TEnergyData energyData)
Parameters
Type Name Description
ILayout<TNode, TConfiguration> oldLayout
ILayout<TNode, TConfiguration> newLayout
TNode node

Node for which an energy data should be computed.

TEnergyData energyData

Energy data to be modified.

Returns
Type Description
System.Boolean

Whether the configuration is valid for a given node.

Remarks

The idea of this method is the same as of the overload above.

Implements

INodeConstraint<TLayout, TNode, TConfiguration, TEnergyData>
Back to top Generated by DocFX