@@ -7,7 +7,7 @@ import IntegratorNode from './components/nodes/IntegratorNode';
77import AdderNode from './components/nodes/AdderNode' ;
88import ScopeNode from './components/nodes/ScopeNode' ;
99import StepSourceNode from './components/nodes/StepSourceNode' ;
10- import { createFunctionNode } from './components/nodes/FunctionNode' ;
10+ import { createFunctionNode } from './components/nodes/FunctionNode' ;
1111import DefaultNode from './components/nodes/DefaultNode' ;
1212import MultiplierNode from './components/nodes/MultiplierNode' ;
1313import { Splitter2Node , Splitter3Node } from './components/nodes/Splitters' ;
@@ -60,6 +60,32 @@ export const nodeTypes = {
6060 fir : DefaultNode
6161} ;
6262
63+ export const nodeMathTypes = {
64+ sin : DefaultNode ,
65+ cos : DefaultNode ,
66+ sqrt : DefaultNode ,
67+ abs : DefaultNode ,
68+ pow : DefaultNode ,
69+ exp : DefaultNode ,
70+ log : DefaultNode ,
71+ log10 : DefaultNode ,
72+ tan : DefaultNode ,
73+ sinh : DefaultNode ,
74+ cosh : DefaultNode ,
75+ tanh : DefaultNode ,
76+ atan : DefaultNode ,
77+ norm : DefaultNode ,
78+ mod : DefaultNode ,
79+ clip : DefaultNode ,
80+ }
81+
82+ // add nodeMathTypes to nodeTypes
83+ Object . keys ( nodeMathTypes ) . forEach ( type => {
84+ if ( ! nodeTypes [ type ] ) {
85+ nodeTypes [ type ] = nodeMathTypes [ type ] ;
86+ }
87+ } ) ;
88+
6389// Node categories for better organization
6490export const nodeCategories = {
6591 'Sources' : {
@@ -71,7 +97,7 @@ export const nodeCategories = {
7197 description : 'Signal processing and transformation nodes'
7298 } ,
7399 'Math' : {
74- nodes : [ 'adder' , 'multiplier' , 'splitter2' , 'splitter3' ] ,
100+ nodes : [ 'adder' , 'multiplier' , 'splitter2' , 'splitter3' ] . concat ( Object . keys ( nodeMathTypes ) ) ,
75101 description : 'Mathematical operation nodes'
76102 } ,
77103 'Control' : {
@@ -124,8 +150,24 @@ export const getNodeDisplayName = (nodeType) => {
124150 'scope' : 'Scope' ,
125151 'spectrum' : 'Spectrum' ,
126152 'differentiator' : 'Differentiator' ,
153+ 'sin' : 'Sine' ,
154+ 'cos' : 'Cosine' ,
155+ 'sqrt' : 'Square Root' ,
156+ 'abs' : 'Absolute' ,
157+ 'pow' : 'Power' ,
158+ 'exp' : 'Exponential' ,
159+ 'log' : 'Logarithm' ,
160+ 'log10' : 'Logarithm (Base 10)' ,
161+ 'tan' : 'Tangent' ,
162+ 'sinh' : 'Hyperbolic Sine' ,
163+ 'cosh' : 'Hyperbolic Cosine' ,
164+ 'tanh' : 'Hyperbolic Tangent' ,
165+ 'atan' : 'Inverse Tangent' ,
166+ 'norm' : 'Normalization' ,
167+ 'mod' : 'Modulo' ,
168+ 'clip' : 'Clipping' ,
127169 } ;
128-
170+
129171 return displayNames [ nodeType ] || nodeType . charAt ( 0 ) . toUpperCase ( ) + nodeType . slice ( 1 ) ;
130172} ;
131173
0 commit comments