ELEC60015-HLP-CW/demo.md
2022-03-26 10:18:23 +00:00

1.8 KiB

Features

Buswire

  • Wire type
  • Render Wires (check for port facing down) ELSE NO
  • Rounded corners
    • 2 standalone functions, renderRISegList and renderRISegAndCorner
    • Can be easily swapped in place of List.map renderSegment within singleWireView, renderWireSegmentList
    • Renders only necessary segments, ignoring 0 length segments, either because they are covered by the rounded corners or are 0 length originally
    • Does not impact underlying position and click detection
  • Autorouting
  • Partial Autorouting (almost fine -> not working when input/output are at top/bottom)
  • No wire jumps because of rounded corners
    • Code for calculating jumps on wire move can be disabled when rounded corners are enabled, possible performance improvement
  • Drag Segments NO

Symbol

  • New Types: (Rotation, PortOrientation, PortOrientationOffset, New Component -> +R + SI , AportOffsetMap)
  • Rotation: All symbols can be rotated except for Split/MergeWire and Custom (since you can alter the ports' positions any way you like)
  • Mux + Adder with ports on different edges
  • Clock on custom -> NO
  • APortOffsetMap: used for all drawing functions, for loading components, and allows easy change of ports' locations
  • UI to rotate : This can be accessed by either pressing the keyboard combination SHIFT+R or accessing this through View>Rotate Symbol.
  • Move ports of custom : This can be accessed through the Symbol properties tab and selecting the port and preferred side to be moved to. Also by selecting the same side a port currently is it will move it to be the first port in that side.
  • Auto-align : Not implemented.
  • Bounding box : Bounding box height and width was changed to take into account the rotation of the symbol. This can be seen by rotating the symbol and testing the new bouding box.