mirror of
https://github.com/supleed2/ELEC60015-HLP-CW.git
synced 2024-11-10 02:05:48 +00:00
30 lines
1.8 KiB
Markdown
30 lines
1.8 KiB
Markdown
# 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.
|
|
|