Class Layout<TRoom, TConfiguration>
Inheritance
System.Object
Layout<TRoom, TConfiguration>
Namespace: Edgar.GraphBasedGenerator.Common
Assembly: Edgar.dll
Syntax
public class Layout<TRoom, TConfiguration> : Object, ILayout<RoomNode<TRoom>, TConfiguration>, ISmartCloneable<Layout<TRoom, TConfiguration>> where TConfiguration : ISmartCloneable<TConfiguration>
Type Parameters
| Name | Description |
|---|---|
| TRoom | |
| TConfiguration |
Constructors
Layout(IGraph<RoomNode<TRoom>>)
Construct a layout with a given graph and no configurations.
Declaration
public Layout(IGraph<RoomNode<TRoom>> graph)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph<RoomNode<TRoom>> | graph |
Properties
Graph
Declaration
public IGraph<RoomNode<TRoom>> Graph { get; }
Property Value
| Type | Description |
|---|---|
| IGraph<RoomNode<TRoom>> |
Methods
GetAllConfigurations()
Gets all configurations.
Declaration
public IEnumerable<TConfiguration> GetAllConfigurations()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerable<TConfiguration> |
GetConfiguration(RoomNode<TRoom>, out TConfiguration)
Gets the configuration of a given node.
Declaration
public bool GetConfiguration(RoomNode<TRoom> node, out TConfiguration configuration)
Parameters
| Type | Name | Description |
|---|---|---|
| RoomNode<TRoom> | node | |
| TConfiguration | configuration |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if a given node has already a configuration. |
RemoveConfiguration(RoomNode<TRoom>)
Removes configuration of a given node.
Declaration
public void RemoveConfiguration(RoomNode<TRoom> node)
Parameters
| Type | Name | Description |
|---|---|---|
| RoomNode<TRoom> | node |
SetConfiguration(RoomNode<TRoom>, TConfiguration)
Sets a configurations of a given node.
Declaration
public void SetConfiguration(RoomNode<TRoom> node, TConfiguration configuration)
Parameters
| Type | Name | Description |
|---|---|---|
| RoomNode<TRoom> | node | |
| TConfiguration | configuration |
SmartClone()
Smart clones all configurations. Graph is not smart cloned.
Declaration
public Layout<TRoom, TConfiguration> SmartClone()
Returns
| Type | Description |
|---|---|
| Layout<TRoom, TConfiguration> |
Remarks
May not deep clone everything if it does not make sense in a given context.