Something like M[1,3] = 10 would be pretty interesting, and from my knowledge of the compiler, it actually shouldent be that hard to implement (see writing/reading savefiles, it has its own opcode and its own parsing rules)
A comma within brackets would be ugly to parse and implement; the language currently has nothing like it. I could quite possibly work out how to index into a matrix datum with a single index, but I don't see it being very practical.
I should probably request this feature in a separate post, but it's somewhat related, so I'll just post it here. I'm sure it wouldn't be hard to add a vector datum, so why not implement it? I can do it myself, and I'm sure others can also, but usually some vector object of some sort is generally provided natively in some engines.
Does transform work as I'd expect with overlays/underlays? (I'd expect everything would transform along with the base object, and maybe each individual overlay could have its own relative transform)

Where's the origin, relative to an atom? Bottom-left or icon center? I'd prefer center, but there may be reasons to use bottom-left.

Are HUD objects affected by their transform?

I'm guessing I'll have to multiply the matrix with a vector myself if I want to use the transformations outside of atom.transform. Or maybe, there could be a native vector object that can be multiplied by a matrix, as well as have other useful vector functions.

Is there any kind of (optional, if any) anti-aliasing involved? In the past, I could anti-aliasing in my rotated icons by scaling up before the turn and scaling back down afterwards.
//  e.g.
i.Scale(64, 64)
i.Turn(angle)
i.Scale(32, 32)
In response to Kaiochao
Kaiochao wrote:
Does transform work as I'd expect with overlays/underlays? (I'd expect everything would transform along with the base object, and maybe each individual overlay could have its own relative transform)

That's in my to-test list, but yes.

Where's the origin, relative to an atom? Bottom-left or icon center? I'd prefer center, but there may be reasons to use bottom-left.

Icon center.

Are HUD objects affected by their transform?

Also in my to-test list, but also yes. They use the same routine to grab their icon display info that other objs and mobs do so this should already be in place.

I'm guessing I'll have to multiply the matrix with a vector myself if I want to use the transformations outside of atom.transform. Or maybe, there could be a native vector object that can be multiplied by a matrix, as well as have other useful vector functions.

I don't see a whole lot of point in a native 2D vector, and a 3D one would require a whole different kind of matrix.

Is there any kind of (optional, if any) anti-aliasing involved? In the past, I could anti-aliasing in my rotated icons by scaling up before the turn and scaling back down afterwards.
//  e.g.
> i.Scale(64, 64)
> i.Turn(angle)
> i.Scale(32, 32)

Any antialiasing will be at the mercy of the video driver. Right now I'm looking into switching everything over to OpenGL, mostly so I don't have to maintain multiple display setups. Also because OpenGL opens up more potential features.

In our current code, with either DirectX or GDI, DirectX will antialias but GDI not so much.
In response to Lummox JR
Good update.

Lummox JR wrote:
I was wondering about that myself. DirectX uses something similar, an _ij var such as _11, _21, _31, etc. I'm not sure what users would find most intuitive. There's still time for the a-f notation to be changed so I'm way open to suggestions.
_ij (e.g. _11, _12) is ugly, but it makes a lot of sense. If you have a matrix called a it would become a._11, a._12, which is the go-to notation for matrix entries, really.
In response to Toadfish
I'm not sure what you mean; the matrices definitely have a third row. It's the third column that's irrelevant.
I've been off today. I was under the impression the plan was setting it up as

a b c
d e f
0 0 1

but forgot it ended up being changed.
Is there any possibility of integrating a 2D physics engine like Box2D? There aren't any feature requests that include the word "physics" and there aren't any topics that include the word "box2d", so I just wanted to know if it's even remotely doable at this point, before starting a new topic or something. Lots of 2D things use Box2D, and even Unity is using it for its upcoming 2D development mode.
In response to Kaiochao
I think linking in Box2D would be overkill. Just setting up the soft code to interact with it in a meaningful way would be a big project, and only a handful of games would want to use it at all.

For the sake of following up on the var name discussion, I'm not in love with the _[r][c] approach (e.g., _31), so I'm planning to stick with a-f unless any better suggestions come in shortly.
Lummox JR resolved issue with message:
The new atom.transform var lets you scale and rotate icons easily. A new datum, /matrix, can be used to work with transformations.
Page: 1 2