BoundaryNodeRule.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. export default class BoundaryNodeRule {
  2. isInBoundary(boundaryCount) {}
  3. }
  4. class Mod2BoundaryNodeRule {
  5. isInBoundary(boundaryCount) {
  6. return boundaryCount % 2 === 1
  7. }
  8. get interfaces_() {
  9. return [BoundaryNodeRule]
  10. }
  11. }
  12. class EndPointBoundaryNodeRule {
  13. isInBoundary(boundaryCount) {
  14. return boundaryCount > 0
  15. }
  16. get interfaces_() {
  17. return [BoundaryNodeRule]
  18. }
  19. }
  20. class MultiValentEndPointBoundaryNodeRule {
  21. isInBoundary(boundaryCount) {
  22. return boundaryCount > 1
  23. }
  24. get interfaces_() {
  25. return [BoundaryNodeRule]
  26. }
  27. }
  28. class MonoValentEndPointBoundaryNodeRule {
  29. isInBoundary(boundaryCount) {
  30. return boundaryCount === 1
  31. }
  32. get interfaces_() {
  33. return [BoundaryNodeRule]
  34. }
  35. }
  36. BoundaryNodeRule.Mod2BoundaryNodeRule = Mod2BoundaryNodeRule
  37. BoundaryNodeRule.EndPointBoundaryNodeRule = EndPointBoundaryNodeRule
  38. BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule = MultiValentEndPointBoundaryNodeRule
  39. BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule = MonoValentEndPointBoundaryNodeRule
  40. BoundaryNodeRule.MOD2_BOUNDARY_RULE = new Mod2BoundaryNodeRule()
  41. BoundaryNodeRule.ENDPOINT_BOUNDARY_RULE = new EndPointBoundaryNodeRule()
  42. BoundaryNodeRule.MULTIVALENT_ENDPOINT_BOUNDARY_RULE = new MultiValentEndPointBoundaryNodeRule()
  43. BoundaryNodeRule.MONOVALENT_ENDPOINT_BOUNDARY_RULE = new MonoValentEndPointBoundaryNodeRule()
  44. BoundaryNodeRule.OGC_SFS_BOUNDARY_RULE = BoundaryNodeRule.MOD2_BOUNDARY_RULE