public interface NFEManipulator
Modifier and Type | Method and Description |
---|---|
void |
applyFeatureClass(NFEFeature feature, NFEFeatureClass featClass)
Enforces all the attribute constraints defined in the feature class to the given feature
|
NFEFeature |
createFeature(NFEFeatureClass featClass)
Creates an empty Feature (with no Feature Element) of the specified Feature Class
|
NFEFeature |
createLineFeature(NFEFeatureClass featClass, JGeometry lineGeom, boolean enforceRules, double tolerance)
Creates a new line feature and its corresponding feature element(s) and network elements.
|
NFEFeatureElement |
createLineFeatureElement(NFELink link, double startPos, double endPos, long featureLayerId, long sequence)
Creates a new feature containing one line feature element.
|
NFELink |
createLink(NFENode startNode, NFENode endNode)
Creates a new link.
|
NFELink |
createLink(NFENode startNode, NFENode endNode, JGeometry geom)
Creates a new link.
|
NFENode |
createNode(double[] pointOrds)
Creates a new node.
|
NFENode |
createNode(JGeometry geom)
Creates a new node.
|
NFEFeature |
createPointFeature(NFEFeatureClass featClass, JGeometry pointGeom, boolean enforceRules, double tolerance)
Creates a new feature of the given feature class, containing only a PON feature element and its corresponding node.
|
NFEFeatureElement |
createPOLFeatureElement(NFELink link, double pos, long featureLayerId, long sequence)
Creates a new feature containing one PointOnLink feature element.
|
NFEFeatureElement |
createPONFeatureElement(NFENode node, long featureLayerId, long sequence)
Creates a new feature containing one PointOnNode feature element.
|
java.util.List<NFEFeature> |
createPredefinedConnectedPointFeatures(java.util.Collection<NFEPredefinedConnectedPoint> predefConnPoints, JGeometry lineGeom)
Creates the predefined points defined in the line feature class along a line geometry using the predefined points position percentages.
|
NFEFeature |
createStandalonePointFeature(NFEFeatureClass featClass, JGeometry pointGeom)
Creates a new feature of the given feature class, containing only a PON feature element and its corresponding node.
|
void |
enforceRules(java.util.Collection<NFEFeatureElement> featElems, double tolerance)
Detect interactions and enforces rules if needed for the given feature elements
|
java.util.Collection<NFEFeatureElement> |
getAdjacentFeatureElements(NFEFeatureElement featElem, int depth)
Gets all the feature elements connected to the given feature element
|
NFEConnectionManager |
getConnectionManager()
Gets the connection manager used by the current NFEModel
|
NFEInteractionEngine |
getInteractionEngine()
Gets the current interaction engine instance
|
NFERulesEngine |
getRulesEngine()
Gets the rules engine instance that is currently used by the model
|
boolean |
isAllowedPoint(double x, double y)
Tells whether a point is inside the boundaries defined by the model.
|
boolean |
isAllowedPoint(java.awt.geom.Point2D point)
Tells whether a point is inside the boundaries defined by the model.
|
boolean |
isAllowedRectangle(double x, double y, double w, double h)
Tells whether a rectangle is inside the boundaries defined by the model.
|
boolean |
isAllowedRectangle(java.awt.geom.Rectangle2D rectangle)
Tells whether a rectangle is inside the boundaries defined by the model.
|
boolean |
isValidPoint(double x, double y)
Returns true if the point location is valid, false otherwise.
|
NFEFeatureElement |
moveFeatureElementToNetworkElement(NFEFeatureElement featElem, NFENetworkElement destNetElem, double destStartPos)
Changes a feature element's underlying network element
|
java.util.Collection<NFENetworkElement> |
removedDanglingNetworkElements(NFENetworkElement fromNetElem)
Removes any dangling network element connected to the given network element (including the passed network element if it is itself a dangling element).
|
boolean |
removeFeature(NFEFeature feature)
Removes a feature from the model along with its feature elements and network elements
|
boolean |
removeFeatureElement(NFEFeatureElement featElem)
Removes a feature element from its feature along with the network element where the feature element is placed.
|
void |
reverseLineFeatureDirection(NFEFeature lineFeature)
Reverse the direction of all the links containing feature elements of the given feature
|
void |
reverseLinkDirection(NFELink link)
Changes the direction of a link by changing the order of its line ordinates
|
void |
setFeatureActive(NFEFeature feature, boolean active)
Sets the feature's active property
|
void |
setFeatureBidirected(NFEFeature feature, boolean bidirected)
Sets whether a feature is bidirected or not
|
void |
setNetworkElementGeometry(NFENetworkElement netElem, JGeometry newGeom)
Sets a new geometry to the specified network element.
|
void |
setNetworkElementsGeometries(NFENetworkElement[] netElems, JGeometry[] newGeoms, boolean enforceRules, double tolerance)
Changes geometries to a group of network elements.
|
void |
updateLinkGeometry(NFELink link)
Updates the link's geometry to reflect the position of its start and end points.
|
NFEConnectionManager getConnectionManager()
NFEInteractionEngine getInteractionEngine()
boolean isAllowedPoint(java.awt.geom.Point2D point)
point
- a java point instanceboolean isAllowedPoint(double x, double y)
x
- the point's x ordinatey
- the point's y ordinateboolean isAllowedRectangle(java.awt.geom.Rectangle2D rectangle)
rectangle
- a java rectangle instanceboolean isAllowedRectangle(double x, double y, double w, double h)
x
- the rectangle's lower left corner x ordinatey
- the rectangle's lower left corner y ordinatew
- the rectangle's widthh
- the rectangle's heightboolean isValidPoint(double x, double y)
x
- the x of the pointy
- the y of the pointjava.util.Collection<NFENetworkElement> removedDanglingNetworkElements(NFENetworkElement fromNetElem)
fromNetElem
- the network element from where the search beginsvoid reverseLinkDirection(NFELink link)
link
- a link instancevoid setNetworkElementGeometry(NFENetworkElement netElem, JGeometry newGeom)
netElem
- the network which geometry will be changednewGeom
- the new network element's geometryvoid setNetworkElementsGeometries(NFENetworkElement[] netElems, JGeometry[] newGeoms, boolean enforceRules, double tolerance)
netElems
- An array of network elements which geometries will be changednewGeoms
- An array of new geometries. The length of this array must be equal than the netElems array.enforceRules
- if true, rules will be executed for the changed elementstolerance
- tolerance used for detecting interactions if rules are enforcedboolean removeFeature(NFEFeature feature)
feature
- a feature instanceboolean removeFeatureElement(NFEFeatureElement featElem)
featElem
- a feature element instancevoid applyFeatureClass(NFEFeature feature, NFEFeatureClass featClass)
feature
- a feature instancefeatClass
- a feature class instancevoid setFeatureActive(NFEFeature feature, boolean active)
feature
- a feature instanceactive
- the active property valuevoid setFeatureBidirected(NFEFeature feature, boolean bidirected)
feature
- a feature instancebidirected
- true for bidirectedvoid reverseLineFeatureDirection(NFEFeature lineFeature)
lineFeature
- a line feature instanceNFEFeatureElement moveFeatureElementToNetworkElement(NFEFeatureElement featElem, NFENetworkElement destNetElem, double destStartPos)
featElem
- the feature element to be modifieddestNetElem
- the new underlying network elementdestStartPos
- destination start position (in percent)void updateLinkGeometry(NFELink link)
link
- a link instanceNFEFeature createFeature(NFEFeatureClass featClass)
featClass
- A Feature Class instance. It is expected to be a well formed instance, containing a reference to the Feature Layer it belongs to.NFEFeature createPointFeature(NFEFeatureClass featClass, JGeometry pointGeom, boolean enforceRules, double tolerance)
featClass
- a point feature class instancepointGeom
- a java point instanceenforceRules
- if true, rules will be executed for this new point featuretolerance
- tolerance used for detecting interactions if rules are enforcedNFEFeature createStandalonePointFeature(NFEFeatureClass featClass, JGeometry pointGeom)
featClass
- a point feature classpointGeom
- a java point instanceNFEFeature createLineFeature(NFEFeatureClass featClass, JGeometry lineGeom, boolean enforceRules, double tolerance)
featClass
- a line feature classlineGeom
- a line string geometryenforceRules
- whether rules must be enforced after creating the featuretolerance
- tolerance used for detecting interactions if rules are enforcedjava.util.List<NFEFeature> createPredefinedConnectedPointFeatures(java.util.Collection<NFEPredefinedConnectedPoint> predefConnPoints, JGeometry lineGeom)
predefConnPoints
- a collection predefined connected point descriptorslineGeom
- the line geometry where the points will be placedjava.util.Collection<NFEFeatureElement> getAdjacentFeatureElements(NFEFeatureElement featElem, int depth)
featElem
- a feature elementdepth
- for how many levels connected elements must be retrievedNFENode createNode(double[] pointOrds)
pointOrds
- a point ordinates.NFENode createNode(JGeometry geom)
geom
- a point geometryNFELink createLink(NFENode startNode, NFENode endNode)
startNode
- the link's start node. The node must exist in the network.endNode
- the link's end node. The node must exist in the network.NFELink createLink(NFENode startNode, NFENode endNode, JGeometry geom)
startNode
- the link's start node. The node must exist in the network.endNode
- the link's end node. The node must exist in the network.geom
- a line string geometryNFEFeatureElement createPONFeatureElement(NFENode node, long featureLayerId, long sequence)
node
- the underlying nodefeatureLayerId
- the ID of feature Layer where the feature belongssequence
- the feature element's sequence numberNFEFeatureElement createPOLFeatureElement(NFELink link, double pos, long featureLayerId, long sequence)
link
- the underlying linkpos
- position of the POL feature element. Relative to the link's lengthfeatureLayerId
- the ID of feature Layer where the feature belongssequence
- the feature element's sequence numberNFEFeatureElement createLineFeatureElement(NFELink link, double startPos, double endPos, long featureLayerId, long sequence)
link
- the underlying linkstartPos
- start position of the line feature element. Relative to the link's lengthendPos
- end position of the line feature element. Relative to the link's lengthfeatureLayerId
- the ID of the feature layer the feature belongssequence
- the feature element's sequence numberNFERulesEngine getRulesEngine()
void enforceRules(java.util.Collection<NFEFeatureElement> featElems, double tolerance)
featElems
- a collection of feature elementstolerance
- tolerance use for detecting interactions