Finale PDK Framework 0.77
Power Up Your Finale Music Software
Loading...
Searching...
No Matches
FCShapeDefInstruction Class Reference

Helper class for FCShapeDef. More...

#include <ff_other.h>

+ Inheritance diagram for FCShapeDefInstruction:

Public Types

enum  SHAPEDEFTAGS {
  SHAPETAG_SETFONT = st_setfont , SHAPETAG_STARTOBJECT = st_startobject , SHAPETAG_STARTGROUP = st_startgroup , SHAPETAG_ENDGROUP = st_endgroup ,
  SHAPETAG_DRAWCHAR = st_drawchar , SHAPETAG_STROKE = st_stroke , SHAPETAG_RMOVETO = st_rmoveto , SHAPETAG_LINEWIDTH = st_linewidth ,
  SHAPETAG_SETDASH = st_setdash , SHAPETAG_LINETO = st_rlineto , SHAPETAG_SETGRAY = st_setgray , SHAPETAG_ELLIPSE = st_ellipse ,
  SHAPETAG_FILLSOLID = st_fillsolid , SHAPETAG_CURVETO = st_curveto , SHAPETAG_SLUR = st_slur , SHAPETAG_RECTANGLE = st_rectangle ,
  SHAPETAG_CLOSEPATH = st_closepath , SHAPETAG_BRACKET = st_bracket , SHAPETAG_NULL = st_null
}
 The instruction tag constants that can be returned from the GetTag method. More...
 
- Public Types inherited from __FCBase
enum  PDKFRAMEWORK_CLASSID {
  FCID_UNKNOWN = 0 , FCID_ACCIDENTALMOD , FCID_ACTIVELYRIC , FCID_ALLOTMENT ,
  FCID_ARTICULATION , FCID_ARTICULATIONDEF , FCID_BACKWARDREPEAT , FCID_BASELINE ,
  FCID_BEAMMOD , FCID_BEATCHARTELEMENT , FCID_BOOKMARK , FCID_BROKENBEAMMOD ,
  FCID_CATEGORYDEF , FCID_CELLCLEFCHANGE , FCID_CELLFRAMEHOLD , FCID_CELLGRAPHIC ,
  FCID_CELLTEXT , FCID_CENTERSMARTSHAPE , FCID_CHORD , FCID_CHORDPREFS ,
  FCID_CHORDSUFFIXELEMENT , FCID_CHORUSSYLLABLE , FCID_CLEFDEF , FCID_COMPOSITETIMESIGBOTTOMELEMENT ,
  FCID_COMPOSITETIMESIGTOPELEMENT , FCID_CROSSSTAFFMOD , FCID_CUSTOMSMARTLINEDEF , FCID_CUSTOMSTEMMOD ,
  FCID_DISTANCEPREFS , FCID_DOTMOD , FCID_ENCLOSURE , FCID_ENDINGREPEAT ,
  FCID_ENIGMATEXTSTYLE , FCID_ENTRYALTERMOD , FCID_EXECUTABLESHAPEDEF , FCID_EXPRESSION ,
  FCID_FONTINFO , FCID_FONTPREFS , FCID_FREEZESYSTEM , FCID_FRETBOARDSTYLEDEF ,
  FCID_FRETBOARDSTYLEDEFS , FCID_FRETBOARDGROUPDEF , FCID_FRETBOARDGROUPDEFS , FCID_FRETINSTRUMENTDEF ,
  FCID_GENERALPREFS , FCID_GRIDSGUIDESPREFS , FCID_GROUP , FCID_GROUPNAMEPOSITIONPREFS ,
  FCID_HUMANPLAYBACKPREFS , FCID_INDEPENDENTCELLDETAIL , FCID_INSTRUMENTDEF , FCID_INSTRUMENTPLAYBACKDATA ,
  FCID_KEYMODEDEF , FCID_KEYSIGNATURE , FCID_LAYERPREFS , FCID_LYRICSBASELINE ,
  FCID_LYRICSPREFS , FCID_MEASURE , FCID_MEASURENUMBERREGION , FCID_METATOOLASSIGNMENT ,
  FCID_MIDIEXPRESSION , FCID_MISCDOCPREFS , FCID_MULTIMEASUREREST , FCID_MULTIMEASURERESTPREFS ,
  FCID_MULTISTAFFINSTRUMENT , FCID_MULTISTAFFINSTRUMENTS , FCID_MUSICCHARACTERPREFS , FCID_MUSICSPACINGPREFS ,
  FCID_NUMBER , FCID_NOTEHEADMOD , FCID_OTHERINCI , FCID_PERCUSSIONLAYOUTNOTE ,
  FCID_PERCUSSIONSTAFF , FCID_PERFORMANCEMOD , FCID_PAGE , FCID_PAGEFORMATPREFS ,
  FCID_PAGEGRAPHIC , FCID_PAGETEXT , FCID_PART , FCID_PARTEXTRACTPREFS ,
  FCID_PARTSCOPEPREFS , FCID_PARTSTAFFVOICING , FCID_PERCUSSIONNOTEMOD , FCID_PIANOBRACEPREFS ,
  FCID_PLAYBACKPREFS , FCID_RAWTEXT , FCID_REPEATPREFS , FCID_SECONDARYBEAMBREAKMOD ,
  FCID_BEAMEXTENSIONMOD , FCID_SECTIONSYLLABLE , FCID_SEPARATEMEASURENUMBER , FCID_SEPARATEPLACEMENT ,
  FCID_SHAPEDEF , FCID_SHAPEEXPRESSIONDEF , FCID_SLURCONTOURPREFS , FCID_SIZEPREFS ,
  FCID_SMARTSHAPE , FCID_SMARTSHAPEENTRYMARK , FCID_SMARTSHAPEMEASUREMARK , FCID_SMARTSHAPEPREFS ,
  FCID_STAFF , FCID_STAFFLIST , FCID_STAFFNAMEPOSITION , FCID_STAFFNAMEPOSITIONPREFS ,
  FCID_STAFFSTYLEASSIGN , FCID_STAFFSTYLEDEF , FCID_STAFFSYSTEM , FCID_STEMCONNECTIONTABLE ,
  FCID_STEMMOD , FCID_STRING , FCID_SYLLABLEENTRYMOD , FCID_SYSTEMSTAFF ,
  FCID_TABLATURENOTEMOD , FCID_TEMPOELEMENT , FCID_TEXTBLOCK , FCID_TEXTEXPRESSIONDEF ,
  FCID_TEXTREPEAT , FCID_TEXTREPEATDEF , FCID_TIEMOD , FCID_TIEPREFS ,
  FCID_TIECONTOURPREFS , FCID_TIEPLACEMENTPREFS , FCID_TIMESIGNATURE , FCID_TUPLET ,
  FCID_TUPLETPREFS , FCID_VERSESYLLABLE
}
 Constants for the GetClassID method. More...
 
enum  MEASUREMENTUNITS {
  MEASUREMENTUNIT_DEFAULT = UNIT_DEFAULT , MEASUREMENTUNIT_EVPUS = UNIT_EVPUS , MEASUREMENTUNIT_INCHES = UNIT_INCHES , MEASUREMENTUNIT_CENTIMETERS = UNIT_CENTS ,
  MEASUREMENTUNIT_POINTS = UNIT_POINTS , MEASUREMENTUNIT_PICAS = UNIT_PICAS , MEASUREMENTUNIT_SPACES = UNIT_SPACES , MEASUREMENTUNIT_MILLIMETERS = 100
}
 Constants for Finale's standard measurement units. More...
 

Public Member Functions

 FCShapeDefInstruction (ETAG tag, int instructionsize, void *pPathData)
 The constructor for existing data.
 
const char * ClassName () const override
 Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class.
 
void _SetMemory (EDTPathInst *pPathInstruction, void *pPathData, int offset)
 For internal use only.
 
virtual ~FCShapeDefInstruction ()
 The destructor.
 
int GetCount () const
 Returns the number of parameter elements in the instruction.
 
ETAG GetTag () const
 Returns the instruction tag as a constant.
 
bool IsIdentical (const __FCBase *pTestObject) const override
 Returns true if the shape def instructions are identical.
 
const char * GetTagAsString () const
 Returns the instruction tag as a human-readable C-type string, such as "startobject", "null", etc.
 
fourbyte GetFourbyteData (int index) const
 Returns the fourbyte data contained at the 0-based index position.
 
bool SetFourbyteData (int index, fourbyte fbvalue)
 Sets the fourbyte data contained at the 0-based index position.
 
double GetFloatData (int index)
 Returns the floating point data contained at the 0-based index position.
 
void Init_StartObject (int xorigin, int yorigin, int left, int top, int right, int bottom, int xtransform=1000, int ytransform=1000, int rotation=0)
 Creates a st_startobject shape instruction.
 
void Init_StartGroup (int xorigin, int yorigin, int left, int top, int right, int bottom, int xtransform=1000, int ytransform=1000, int rotation=0)
 Creates a st_startgroup shape instruction.
 
void Init_EndGroup ()
 Creates a st_endgroup shape instruction.
 
void Init_RMoveTo (int x, int y)
 Creates a st_rmoveto shape instruction.
 
void Init_CurveTo (int x1, int y1, int x2, int y2, int endpt_x, int endpt_y)
 Creates a st_curveto shape instruction.
 
void Init_Slur (int x1, int y1, int x2, int y2, int endpt_x, int endpt_y)
 Creates a st_slur shape instruction.
 
void Init_LineWidth (int linewidth)
 Creates a st_linewidth shape instruction.
 
void Init_SetGrey (int greyvalue)
 Sets the grey percent (0-100).
 
void Init_FillSolid ()
 Inits a FillSolid instruction, which fills the path.
 
void Init_ClosePath ()
 Inits a ClosePath instruction.
 
void Init_Ellipse (int width, int height)
 Inits a Ellipse instruction.
 
void Init_Rectangle (int width, int height)
 Inits a Rectangle instruction.
 
void Init_DrawChar (eUniChar16 character)
 Creates a st_drawchar shape instruction.
 
void Init_SetFont (FCFontInfo *pFontInfo)
 Creates a st_setfont shape instruction.
 
void Init_SetDash (int dashlength, int spacebetween)
 Creates a st_setdash shape instruction.
 
void Init_RLineTo (int x, int y)
 Creates a st_rlineto shape instruction.
 
void Init_Bracket (int brackettype)
 Creates a bracket shape instruction.
 
void Init_Stroke ()
 Creates a st_stroke shape instruction.
 
void Init_Null ()
 Creates a NULL shape instruction.
 
void DebugDump () override
 Outputs the class data/information for debugging purposes.
 
- Public Member Functions inherited from __FCBase
virtual const PDKFRAMEWORK_CLASSID GetClassID () const
 Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has problems to resolve the true classes of inherited objects.
 
virtual ~__FCBase ()
 Virtual destructor, so all inherited classes get the virtual destructor.
 
void DebugMsgInt (const char *pszPrefixText, int i)
 Creates a simple Message Box for debug purposes. The text appears with the extra digit (in decimal presentation) appearing afterwards.
 
void DebugMsgHex (const char *pszPrefixText, int i)
 Creates a simple Message Box for debug purposes. The text appears with the extra digit (as a hexadecimal number) appearing afterwards.
 
void DebugMsgString (const char *pszPrefixText, const char *thestring)
 Creates a simple Message Box for debug purposes. The text appears with the extra string appearing afterwards.
 
void DebugMsg (const char *pszMsg)
 Creates a simple Message Box for debug purposes with just one text string.
 
void DebugOutMenuInfo (FCUI *pUI, int menuixd_horiz, int menuixd_vert) const
 Outputs the menu command info for debugging purposes.
 
int DebugOutFormat (const char *fmt,...)
 Outputs debug text using C style "printf" syntax.
 
virtual void DebugDataDump ()
 Outputs a memory dump of the data block in the object for debugging purposes.
 
virtual void DebugDataByteArrayDump ()
 Outputs a memory dump of the data block in the object for debugging purposes, as a C++ byte array.
 
void Set16BitFlag (FLAG_16 *flag, FLAG_16 flagbits, bool state)
 Sets a 16 bit flag.
 
void Set32BitFlag (FLAG_32 *flag, FLAG_32 flagbits, bool state)
 Sets/resets a 32 bit flag, by using a bit mask.
 
bool GetBitFlag (FLAG_32 flag, FLAG_32 flagbits) const
 Gets a state from flag bits. Returns true if any bit in the mask is set.
 
int GetBitCount (FLAG_32 flag)
 Returns the total number of set bits in a 32-bit unsigned int.
 
void SetSpecific32Bit (FLAG_32 *flag, int bitnumber, bool state)
 Sets/resets a single bit in a 32 bit flag, by specifying one specific bit.
 
void SetUserData (void *pData)
 Sets the user data attached to the instance of an object.
 
void SetUserData2 (void *pData)
 Sets the additional user data attached to the instance of an object.
 
void * GetUserData () const
 Gets the user data attached to the instance of an object.
 
void * GetUserData2 () const
 Gets the additional user data attached to the instance of an object.
 
void StoreXML_String (tinyxml2::XMLElement *pParentNode, const char *pszElementName, FCString *pStringValue)
 Helper function to store FCString objects in the XML file.
 
void StoreXML_Integer (tinyxml2::XMLElement *pParentNode, const char *pszElementName, int value)
 Helper function to store integer objects in the XML file.
 
void StoreXML_Bool (tinyxml2::XMLElement *pParentNode, const char *pszElementName, bool value)
 Helper function to store boolean objects in the XML file.
 
void StoreXML_StringAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, FCString *pStringValue)
 Helper function to store FCString objects in the XML file, as an attribute to a node.
 
void StoreXML_IntegerAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, int value)
 Helper function to store integer objects in the XML file, as an attribute to a node.
 
void StoreXML_BoolAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, bool value)
 Helper function to store boolean objects in the XML file, as an attribute to a node.
 
void StoreXML_FloatAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, float value)
 Helper function to store floating point objects in the XML file, as an attribute to a node.
 
virtual void StoreToXML (tinyxml2::XMLElement *pParentNode)
 Virtual method that is used to store an object's data.
 
bool ReadXML_String (tinyxml2::XMLElement *pParentNode, const char *pszElementName, FCString *pStringValue)
 Helper method to read FCString objects from the XML file.
 
bool ReadXML_Integer (tinyxml2::XMLElement *pParentNode, const char *pszElementName, int *pValue)
 Helper method to read integer objects from the XML file.
 
bool ReadXML_Bool (tinyxml2::XMLElement *pParentNode, const char *pszElementName, bool *pValue)
 Helper method to read boolean objects from the XML file.
 
bool ReadXML_StringAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, FCString *pStringValue)
 Helper method to read FCString objects from the XML file, as an attribute to a node.
 
bool ReadXML_IntegerAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, int *pValue)
 Helper method to read integer objects from the XML file, as an attribute to a node.
 
bool ReadXML_BoolAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, bool *pValue)
 Helper method to read boolean objects from the XML file, as an attribute to a node.
 
bool ReadXML_FloatAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, float *pValue)
 Helper method to read floating point objects from the XML file, as an attribute to a node.
 
virtual bool ReadFromXML (tinyxml2::XMLElement *pParentNode)
 Virtual method that is used to read object data.
 

Additional Inherited Members

- Static Public Member Functions inherited from __FCBase
static void DebugOutPtr (const char *pszPrefixText, void *ptr)
 Static method that outputs a line for debugging purposes. The prefix text appears with the extra ptr (in hexadeximal representation) appearing afterwards.
 
static void DebugOutInt (const char *pszPrefixText, int i)
 Static method that outputs a line for debugging purposes. The text appears with the extra digit (in decimal presentation) appearing afterwards.
 
static void DebugOutFloat (const char *pszPrefixText, double f)
 Static method that outputs a line for debugging purposes. The text appears with the extra float value appearing afterwards.
 
static void DebugOutTag (const char *pszPrefixText, EXTAG extag)
 Static method that outputs a line for debugging purposes. The text appears with the EXTAG (in text) appearing afterwards.
 
static void DebugOutHex (const char *pszPrefixText, int i)
 Static method that outputs a line for debugging purposes. The text appears with the extra digit (in hexadecimal presentation) appearing afterwards.
 
static void DebugOutBin (const char *pszPrefixText, int i)
 Static method that outputs a line for debugging purposes. The text appears with the extra digit (in binary presentation) appearing afterwards.
 
static void DebugOutString (const char *pszPrefixText, const char *thestring)
 Static method that outputs a line for debugging purposes (C string version). The text appears with the extra string appearing afterwards.
 
static void DebugOutString (const char *pszPrefixText, FCString *pString)
 Static method that outputs a line for debugging purposes (FCString version). The text appears with the extra string appearing afterwards.
 
static void DebugOutBool (const char *pszPrefixText, bool state)
 Static method that outputs a line for debugging purposes. The boolean state appears afterwards as either "TRUE" or "FALSE".
 
static void DebugOutBlock (const void *pBuffer, int startoffset, int size)
 Static method that outputs a memory block for debugging purposes. Eight bytes per line will appear (as hex digits) until the whole memory block is dumped.
 
static void DebugOutByteArrayBlock (const void *pBuffer, int startoffset, int size)
 Static method that outputs a memory block for debugging purposes. Eight bytes per line will appear (as hex digits) as a C++ onebyte array, until the whole memory block is dumped.
 
static void DebugOut (const char *pszLine)
 Static method to output a line of text for debugging purposes.
 
- Protected Member Functions inherited from __FCBase
 __FCBase ()
 The constructor.
 

Detailed Description

Helper class for FCShapeDef.

Each element of this class are collected in a FCShapeDefInstructions class object, which defines all instructions for a shape.

Member Enumeration Documentation

◆ SHAPEDEFTAGS

The instruction tag constants that can be returned from the GetTag method.

Lua-supported.

Enumerator
SHAPETAG_SETFONT 

"Set font" instruction tag

SHAPETAG_STARTOBJECT 

"Start object" instruction tag

SHAPETAG_STARTGROUP 

"Start group" instruction tag

SHAPETAG_ENDGROUP 

"End group" instruction tag

SHAPETAG_DRAWCHAR 

"Draw char" instruction tag

SHAPETAG_STROKE 

"Stroke" instruction tag

SHAPETAG_RMOVETO 

"Relative move to" instruction tag

SHAPETAG_LINEWIDTH 

"Line width" instruction tag

SHAPETAG_SETDASH 

"Set dash" instruction tag

SHAPETAG_LINETO 

"Line to" instruction tag

SHAPETAG_SETGRAY 

"Set gray" instruction tag

SHAPETAG_ELLIPSE 

"Ellipse" instruction tag

SHAPETAG_FILLSOLID 

"Fill solid" instruction tag

SHAPETAG_CURVETO 

"Curve to" instruction tag

SHAPETAG_SLUR 

"Slur" instruction tag

SHAPETAG_RECTANGLE 

"Rectangle" instruction tag

SHAPETAG_CLOSEPATH 

"Close path" instruction tag

SHAPETAG_BRACKET 

"Bracket" instruction tag

SHAPETAG_NULL 

"null" instruction tag

Member Function Documentation

◆ _SetMemory()

void FCShapeDefInstruction::_SetMemory ( EDTPathInst * pPathInstruction,
void * pPathData,
int offset )

For internal use only.

Fills the supplied data blocks and arrays with the correct data from the object.

NOTE!!! The PDK docs are unclear here: EDTPathInst:dataOff is the "offset" measured in the number of data items since the start. So, the first instructions will always have dataOff=0, and if that instruction has 2 data items, the next instruction will have the dataOff=2.

pPathData is an array.

◆ ClassName()

const char * FCShapeDefInstruction::ClassName ( ) const
inlineoverridevirtual

Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class.

Lua-supported.

Implements __FCBase.

◆ DebugDump()

void FCShapeDefInstruction::DebugDump ( )
inlineoverridevirtual

Outputs the class data/information for debugging purposes.

Accessible if PDK_FRAMEWORK_DEBUG is defined.

When child class inherit this method to output the contents of its own members, it should call the parent before providing its own output.

Reimplemented from __FCBase.

◆ GetCount()

int FCShapeDefInstruction::GetCount ( ) const
inline

Returns the number of parameter elements in the instruction.

Lua-supported (also as read-only property).

◆ GetFloatData()

double FCShapeDefInstruction::GetFloatData ( int index)

Returns the floating point data contained at the 0-based index position.

Lua-supported.

Returns
Returns -1 on index errors.

◆ GetFourbyteData()

fourbyte FCShapeDefInstruction::GetFourbyteData ( int index) const

Returns the fourbyte data contained at the 0-based index position.

Lua-supported.

Returns
Returns -1 on index errors.

◆ GetTag()

ETAG FCShapeDefInstruction::GetTag ( ) const
inline

Returns the instruction tag as a constant.

Lua-supported (also as read-only property).

Returns
Any of the SHAPETAG_* constants.

◆ GetTagAsString()

const char * FCShapeDefInstruction::GetTagAsString ( ) const
inline

Returns the instruction tag as a human-readable C-type string, such as "startobject", "null", etc.

Lua-supported (also as a read-only property).

◆ Init_DrawChar()

void FCShapeDefInstruction::Init_DrawChar ( eUniChar16 character)
inline

Creates a st_drawchar shape instruction.

Parameters
characterThe character to draw.

◆ Init_Ellipse()

void FCShapeDefInstruction::Init_Ellipse ( int width,
int height )
inline

Inits a Ellipse instruction.

Parameters
widthWidth of bounding rectangle, current point is lower left corner.
heightHeight of bounding rectangle, current point is lower left corner.

◆ Init_LineWidth()

void FCShapeDefInstruction::Init_LineWidth ( int linewidth)
inline

Creates a st_linewidth shape instruction.

Parameters
linewidthLine with in EFIX.

◆ Init_Rectangle()

void FCShapeDefInstruction::Init_Rectangle ( int width,
int height )
inline

Inits a Rectangle instruction.

Parameters
widthWidth of rectangle, current point is lower left corner.
heightHeight of rectangle, current point is lower left corner

◆ Init_SetFont()

void FCShapeDefInstruction::Init_SetFont ( FCFontInfo * pFontInfo)
inline

Creates a st_setfont shape instruction.

Parameters
pFontInfoPointer to the font info.

◆ Init_SetGrey()

void FCShapeDefInstruction::Init_SetGrey ( int greyvalue)
inline

Sets the grey percent (0-100).

Parameters
greyvalueGrey value between 0 and 100, where 0=black,100=white

◆ Init_StartGroup()

void FCShapeDefInstruction::Init_StartGroup ( int xorigin,
int yorigin,
int left,
int top,
int right,
int bottom,
int xtransform = 1000,
int ytransform = 1000,
int rotation = 0 )
inline

Creates a st_startgroup shape instruction.

Same parameters as Init_StartObject

◆ Init_StartObject()

void FCShapeDefInstruction::Init_StartObject ( int xorigin,
int yorigin,
int left,
int top,
int right,
int bottom,
int xtransform = 1000,
int ytransform = 1000,
int rotation = 0 )
inline

Creates a st_startobject shape instruction.

Parameters
xoriginThe horizontal origin for the object.
yoriginThe vertical origin for the object.
leftThe left-most position of the object.
topThe top-most position of the object.
rightThe right-most position of the object.
bottomThe bottom-most position of the object.
xtransformThe horizontal stretch value. For Shape Designer shapes, this is typically set to 1000.
ytransformThe vertical stretch value. For Shape Designer shapes, this is typically set to 1000.
rotation(It seems like 90 degrees equals 1024.)

◆ IsIdentical()

bool FCShapeDefInstruction::IsIdentical ( const __FCBase * pTestObject) const
inlineoverridevirtual

Returns true if the shape def instructions are identical.

Reimplemented from __FCBase.

◆ SetFourbyteData()

bool FCShapeDefInstruction::SetFourbyteData ( int index,
fourbyte fbvalue )
inline

Sets the fourbyte data contained at the 0-based index position.

The index is dependent on the tag command, so this is a very low-level method. Use it with care!

Lua-supported.

Parameters
indexThe 0-based index to change in the shape instruction.
fbvalueThe new value.
Returns
False on index range errors.