Constructor
# new CircuitElement(x, y, scope, dir, bitWidth)
Parameters:
Name | Type | Description |
---|---|---|
x |
number
|
x coordinate of the element |
y |
number
|
y coordinate of the element |
scope |
Scope
|
The circuit on which circuit element is being drawn |
dir |
string
|
The direction of circuit element |
bitWidth |
number
|
the number of bits per node. |
Methods
# absX(x) → {number}
Function to get absolute value of x coordinate of the element
Parameters:
Name | Type | Description |
---|---|---|
x |
number
|
value of x coordinate of the element |
- absolute value of x
number
# absY(y) → {number}
Function to get absolute value of y coordinate of the element
Parameters:
Name | Type | Description |
---|---|---|
y |
number
|
value of y coordinate of the element |
- absolute value of y
number
# changePropagationDelay(delay)
Method to change object delay
OVERRIDE if necessary
Parameters:
Name | Type | Description |
---|---|---|
delay |
number
|
new delay |
# cleanDelete()
method to delete object
OVERRIDE WITH CAUTION
# copyFrom(obj)
Function to copy the circuit element obj to a new circuit element
Parameters:
Name | Type | Description |
---|---|---|
obj |
CircuitElement
|
element to be copied from |
# deleteNodes()
Helper Function to delete the element and all the node attached to it.
# draw()
Method that draws the outline of the module and calls draw function on module Nodes.
NOT OVERRIDABLE
# drawLayoutMode(xOffset, yOffset)
Draws element in layout mode (inside the subcircuit)
Parameters:
Name | Type | Default | Description |
---|---|---|---|
xOffset |
number
|
0 | x position of the subcircuit |
yOffset |
number
|
0 | y position of the subcircuit Called by subcirucit.js/customDraw() - for drawing as a part of another circuit and layoutMode.js/renderLayout() - for drawing in layoutMode |
# fixDirection()
Helper Function to correct the direction of element
# flipBits(val) → {number}
Function to flip bits
Parameters:
Name | Type | Description |
---|---|---|
val |
number
|
the value of flipped bits |
- The number of flipped bits
number
# isHover()
The isHover method is used to check if the mouse is hovering over the object.
Return Value: true if mouse is hovering over object else false
NOT OVERRIDABLE
# isResolvable() → {boolean}
Method to check if object can be resolved
OVERRIDE if necessary
boolean
# layoutUpdate()
Used to update the state of the elements inside the subcircuit in layout mode
Return Value: true if the state has changed, false otherwise
# newBitWidth(bitWidth)
Method to change object Bitwidth
OVERRIDE if necessary
Parameters:
Name | Type | Description |
---|---|---|
bitWidth |
number
|
new bitwidth |
# newDirection(dir)
method to change direction
OVERRIDE WITH CAUTION
Parameters:
Name | Type | Description |
---|---|---|
dir |
string
|
new direction |
# newLabelDirection(dir)
Helper Function to change label direction of the element.
Parameters:
Name | Type | Description |
---|---|---|
dir |
string
|
new direction |
# removePropagation()
Helper Function to remove proporgation.
# setDimensions(w, h)
This sets the width and height of the element if its rectangular
and the reference point is at the center of the object.
width and height define the X and Y distance from the center.
Effectively HALF the actual width and height.
NOT OVERRIDABLE
Parameters:
Name | Type | Description |
---|---|---|
w |
number
|
width |
h |
number
|
height |
# setLabel(label)
Helper Function to set label of an element.
Parameters:
Name | Type | Description |
---|---|---|
label |
string
|
the label for element |
# setOutputsUpstream()
Sets isValueUpstream for all output nodes of the
element.
# startDragging()
Helper Function to drag element to a new position
# toggleLabelInLayoutMode()
Toggles the visibility of the labels of subcircuit elements. Called by event handlers in ux.js
# update()
The update method is used to change the parameters of the object on mouse click and hover.
Return Value: true if state has changed else false
NOT OVERRIDABLE
# updateScope(scope)
Function to update the scope when a new element is added.
Parameters:
Name | Type | Description |
---|---|---|
scope |
Scope
|
the circuit in which we add element |