# Allow more data types in Calculate node

Can the `Calculate`

node be changed to allow for integer arithmetic? I know the automatic type converters kick in when it's hooked up to nodes that take `Integers`

, but being able to set the type of the `Calculate`

to `Integer`

node would cause less clutter, less time selecting how to round the result, and less processing time in a loop.

Additionally, can it be changed to also allow `2`

/`3`

/`4D Points`

? In the event that a `3D Point`

is being used in a calculation, and the result is another `3D Point`

, right now three `Calculate`

nodes need to be used, one per dimension. A point could be constructed within an expression using `[these]`

brackets. A number could be used in an expression without any change, but perhaps a `2D Point`

could be written with `_XY`

as a suffix, a `3D Point`

with `_XYZ`

, etc. A dimension could be used from a point with just that dimension (instead of all dimensions) specified in the suffix.

The node could either take a single expression to calculate all dimensions in the point, or it could take an expression per dimension. Allowing for a bit of vector-style arithmetic could further open up some flexibility too, for example, by allowing adding two points, multiplying a point by a constant, multiplying dimensions (as in `X1*X2`

, `Y1*Y2`

, etc.), dot/cross products, a magnitude function (perhaps with `|this|`

syntax...

Expressions might look like this:

```
radius * [cos(theta), sin(theta)] //Point on a circle at angle theta
deltaTime * velocity_XY + location_XY //New location after applying velocity
[velocity_X, deltaTime * gravity + velocity_Y] //New velocity after applying gravity
```