c # – Class reserved for data, other classes that read / modify it?

I have a class that only contains data, especially collections of data, we call it * BezierSplineData:

class BezierSplineData
{
public list Checkpoints; // Checkpoints that can change the shape of the spline.
public list Points; // Real points in the 3D world that represent the spline.
}

BezierSplineControlPoint has only 3 fields:

  • Position
  • FirstTangentPosition
  • SecondTangentPosition

BezierSplinePoint only 1:

Another class called BezierSplineCalculator, it is used to calculate 3D points for a set of BezierControlPoint.

BezierSplineCalculator class
{
public BezierSplineData Data;

private voal Recalculate ()
{
// Code that will recalculate Data.Points according to Data.ControlPoints;
// Generates essentially the actual spline.
}
}

Now the BezierSplineCalculator class can have methods such as, AddControlPoint (BezierSplineControlPoint controlPoint)and other methods like RemoveControlPoint, InsertControlPoint and probably more, that would cause a recalculation of the spline.

My question is this: it is not normal that I have a separate class just for that, because I would need to refer to these data quite often, say that I need to make this BezierSpline, I would create a BezierSplineRenderer class and access the The data field of BezierSplineCalculator class.

Does it smell like a code considering the fact that these classes are related (closely I guess), should I keep the data and the calculator in a class?