DrawingTools Class Reference

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

Classes

class  vectorize
 

Public Slots

void setCurrentArt (int)
 sets the current art to be one of the following : underlayArt, colourArt, lineArt or overlayArt More...
 
bool setCurrentDrawingFromColumnName (String columnName, int frame=1)
 sets the current drawing to be from column columnName at frame frame More...
 
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 srcLayer and puts the extracted line in dstLayer using params. More...
 
void computeBreakingTriangles (DrawingToolParams *params=0)
 computes the breaking triangles of the current layer using params. More...
 
void recolorDrawing ()
 
QScriptValue getDrawingUsedColors ()
 
QScriptValue getDrawingUsedColorsWithSource ()
 
QScriptValue getMultipleDrawingsUsedColors ()
 

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
 readonly property - returns underlayArt mask More...
 
int colourArt
 readonly property - returns colourArt mask More...
 
int lineArt
 readonly property - returns lineArt mask More...
 
int overlayArt
 readonly property - returns overlayArt mask More...
 
int allArts
 readonly property - returns mask for all 4 art layers More...
 

Detailed Description

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

Member Function Documentation

◆ 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.

◆ convertPencilToBrush

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

converts the selected pencil lines in layer of the current drawing using params

◆ extractCenterline

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

extracts the centerline from srcLayer and puts the extracted line in dstLayer using params.

◆ 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 ( )
slot

Return an array containing the set of color ids used by the drawing.

◆ getDrawingUsedColorsWithSource

QScriptValue DrawingTools::getDrawingUsedColorsWithSource ( )
slot

Returns an array of objects describing the set of color ids used by the drawing along with the source of the color. 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 ( )
slot

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

◆ 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 ( )
slot

Take an array of color mappings of the format [ {from : "colorId", to : "colorId"}, ... ,{...} ] Recolor the drawing identified by a DrawingKey, built from { ElementID : id, exposure : "drawingName"}, or {node: "Qualified_name", frame : i} /params

◆ setCurrentArt

void DrawingTools::setCurrentArt ( int  )
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

sets the current drawing to be from column columnName at frame frame

◆ setCurrentDrawingFromNodeName

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

sets the current drawing to be from node nodeName at frame frame

◆ 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 = new 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 file.
  • You can get the help for vectorize by calling DrawingTools.vectorize.help();

    Returns
    false oif it fails and true if is succeeds.

Property Documentation

◆ allArts

int DrawingTools::allArts
read

readonly property - returns mask for all 4 art layers

◆ colourArt

int DrawingTools::colourArt
read

readonly property - returns colourArt mask

◆ lineArt

int DrawingTools::lineArt
read

readonly property - returns lineArt mask

◆ overlayArt

int DrawingTools::overlayArt
read

readonly property - returns overlayArt mask

◆ underlayArt

int DrawingTools::underlayArt
read

readonly property - returns underlayArt mask