I want to make an effective useful matrix class to use for 3D transformation of points. Not it isn't intended to be used for linear systems or other uses for matrices. This said making the solution as generalized as possible (therefore leaving it open for other uses) is preferable.
My main problems are:
-How to structure the data.
-How to populate the matrix with values easily.
My question is around the population of data into the matrix.
Currently I have a std::vector of position vectors that make up the matrix. Since these vectors all have 4 components (for 3D transformations) it forces the matrix to have 4 columns. This is good for 3D transformation matrices but bad for a more generalized solution. What would be the best way of allowing custom row/column size when wanted but forcing the conditions for 3D transformations at other times. Is two classes a good option? Say the matrix class and then a class that contains a matrix but ensures it is the correct dimensions? Here is my code as it stands.