new BaseTwoPoint()
Extends
Members
-
chartsOnly :boolean
-
Set this parameter to
true
to restrict drawing from being rendered on a study panel.This parameter may be set for all drawings, for a specific drawing type, or for a specific drawing instance. See examples.
Type:
- boolean
- Inherited From:
- Overrides:
Example
// Set drawing instance to chartsOnly. Only this one drawing will be affected. drawing.chartsOnly=true; // Set a particular drawing prototype to chartsOnly. All drawings to type "difference" will be affected. CIQ.Drawing["difference"].prototype.chartsOnly=true; // Set all drawings to chartsOnly. CIQ.Drawing.prototype.chartsOnly=true;
-
configs :Array.<string>
-
List of drawing settings to enable for this drawing. Some of the more common settings are: "color", "fillColor", "lineWidth", "pattern"; but for more complex drawings there are additional ones.
By resetting this array, you can control which settings are available for drawings of this type as well as any drawings that share the prototype with this drawing.
Type:
- Array.<string>
- Since:
-
9.7.0
-
dragToDraw :boolean
-
Used to set the user behavior for creating drawings.
By default, a drawing is created with this sequence:
move crosshair to staring point
→click
→move crosshair to ending point
→click
.On a touch device this would be:
move crosshair to staring point
→tap
→move crosshair to ending point
→tap
.Set dragToDraw to
true
to create the drawing with the following alternate sequence:move crosshair to staring point
→mousedown
→drag
→mouseup
On a touch device this would be:
move crosshair to staring point
→press
→drag
→release
.This parameter is not compatible with drawings requiring more than one drag movement to complete, such as:
- Channel
- Continuous Line
- Elliott Wave
- Gartley
- Pitchfork
- Fibonacci Projection
Line and Ray have their own separate parameter, which also needs to be set in the same way, if this option is desired:
CIQ.Drawing.line.prototype.dragToDraw=true;
This parameter may be set for all drawings compatible with it, for a specific drawing type, or for a specific drawing instance. See examples.
Type:
- boolean
- Inherited From:
- Overrides:
Example
// set drawing instance to dragToDraw. Only this one drawing will be affected drawing.dragToDraw=true; // Set particular drawing prototype to dragToDraw. All drawings to type "difference" will be affected CIQ.Drawing["difference"].prototype.dragToDraw=true; // Set all drawings to dragToDraw CIQ.Drawing.prototype.dragToDraw=true;
-
permanent :boolean
-
Set this to true to disable selection, repositioning, and deletion by the end user.
This parameter may be set for all drawings, for a specific drawing type, or for a specific drawing instance. See examples.
Type:
- boolean
- Inherited From:
- Overrides:
Example
// set drawing instance to permanent. Only this one drawing will be affected drawing.permanent=true; // Set particular drawing prototype to permanent. All drawings to type "difference" will be affected CIQ.Drawing["difference"].prototype.permanent=true; // Set all drawings to permanent CIQ.Drawing.prototype.permanent=true;
Methods
-
abort(forceClear)
-
This function is called to tell a drawing to abort itself. It should clean up any rendered objects such as DOM elements or toggle states. It does not need to clean up anything that it drew on the canvas.
Parameters:
Name Type Description forceClear
boolean Indicates that the user explicitly deleted the drawing (advanced usage).
- Inherited From:
- Overrides:
-
adjust()
-
Called whenever periodicity changes so that drawings can adjust their rendering.
- Inherited From:
- Overrides:
-
boxToPixels(stx, panelName, box [, yAxis])
-
Converts a box represented by two corner coordinates [tick0,value0] and [tick1,value1] into pixel coordinates. This is important for drawing tools or any other device that requires the actual underlying price. This function is preferred over CIQ.convertBoxToPixels when used by drawing functions because it automatically returns the pixel values based off the values of the box as if they were values of the plot corresponding to the drawing's
field
property. CIQ.convertBoxToPixels usually returns the pixel values of the box assuming those values are the main series plot's values.Parameters:
Name Type Argument Description stx
CIQ.ChartEngine The chartEngine
panelName
string Panel on which the coordinates reside
box
object Box to convert
Properties
Name Type Argument Description x0
number <optional>
y0
number <optional>
x1
number <optional>
y1
number <optional>
yAxis
CIQ.ChartEngine.YAxis <optional>
- Since:
-
8.4.0
- Inherited From:
- Overrides:
Returns:
A converted box
- Type
- object
-
click(context, tick, value)
-
Called when a user clicks while drawing.
Parameters:
Name Type Description context
object The canvas context.
tick
number The tick in the
dataSet
.value
number The value (price) of the click.
- Inherited From:
- Overrides:
Returns:
True if the drawing is complete. Otherwise the kernel continues accepting clicks.
- Type
- boolean
-
construct(stx, panel)
-
Initializes the drawing
Parameters:
Name Type Description stx
CIQ.ChartEngine The chart object.
panel
CIQ.ChartEngine.Panel The panel reference.
- Inherited From:
- Overrides:
-
copyConfig(withPreferences)
-
Instance function used to copy the relevant drawing parameters into itself. It just calls the static function.
Parameters:
Name Type Description withPreferences
boolean set to true to return previously saved preferences
- Since:
-
3.0.0
- Inherited From:
- Overrides:
-
getLineColor(color [, ignoreHighlight])
-
Compute the proper color to use when rendering lines in the drawing.
Will use the color but if set to auto or transparent, will use the container's defaultColor. However, if color is set to auto and the drawing is based off a series or study plot, this function will return that plot's color. If drawing is highlighted will use the highlight color as defined in stx_highlight_vector style.
Parameters:
Name Type Argument Description color
string Color string to check and use as a basis for setting. If not supplied, uses this.color.
ignoreHighlight
boolean <optional>
True to ignore highlighting status when determining color (for example, if a label, or if determining fill color).
- Since:
-
- 7.0.0 Replaces
setLineColor
. Will return source line's color if auto. - 8.4.0 Added
isLabel
parameter. - 9.1.2 Changed name of
isLabel
parameter toignoreHighlight
.
- 7.0.0 Replaces
- Inherited From:
- Overrides:
Returns:
Color to use for the line drawing
- Type
- string
Example
var trendLineColor=this.getLineColor(); this.stx.plotLine(x0, x1, y0, y1, trendLineColor, "segment", context, panel, parameters);
-
highlight(highlighted)
-
Returns the highlighted state. Set this.highlighted to the highlight state. For simple drawings the highlighted state is just true or false. For complex drawings with pivot points for instance, the highlighted state may have more than two states. Whenever the highlighted state changes a draw() event will be triggered.
Parameters:
Name Type Description highlighted
Boolean True to highlight the drawing, false to unhighlight
- Inherited From:
- Overrides:
-
intersected(tick, value, box)
-
Called to determine whether the drawing is intersected by either the tick/value (pointer location) or box (small box surrounding the pointer). For line-based drawings, the box should be checked. For area drawings (rectangles, circles) the point should be checked.
Parameters:
Name Type Description tick
number The tick in the
dataSet
representing the cursor point.value
number The value (price) representing the cursor point.
box
object x0, y0, x1, y1, r representing an area around the cursor, including radius.
- Inherited From:
- Overrides:
Returns:
An object that contains information about the intersection. This object is passed back to CIQ.Drawing.reposition when repositioning the drawing. Return false or null if not intersected. Simply returning true highlights the drawing.
- Type
- object
-
isAllowed(stx [, field])
-
Decides if a drawing can be created on the specified field.
Parameters:
Name Type Argument Description stx
CIQ.ChartEngine The chart object.
field
string <optional>
Field in the dataset, if something other than default.
- Since:
-
8.6.0
- Inherited From:
- Overrides:
Returns:
Whether a drawing can be made on the field.
- Type
- boolean
-
measure()
-
Should call this.stx.setMeasure() with the measurements of the drawing if supported.
- Inherited From:
- Overrides:
-
move(context, tick, value)
-
Called when the user moves while creating a drawing.
Parameters:
Name Type Description context
CanvasRenderingContext2D Canvas context on which to render.
tick
number Tick in the
dataSet
.value
number Value at position.
- Inherited From:
- Overrides:
-
pixelFromValue(panel, tick, value [, yAxis])
-
Returns the Y pixel location for the (split) unadjusted price rather than the displayed price for a drawing. This is important for drawing tools or any other device that requires the actual underlying price. This function is preferred over CIQ.ChartEngine#pixelFromValueAdjusted when used by drawing functions because it automatically returns the pixel based off the value of the plot corresponding the drawing's
field
property. CIQ.ChartEngine#pixelFromValueAdjusted usually returns the pixel of the main series plot's value.Parameters:
Name Type Argument Description panel
CIQ.ChartEngine.Panel The panel to get the value from
tick
number The tick location (in the dataSet) to check for an adjusted value
value
number The value
yAxis
CIQ.ChartEngine.YAxis <optional>
The yaxis to use
- Since:
-
8.4.0
- Inherited From:
- Overrides:
Returns:
The pixel location of the plot whose field matches the field property of the drawing
- Type
- number
-
pointIntersection(tick, value, box, isPixels)
-
Returns true if the tick and value are inside the box
Parameters:
Name Type Description tick
number The tick
value
number The value
box
object The box
isPixels
boolean True if tick and value are in pixels; otherwise, they assumed to be in ticks and untransformed y-axis values, respectively
- Since:
-
7.0.0 Added
isPixels
.
- Inherited From:
- Overrides:
Returns:
True if the tick and value are within the box
- Type
- boolean
-
reconstruct(stx, obj)
-
Reconstruct this drawing type from a serialization object
Parameters:
Name Type Description stx
CIQ.ChartEngine Instance of the chart engine
obj
object Serialized data about the drawing from which it can be reconstructed.
- Inherited From:
- Overrides:
-
render(context)
-
Called to render the drawing.
Parameters:
Name Type Description context
CanvasRenderingContext2D Canvas context on which to render.
- Inherited From:
- Overrides:
-
reposition(context, repositioner, tick, value)
-
Called when the user attempts to reposition a drawing. The repositioner is the object provided by CIQ.Drawing.intersected and can be used to determine which aspect of the drawing is being repositioned. For instance, this object may indicate which point on the drawing was selected by the user. It might also contain the original coordinates of the point or anything else that is useful to render the drawing.
Parameters:
Name Type Description context
object The canvas context.
repositioner
object The repositioner object.
tick
number Current tick in the
dataSet
for the mouse cursor.value
number Current value in the
dataSet
for the mouse cursor.- Inherited From:
- Overrides:
-
serialize()
-
Serialize a drawing into an object.
- Inherited From:
- Overrides:
-
setLineColor()
-
Compute the proper color to use when rendering lines in the drawing.
- Since:
-
- 4.0.0
- 7.0.0 Deprecated
- Inherited From:
- Overrides:
- Deprecated:
-
Use CIQ.Drawing#getLineColor instead.
-
setPoint(point, x, y [, chart])
-
Sets the internal properties of the drawing points where x is a tick or a date and y is a value.
Parameters:
Name Type Argument Description point
number index to point to be converted (0,1)
x
number | string index of bar in dataSet (tick) or date of tick (string form)
y
number price
chart
CIQ.ChartEngine.Chart <optional>
Optional chart object
- Since:
-
- 04-2015
- 8.3.0
x
tick values outside an allowable range will be replaced by values at the edge of the range. This is to prevent performance problems when switching periodicities.
- Inherited From:
- Overrides:
-
valueFromPixel(pixel [, panel] [, yAxis])
-
Returns the value (price) of a drawing given a y-axispixel. The value is relative to the panel or the canvas. This function is preferred over CIQ.ChartEngine#valueFromPixel when used by drawing functions because it automatically returns the value based off the plot corresponding the drawing's
field
property. CIQ.ChartEngine#valueFromPixel usually returns the value of the main series plot.Parameters:
Name Type Argument Description pixel
number The y pixel position
panel
CIQ.ChartEngine.Panel <optional>
A panel object. If passed then the value will be relative to that panel. If not passed then the value will be relative to the panel that is in the actual Y location.
yAxis
CIQ.ChartEngine.YAxis <optional>
Which yAxis. Defaults to panel.yAxis.
- Since:
-
8.4.0
- Inherited From:
- Overrides:
Returns:
The value relative to the panel, of the plot whose field matches the field property of the drawing
- Type
- number
-
accidentalClick(tick, value)
-
Any two-point drawing that results in a drawing that is less than 10 pixels can safely be assumed to be an accidental click. Such drawings are so small that they are difficult to highlight and delete, so we won't allow them.
Note: it is very important to use CIQ.Drawing#pixelFromValue. This will ensure that saved drawings always render correctly when a chart is adjusted or transformed for display.
Parameters:
Name Type Description tick
number Tick in the
dataSet
.value
number Value at position.
-
adjust()
-
Default adjust function for BaseTwoPoint drawings
-
boxIntersection(tick, value, box)
-
Determine whether the tick/value lies within the theoretical box outlined by this drawing's two points.
Parameters:
Name Type Description tick
number Tick in the
dataSet
.value
number Value at position.
box
object x0, y0, x1, y1, r representing an area around the cursor, including the radius.
Returns:
True if box intersects the drawing.
- Type
- boolean
-
click(context, tick, value)
-
Value will be the actual underlying, unadjusted value for the drawing. Any adjustments or transformations are reversed out by the kernel. Internally, drawings should store their raw data (date and value) so that they can be rendered on charts with different layouts, axis, etc
Parameters:
Name Type Description context
CanvasRenderingContext2D Canvas context on which to render.
tick
number Tick in the
dataSet
.value
number Value at position.
Returns:
True if the drawing is complete. Otherwise the kernel continues accepting clicks.
- Type
- boolean
-
lineIntersection(tick, value, box, type [, p0] [, p1] [, isPixels])
-
Intersection is based on a hypothetical box that follows a user's mouse or finger. An intersection occurs when the box crosses over the drawing. The type should be "segment", "ray" or "line" depending on whether the drawing extends infinitely in any or both directions. Radius determines the size of the box in pixels and is determined by the kernel depending on the user interface (mouse, touch, etc.).
Parameters:
Name Type Argument Description tick
number Tick in the
dataSet
.value
number Value at the cursor position.
box
object x0, y0, x1, y1, r representing an area around the cursor, including the radius.
type
string Determines how the line should be treated (as segment, ray, or line) when finding an intersection.
p0
Array.<number> <optional>
The x/y coordinates of the first endpoint of the line that is tested for intersection with
box
.p1
Array.<number> <optional>
The x/y coordinates of the second endpoint of the line that is tested for intersection with
box
.isPixels
boolean <optional>
Indicates that box values are in pixel values.
Returns:
True if the line intersects the box; otherwise, false.
- Type
- boolean
-
measure()
-
Default measure function for BaseTwoPoint drawings
-
move(context, tick, value)
-
Default move function for BaseTwoPoint drawings
Parameters:
Name Type Description context
CanvasRenderingContext2D Canvas context on which to render.
tick
number Tick in the
dataSet
.value
number Value at position.
-
valueOnDrawingAxis(tick, value)
-
Returns the Y value on the drawing's axis of the value passed in which is on the panel's main y-axis.
Parameters:
Name Type Description tick
number The tick location (in the dataSet) to check for an adjusted value
value
number The value
- Since:
-
8.4.0
Returns:
The value on the drawing's axis.
- Type
- number