|
@@ -87,6 +87,16 @@ int IDN_BrushSettingsEval(OurBrushSettingsNode* n){
|
|
|
n->rCustom2 = Our->CurrentBrush->Custom2;
|
|
|
return 1;
|
|
|
}
|
|
|
+void IDN_BrushSettingsCopy(OurBrushSettingsNode* new, OurBrushSettingsNode* old, int DoRematch){
|
|
|
+ if(DoRematch){ return;}
|
|
|
+ LA_IDN_OLD_DUPL(Angle) LA_IDN_OLD_DUPL(CanvasScale)
|
|
|
+ LA_IDN_OLD_DUPL(Color) LA_IDN_OLD_DUPL(Custom1)
|
|
|
+ LA_IDN_OLD_DUPL(Custom2) LA_IDN_OLD_DUPL(DabsPerSize)
|
|
|
+ LA_IDN_OLD_DUPL(Hardness) LA_IDN_OLD_DUPL(Iteration)
|
|
|
+ LA_IDN_OLD_DUPL(Size) LA_IDN_OLD_DUPL(Slender)
|
|
|
+ LA_IDN_OLD_DUPL(Smudge) LA_IDN_OLD_DUPL(SmudgeLength)
|
|
|
+ LA_IDN_OLD_DUPL(Transparency)
|
|
|
+}
|
|
|
void ui_BrushSettingsNode(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
|
laColumn* c=laFirstColumn(uil); OurBrushSettingsNode*n=This->EndInstance;
|
|
|
laUiItem* b,*u;
|
|
@@ -146,18 +156,10 @@ int IDN_BrushOutputsVisit(OurBrushOutputsNode* n, laNodeVisitInfo* vi){
|
|
|
LA_GUARD_THIS_NODE(n,vi);
|
|
|
#define BRUSH_OUT_VISIT(a) \
|
|
|
if(LA_SRC_AND_PARENT(n->a)){ laBaseNode*bn=n->a->Source->Parent; LA_VISIT_NODE(bn,vi); }
|
|
|
- BRUSH_OUT_VISIT(Offset)
|
|
|
- BRUSH_OUT_VISIT(Size)
|
|
|
- BRUSH_OUT_VISIT(Transparency)
|
|
|
- BRUSH_OUT_VISIT(Hardness)
|
|
|
- BRUSH_OUT_VISIT(Smudge)
|
|
|
- BRUSH_OUT_VISIT(SmudgeLength)
|
|
|
- BRUSH_OUT_VISIT(DabsPerSize)
|
|
|
- BRUSH_OUT_VISIT(Slender)
|
|
|
- BRUSH_OUT_VISIT(Angle)
|
|
|
- BRUSH_OUT_VISIT(Color)
|
|
|
- BRUSH_OUT_VISIT(Repeats)
|
|
|
- BRUSH_OUT_VISIT(Discard)
|
|
|
+ BRUSH_OUT_VISIT(Offset) BRUSH_OUT_VISIT(Size) BRUSH_OUT_VISIT(Transparency)
|
|
|
+ BRUSH_OUT_VISIT(Hardness) BRUSH_OUT_VISIT(Smudge) BRUSH_OUT_VISIT(SmudgeLength)
|
|
|
+ BRUSH_OUT_VISIT(DabsPerSize) BRUSH_OUT_VISIT(Slender) BRUSH_OUT_VISIT(Angle)
|
|
|
+ BRUSH_OUT_VISIT(Color) BRUSH_OUT_VISIT(Repeats) BRUSH_OUT_VISIT(Discard)
|
|
|
#undef BRUSH_OUT_VISIT
|
|
|
LA_ADD_THIS_NODE(n,vi);
|
|
|
return LA_DAG_FLAG_PERM;
|
|
@@ -191,6 +193,15 @@ int IDN_BrushOutputsEval(OurBrushOutputsNode* n){
|
|
|
#undef BRUSH_OUT_EVAL
|
|
|
return 1;
|
|
|
}
|
|
|
+void IDN_BrushOutputsCopy(OurBrushOutputsNode* new, OurBrushOutputsNode* old, int DoRematch){
|
|
|
+ if(DoRematch){
|
|
|
+ LA_IDN_NEW_LINK(Offset) LA_IDN_NEW_LINK(Size) LA_IDN_NEW_LINK(Transparency) LA_IDN_NEW_LINK(Hardness)
|
|
|
+ LA_IDN_NEW_LINK(Smudge) LA_IDN_NEW_LINK(SmudgeLength) LA_IDN_NEW_LINK(DabsPerSize) LA_IDN_NEW_LINK(Slender)
|
|
|
+ LA_IDN_NEW_LINK(Angle) LA_IDN_NEW_LINK(Color) LA_IDN_NEW_LINK(Repeats) LA_IDN_NEW_LINK(Discard)
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+}
|
|
|
void ui_BrushOutputsNode(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
|
laColumn* c=laFirstColumn(uil); OurBrushOutputsNode*n=This->EndInstance;
|
|
|
laUiItem* b,*u;
|
|
@@ -258,6 +269,12 @@ int IDN_BrushDeviceEval(OurBrushDeviceNode* n){
|
|
|
n->rLengthAccum = Our->CurrentBrush->EvalStrokeLengthAccum;
|
|
|
return 1;
|
|
|
}
|
|
|
+void IDN_BrushDeviceCopy(OurBrushDeviceNode* new, OurBrushDeviceNode* old, int DoRematch){
|
|
|
+ if(DoRematch){ return;}
|
|
|
+ LA_IDN_OLD_DUPL(Pressure) LA_IDN_OLD_DUPL(Tilt) LA_IDN_OLD_DUPL(Position)
|
|
|
+ LA_IDN_OLD_DUPL(IsEraser) LA_IDN_OLD_DUPL(Speed) LA_IDN_OLD_DUPL(Angle)
|
|
|
+ LA_IDN_OLD_DUPL(Length) LA_IDN_OLD_DUPL(LengthAccum)
|
|
|
+}
|
|
|
void ui_BrushDeviceNode(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
|
laColumn* c=laFirstColumn(uil); OurBrushDeviceNode*n=This->EndInstance;
|
|
|
laUiItem* b,*u;
|
|
@@ -284,7 +301,6 @@ int ourRebuildBrushEval(){
|
|
|
return Our->CurrentBrush?laRebuildPageEval(Our->CurrentBrush->Rack):0;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
void ourRegisterNodes(){
|
|
|
laPropContainer *pc; laProp *p;
|
|
|
laOperatorType *at;
|
|
@@ -335,9 +351,9 @@ void ourRegisterNodes(){
|
|
|
laAddSubGroup(pc,"length","Length","Length of this brush stroke","la_out_socket",0,0,0,offsetof(OurBrushDeviceNode,Length),0,0,0,0,0,0,0,LA_UDF_SINGLE);
|
|
|
laAddSubGroup(pc,"length_accum","Accumulated Length","Accumulated stroke length","la_out_socket",0,0,0,offsetof(OurBrushDeviceNode,LengthAccum),0,0,0,0,0,0,0,LA_UDF_SINGLE);
|
|
|
|
|
|
- LA_IDN_REGISTER("Brush Settings",U'🖌',OUR_IDN_BRUSH_SETTINGS,OUR_PC_IDN_BRUSH_SETTINGS, IDN_BrushSettingsInit, IDN_BrushSettingsDestroy, IDN_BrushSettingsVisit, IDN_BrushSettingsEval, OurBrushSettingsNode);
|
|
|
- LA_IDN_REGISTER("Brush Outputs",U'🖌',OUR_IDN_BRUSH_OUTPUTS,OUR_PC_IDN_BRUSH_OUTPUTS, IDN_BrushOutputsInit, IDN_BrushOutputsDestroy, IDN_BrushOutputsVisit, IDN_BrushOutputsEval, OurBrushOutputsNode);
|
|
|
- LA_IDN_REGISTER("Brush Device",U'🖳',OUR_IDN_BRUSH_DEVICE,OUR_PC_IDN_BRUSH_DEVICE, IDN_BrushDeviceInit, IDN_BrushDeviceDestroy, IDN_BrushDeviceVisit, IDN_BrushDeviceEval, OurBrushDeviceNode);
|
|
|
+ LA_IDN_REGISTER("Brush Settings",U'🖌',OUR_IDN_BRUSH_SETTINGS,OUR_PC_IDN_BRUSH_SETTINGS, IDN_BrushSettings, OurBrushSettingsNode);
|
|
|
+ LA_IDN_REGISTER("Brush Outputs",U'🖌',OUR_IDN_BRUSH_OUTPUTS,OUR_PC_IDN_BRUSH_OUTPUTS, IDN_BrushOutputs, OurBrushOutputsNode);
|
|
|
+ LA_IDN_REGISTER("Brush Device",U'🖳',OUR_IDN_BRUSH_DEVICE,OUR_PC_IDN_BRUSH_DEVICE, IDN_BrushDevice, OurBrushDeviceNode);
|
|
|
|
|
|
laNodeCategory* nc=laAddNodeCategory("Our Paint",0,LA_RACK_TYPE_DRIVER);
|
|
|
|