How to add new dynamic modeler in source code?

Operating system: Ubuntu 18.04
Slicer version: self-build, Slicer 4.13.0
Expected behavior:
As 3d Slicer’s “Dynamic Modeler” module don’t supply open surface cut function by now, If I want to develop a new tool named “surface cut”.
But I found the related codes and classes(such as qSlicerDynamicModelerModuleWidget, vtkSlicerDynamicModelerPlaneCutTool, and so on) about Dynamic Modeler is in the “SurfaceToolbox” subdirectory of the SurfaceSlicer-SuperBuild-Debug.
So where should I add new class and codes in the slicer source codes, rather than in the build direcotry?

The SurfaceToolbox folder is a repository that is checked out from here: GitHub - Slicer/SlicerSurfaceToolbox: Supports various cleanup and optimization processes on surface models. If you want to add a new tool to the Slicer core, then you can contribute it there.

What functionality are you hoping to add with “surface cut”?

Thank you for reply.
Now the surface cut function in the 3d Slicer is cut the model by the closed surface model. But I have to cut the model with the open surface generated by some surface control points. So existing surface cut func in the Dynamic Modeler module does not meet my requirement.