On Aug 31, 2010, at 5:29 PM, Chris Marrin wrote:

> 
> On Aug 31, 2010, at 5:25 PM, Kenneth Russell wrote:
> 
>>>> ...Yes, I did the Google search and you're right that the term is not in 
>>>> common usage (although I still maintain it's a completely reasonable 
>>>> term). The reason I think it's meaningful is because it really is a matrix 
>>>> of sorts, but a specialized one that handles only affine transformations. 
>>>> We could call it AffineTransform, but then why not call our 4x4 matrix 
>>>> HomogeneousTransform? I'd just like to be consistent.
>>> 
>>> HomogenousTransform is fine. I would also be fond of PerspectiveProjection.
>> 
>> PerspectiveProjection is not a good name for a 4x4 matrix class. Such
>> a matrix might be used to represent an orthographic projection.
>> 
>>> I think TransformMatrix is not a good name. It immediately raises the 
>>> question, "what kind of transform". I also think Matrix does not need to be 
>>> in the name. That is to some extent an implementation detail, from the 
>>> mathematical perspective. It's more important to identify the type of 
>>> transformation.
>> 
>> I'm concerned about the route of adding a class for each kind of
>> transformation. It will lead to a proliferation of confusingly named
>> types and excess type conversion, or re-identification of the type of
>> transformation, when composing transformations. At least in the 3D
>> realm, all that is desired is one simple 4x4 matrix class. Additional
>> classes to represent e.g. 4x3 matrices add unnecessary complexity.

I don't think we need a huge number, but the 2D affine transform case is 
clearly special - it's too expensive to use a 4x4 matrix for this.

> 
> I agree. So, in order to appease Maciej :-) what if we keep AffineTransform 
> as is, and change TransformationMatrix to Matrix (or Matrix4 if Matrix is too 
> generic)?

Is HomogenousTransform an inaccurate representation of what it does?

The class has methods such as mapPoint, projectPoint, scale, rotate3d, 
applyPerspective, etc. It is clearly oriented around being some sort of 
transform, not a generic 4x4 matrix. Is it ever used to represent something 
that is not a transform at all? Would you use this class for something totally 
unrelated to transforms, for example if you wanted to solve a system of linear 
equations via gaussian elimination? My expectation is that you would not.

Regards,
Maciej

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to