From Derivative
Jump to navigation Jump to search


This compares two components. It first identifies nodes that are unique to either of the two components.

Then for the nodes that exist in both components, it identifies differences in parameters, flags, input wiring, hierarchy wiring, language, tags and comments.

Also for nodes that are in both components, it checks the operator family and type, and reports if they are different.

It reports on DATs whose contents differ (Text, Table and the Execute DATs, and DATs that are locked).

PythonIcon.pngPalette:compareComp Ext


Using option "Only in Component 1" and "Only in Component 2", it shows nodes that exist in one component but not the other.

If you turn on the parameters "Flags", "Parameters" etc, it will compare the Flags, Parameters etc of nodes that are in both components, showing the differences in columns "value1" and "value2".

Turning on the parameter "Wiring" reports on the input wires of nodes including components, as well as hierarchy (bottom to top) connections of 3D object components and panel components.

"Miscellaneous" look at tags, comments and mis-matched node types.

The "Cosmetics" option checks for things that don't matter in the function of the node, like viewer state and node position in the network.

The two built-in test components illustrate the various comparisons.

The component outputs the DAT you see in the viewer.

If you turn on "Remove Unused Cols", it will make the table simpler. For example, it will not display/output column "onlyInComp2" if the parameter "Only in Component 2" is off, etc.

compareComp doesn't check everything yet - you can add what you feel is necessary within this structure. Not implemented is the contents of locked CHOPs or TOPs, and it doesn't co-relate a node that was renamed. Nonetheless, the results are illuminating.

Comparing Two .toe Files

There is no direct way of comparing two .toe files (aside from the labor-intensive toediff in the bin folder), but with a little setup, compareComp will give you good results:

Start a default empty TouchDesigner and create two Base components base1 and base2, and bring in a compareComp from the palette. Open one of your .toe files and copy/paste all the nodes in root (/) into /base1. Then do the same with the other .toe file into /base2. Then run compareComp on /base1 and /base2 or any parts within them. The fact that there will be a lot of errors doesn’t matter in doing the comparison. This will show you most, if not all differences without going through the files manually.

Parameters - Compare Page

Help Help - Opens this page.

Version Version - Current version of this component.

Build Build -

Component 1 Comp1 -

Component 2 Comp2 -

Include Top Component Includecomponent -

Minimum Depth Mindepth -

Maximum Depth Maxdepth -

Remove Unused Cols Removecols -

Only in Component 1 Componly1 -

Only in Component 2 Componly2 -

Flags Flags -

Parameters Parameters -

Wiring Wiring -

DAT Contents Datcontents -

Family and Type Familytype -

Renames Renames -

Miscellaneous Misc -

Cosmetics Cosmetics -

Operator Outputs

  • Output 0 -

TouchDesigner Build:

Palette • Palette:arcBallCamera • Palette:arcBallGeometry • Palette:audioAnalysis • Palette:audioSet • Palette:battery • Palette:blendModes • Palette:bloom • Palette:camera • Palette:cameraBrowser • Palette:camSchnappr • Palette:changeColor • Palette:changeToColor • Palette:checker • Palette:chromaKey • Palette:colorThreshold • Palette:compareComp • Palette:convolve • Palette:cornerPinSOP • Experimental:Palette:cppParsTemplateGen • Palette:customAttributes • Palette:debugControl • Palette:dent • Palette:depthExtract • Palette:dilate • Palette:equalizer • Palette:feedback • Palette:feedbackEdge • Palette:firmata • Palette:geoPanel • Palette:gestureCapture • Palette:graphPlot • Palette:histogram • Palette:hsvBlur • Palette:imageSearch • Palette:julia • Palette:kantanMapper • Palette:kinectCalibration • Palette:kinectPointcloud • Palette:leapPaint • Palette:lightTunnel • Palette:mandelbrot • Palette:mesh • Palette:monochrome • Palette:motionSense • Palette:moviePlayer • Palette:multiLevel • Palette:multiMix • Palette:noise • Palette:onScreenKeyboard • Palette:opticalFlow • Palette:particlesGpu • Palette:pixelate • Palette:pixelRelocator • Palette:pointGenerator • Palette:pointillize • Palette:pointMerge • Palette:pointRender • Palette:pointRepack • Palette:pointTransform • Palette:pointWeight • Palette:popDialog • Palette:probe • Palette:projectorBlend • Palette:pushPins • Palette:puzzle • Palette:radialBlur • Palette:remotePanel • Experimental:Palette:reproject • Palette:rgbaBlur • Palette:rgbaDelay • Palette:rgbContrast • Palette:search • Palette:searchReplace • Palette:sharpen • Palette:softenAlpha • Palette:solarize • Palette:sopRender • Experimental:Palette:splitter • Palette:stitcher • Palette:stoner • Palette:superFormula • Palette:sweetSpotPreviz • Palette:TDVR • Palette:transitMap • Palette:twirl • Palette:vectorScope • Palette:virtualFile • Experimental:Palette:virtualFileSystem • Palette:waveformMonitor • Palette:webBrowser • Experimental:Palette:webSvg • Palette:xyScope