DrawingTools Class Reference

The DrawingTools JavaScript global object. Get information about the currently selected drawing. More...

Classes

class  vectorize
 

Public Slots

void setCurrentArt (int currentArt)
 Sets the current art to be one of the following : underlayArt, colourArt, lineArt or overlayArt. More...
 
bool setCurrentDrawingFromColumnName (String columnName, int frame=1)
 
bool setCurrentDrawingFromNodeName (String nodeName, int frame=1)
 Sets the current drawing to be from node nodeName at frame frame. More...
 
void convertPencilToBrush (int art=LineArtMask, DrawingToolParams *params=0)
 Converts the selected pencil lines in layer of the current drawing using params. More...
 
void extractCenterline (int srcArt=LineArtMask, int dstArt=ColourArtMask, DrawingToolParams *params=0)
 Extracts the centerline from srcArt and puts the extracted line in dstArt using params. More...
 
void computeBreakingTriangles (DrawingToolParams *params=0)
 Computes the breaking triangles of the current layer using params. More...
 
void recolorDrawing (QScriptValue drawingKey, QScriptValue colorMap)
 Recolours the drawing identified by a drawing key. More...
 
void changeDrawingVectorLayerResolution (QScriptValue drawingKey, double pixelPerModelUnit, QScriptValue options=QScriptValue())
 Changes the vector layer resolution of a given drawing. More...
 
void changeDrawingBitmapLayerResolution (QScriptValue drawingKey, double pixelPerModelUnit, QScriptValue options=QScriptValue())
 Changes the bitmap layer resolution of a given drawing. More...
 
QScriptValue getDrawingUsedColors (QScriptValue drawingKey)
 Returns an array containing the set of colour ids used by the drawing. More...
 
QScriptValue getDrawingUsedColorsWithSource (QScriptValue drawingKey)
 Returns an array of objects describing the set of colour ids used by the drawing along with the source of the colour. More...
 
QScriptValue getMultipleDrawingsUsedColors (QScriptValue drawingKeyArray)
 Return an array containing the set of colour ids used by all drawings in the array. More...
 

Public Member Functions

QVariant vectorize (...)
 
bool optimize (QVariant config)
 Performs the same operation as Drawing->Optimize->Optimize menu item. More...
 
bool flatten (QVariant config)
 Performs the same operation as Drawing->Optimize->Flatten menu item. More...
 
bool clearArt (QVariant config)
 Clears an art of a drawing. More...
 

Properties

int underlayArt
 Returns the underlayArt mask. More...
 
int colourArt
 Returns the colourArt mask. More...
 
int lineArt
 Returns the lineArt mask. More...
 
int overlayArt
 Returns the overlayArt mask. More...
 
int allArts
 Returns the mask for all 4 art layers. More...
 

Detailed Description

The DrawingTools JavaScript global object. Get information about the currently selected drawing.

Member Function Documentation

◆ changeDrawingBitmapLayerResolution

void DrawingTools::changeDrawingBitmapLayerResolution ( QScriptValue  drawingKey,
double  pixelPerModelUnit,
QScriptValue  options = QScriptValue() 
)
slot

Changes the bitmap layer resolution of a given drawing.

The example below uses DrawingTools.changeDrawingBitmapLayerResolution(..) to change all art layers (0=underlay, 1=line art, 2=color art, 3=overlay) resolutions of the 2nd drawing associated with a given node timing column.

var columnId = node.linkedColumn("Top/Drawing_2", "DRAWING.ELEMENT");
var elementKey = column.getElementIdOfDrawing(columnId);
var timings = column.getDrawingTimings(columnId);
var dk = Drawing.Key(elementKey, timings[1]);
DrawingTools.changeDrawingBitmapLayerResolution(dk, 0.1, {resampleBitmap:true, art:[2]});
Parameters
drawingKey: The drawing identifier
pixelPerModelUnit: The new normalized pixel density (1.0 = 100%)
options: Optional parameters. The following properties are supported :
Property Type Default Value Description
resampleBitmap bool true Will only resample existing bitmaps if set to true.
art Array [0,1,2,3] Controls which art layers are targeted by the function call (0=underlay, 1=line art, 2=color art, 3=overlay)

◆ changeDrawingVectorLayerResolution

void DrawingTools::changeDrawingVectorLayerResolution ( QScriptValue  drawingKey,
double  pixelPerModelUnit,
QScriptValue  options = QScriptValue() 
)
slot

Changes the vector layer resolution of a given drawing.

The example below uses DrawingTools.changeDrawingVectorLayerResolution(..) to change all art layers (0=underlay, 1=line art, 2=color art, 3=overlay) resolutions of the first drawing associated with a given node timing column.

var columnId = node.linkedColumn("Top/Drawing_1", "DRAWING.ELEMENT");
var elementKey = column.getElementIdOfDrawing(columnId);
var timings = column.getDrawingTimings(columnId);
var dk = Drawing.Key(elementKey, timings[0]);
DrawingTools.changeDrawingVectorLayerResolution(dk, 0.1, { applyToExistingStrokes:true, art : [0, 1, 2, 3] });
Parameters
drawingKey: The drawing identifier
pixelPerModelUnit: The new normalized pixel density (1.0 = 100%)
options: Optional parameters. The following properties are supported :
Property Type Default Value Description
applyToExistingStrokes bool true Will only apply the resolution to new strokes if set to false.
art Numeric Array [0,1,2,3] Controls which art layers are targeted by the function call (0=underlay, 1=line art, 2=color art, 3=overlay)

◆ clearArt()

bool DrawingTools::clearArt ( QVariant  config)

Clears an art of a drawing.

Takes an object that can contain: drawing : Drawing Key art : int The art to clear. 0 = Underlay, 1 = Colour Art, 2 = Line Art, 3 = Overlay

◆ computeBreakingTriangles

void DrawingTools::computeBreakingTriangles ( DrawingToolParams params = 0)
slot

Computes the breaking triangles of the current layer using params.

Parameters
params: The DrawingToolParams.

◆ convertPencilToBrush

void DrawingTools::convertPencilToBrush ( int  art = LineArtMask,
DrawingToolParams params = 0 
)
slot

Converts the selected pencil lines in layer of the current drawing using params.

Parameters
art: The current drawing.
params: The DrawingToolParams.

◆ extractCenterline

void DrawingTools::extractCenterline ( int  srcArt = LineArtMask,
int  dstArt = ColourArtMask,
DrawingToolParams params = 0 
)
slot

Extracts the centerline from srcArt and puts the extracted line in dstArt using params.

Parameters
srcArt: The source art.
dstArt: The destination art layer.
params: The DrawingToolParams.

◆ flatten()

bool DrawingTools::flatten ( QVariant  config)

Performs the same operation as Drawing->Optimize->Flatten menu item.

Takes an object that can contain: drawing : Drawing Key removeInvisibleLines : bool default false

◆ getDrawingUsedColors

QScriptValue DrawingTools::getDrawingUsedColors ( QScriptValue  drawingKey)
slot

Returns an array containing the set of colour ids used by the drawing.

Parameters
drawingKey: A key identifying a drawing from a file, an exposure on an element node or drawing of an element.
See also
Drawing::Key

◆ getDrawingUsedColorsWithSource

QScriptValue DrawingTools::getDrawingUsedColorsWithSource ( QScriptValue  drawingKey)
slot

Returns an array of objects describing the set of colour ids used by the drawing along with the source of the colour.

Parameters
drawingKey: A key identifying a drawing from a file, an exposure on an element node or drawing of an element.
See also
Drawing::Key
Returns
Returns an array of objects describing the set of colour ids used by the drawing along with the source of the colour. The returned objects are formatted as follows:
{ "colorId": <string>, "colorSource": <"COLOR"|"PENCIL_TEXTURE"> }
If the colorSource is "COLOR", the colorId is compatible with a Colour palette. If the colorSource is "PENCIL_TEXTURE", the colorId is compatible with a Pencil palette.

◆ getMultipleDrawingsUsedColors

QScriptValue DrawingTools::getMultipleDrawingsUsedColors ( QScriptValue  drawingKeyArray)
slot

Return an array containing the set of colour ids used by all drawings in the array.

Parameters
drawingKeyArray: An array of keys identifying a drawing from a file, an exposure on an element node or drawing of an element.
See also
Drawing::Key

◆ optimize()

bool DrawingTools::optimize ( QVariant  config)

Performs the same operation as Drawing->Optimize->Optimize menu item.

Takes an object that can contain: drawing : Drawing Key removeInvisibleLines : bool default false

◆ recolorDrawing

void DrawingTools::recolorDrawing ( QScriptValue  drawingKey,
QScriptValue  colorMap 
)
slot

Recolours the drawing identified by a drawing key.

DrawingKey : A drawing key, built from { ElementID : id, exposure : "drawingName"}, or {node: "Qualified_name", frame : i}

ColorMap : An array of colour mappings of the format [ {from : "colorId", to : "colorId"}, ... ,{...} ].

◆ setCurrentArt

void DrawingTools::setCurrentArt ( int  currentArt)
slot

Sets the current art to be one of the following : underlayArt, colourArt, lineArt or overlayArt.

◆ setCurrentDrawingFromColumnName

bool DrawingTools::setCurrentDrawingFromColumnName ( String  columnName,
int  frame = 1 
)
slot
Parameters
columnName: The name of the column to start the drawing at.
frame: The frame number to set the current drawing at.
Returns
Returns true if successful.

◆ setCurrentDrawingFromNodeName

bool DrawingTools::setCurrentDrawingFromNodeName ( String  nodeName,
int  frame = 1 
)
slot

Sets the current drawing to be from node nodeName at frame frame.

Parameters
nodeName: The name of the node to start the drawing at.
frame: The frame number to set the current drawing at.
Returns
Returns true if successful.

◆ vectorize()

QVariant DrawingTools::vectorize (   ...)

vectorize function; Can be called with a variable list of arguments.

vectorize( { node: "Top/Drawing", frame : 1 }, { node : "Top/Output", frame : 1 }, "-threshold 0.5" );
vectorize( "-file", { node: "Top/Drawing", frame : 1 }, "-outfile", { node : "Top/Output", frame : 1 }, "-threshold 0.5" );
vectorize( "-file", "full_path.png", "-outfile", "full_path.tvg", "-threshold 0.5" );
var descriptor = Drawing.Key({ elementId: 1, exposure: "12", layer : "eye");
var outputDescriptor = {node: "Top/Eye_v", frame : 12};
// It can work with all the return values of Drawing.Key();
vectorize( descriptor, outputDescriptor, "-threshold 0.5" );
// A more detailed example
function vectorizeExample()
{
{
MessageLog.trace("Please select one Element Node");
return;
}
var n = selection.selectedNode(0);
if (node.type(n) != "READ")
{
MessageLog.trace("The selected node is NOT an Element Node. " );
return;
}
var attrType = node.getTextAttr(n, 1, "lineArtDrawingMode");
if (attrType != "Bitmap")
{
MessageLog.trace("The selected node must be an Element Node with bitmap line art.");
return;
}
var destination = n + "_vect";
if (!node.getName(destination))
{
MessageLog.trace("Please make sure there is a node named " + node.getName(n) + "_vect in the same group as the selected node" );
}
var options = {
no_break : true,
thresh : 0.01,
rmv_hairs : 5
};
var optionsLine = "-no_break -thresh 0.01 -rmv_hairs 5";
scene.beginUndoRedoAccum("Vectorize drawings of " + node.getName(n) + " to " + node.getName(destination));
for(var i=1 ; i<frame.numberOf() ; ++i)
{
var keySrc = Drawing.Key({ node: n , frame : i});
var keyDst = Drawing.Key({ node: destination , frame : i});
if (keySrc.isNull || keyDst.isNull)
{
continue;
}
var r = DrawingTools.vectorize(keySrc, keyDst, options);
}
}
  • Will vectorize the drawing and create an undo command when the destination drawing is a key. It is not undoable when the destination is a file.
  • The list of options available for the vectorize method can be obtained by calling DrawingTools.vectorize.help();

    Returns
    false if it fails and true if is succeeds.

Property Documentation

◆ allArts

int DrawingTools::allArts
read

Returns the mask for all 4 art layers.

Returns
The mask for all 4 art layers.

◆ colourArt

int DrawingTools::colourArt
read

Returns the colourArt mask.

Returns
The colourArt mask.

◆ lineArt

int DrawingTools::lineArt
read

Returns the lineArt mask.

Returns
The lineArt mask.

◆ overlayArt

int DrawingTools::overlayArt
read

Returns the overlayArt mask.

Returns
The overlayArt mask.

◆ underlayArt

int DrawingTools::underlayArt
read

Returns the underlayArt mask.

Returns
The underlayArt mask.