Introduction

This is a little toy project I did because we had an application that
required a number of simple images described as vectors. This was the editor I
created to allow me to create and modify these simple images. The output files
can be included as resources and used by my Polygon
Drawing Class. (Actually, the polygon class is not used in this application,
because I created it before I created the polygon class).

I thought it would provide an interesting example of programming techniques,
and in any case it makes my polygon class a bit more usable.

The idea is that there is a 100 ×100 grid, with origin in the center at 0,0
and coordinates ranging ±50, and all images are drawn within this grid. They
may be scaled later. There are controls for scaling and rotating the image.

The use is fairly obvious for the most part. The standard file menu allows
you to create, save, or open vector files. The vector is stored as a vertex
list. There are two arrow keys next to the image list that allow you to
rearrange the points.

The points are editable; clicking twice (not double-clicking) on a point
makes it directly editable. The effects will be seen when you hit Enter or
select out of the item.

There are four arrows that modify the list by adding or subtracting 1 from
the x or y axis to move the image left, right, up, or down.

You can type in a new point and click the Add button, and it will be added
following the current selection (if there is no selection, it is added at the
end of the list).

Clicking the mouse in the drawing will transfer the mouse coordinates to the
input box. Double-clicking the mouse in the drawing will also perform an Add
operation. What I do is click in the approximate areas I want, then clean it up
doing hand-editing. Nothing deep, but it greatly simplified the creation of a
number of scalable "icons" for a graphical representation of moving
objects.

Selecting a point in the point list will highlight that point in the drawing
with a small red circle. The Delete button deletes the currently selected point.
File | New deletes all the points.

Here's a little submarine icon I drew in about seven minutes. It is shown
rotated 20°. Note the small red circle at the bottom that represents the
highlighted point. I turned the grid off to get a clearer image.

The views expressed in these essays are those of the author, and
in no way represent, nor are they endorsed by, Microsoft.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

Comments and Discussions

I was the one who PAID you, Newcomer, to write that very cool toy project, and because I TRUSTED YOU, I didn't ask you to sign a "Non-Disclosure Agreement". Consequently, you took my money and the work you did, and posted it on the internet without even as much as showing a scrap of decency in you, to ask if it was OK for you to post it before you did.

I didn't have you sign a NDA because I TRUSTED and RESPECTED YOU!!!! I thought you were a BETTER person than you have shown yourself to be!!!! MY MISTAKE!!!!

Huh. You should probably work this out with Joe in private. Airing your dirty laundry in public is... not very professional.

OTOH, since you've dragged the community into it, maybe you should provide the full details of your agreement with Joe, so we can all judge for ourselves. Remember that if you don't get things in writing, there's a lot of room for confusion; trust is not the only factor.

This wasn't the first time he released portion of that project to the public. He got my response in private about his action then (that was about 8 months ago). It didn't prevent him from doing it a second time.

He chose to make it public by repeating it with another portion of the project, still another time.

You're right, "TRUST" was NOT the only factor; money was involved also, and when someone is paying you to do some work, it's NOT the same as if you were doing it for free. Certain considerations goes along with that, of which one is your time that the person was paying you to use in developing the work. Confusion shouldn't be an issue because there was a very clear distinction in that you were being paid, and NOT DOING IT FOR FREE!!!!

Firstly, I do not think this is the forum for such complaints. If you have a problem take it up with the person in private, not in a public forum.

Next, what are the terms of the contract you have with the author? Does it state who owns the work? If you do not have a contract with this person that states any different, then my belief is that the copyright belongs to him, and he can do what he wants with it. If you do have a contract then check the terms of it and consider your options from there.

I must say that if this has happened to you before it would be very strange if you had not thought to include a clause regarding the ownership of any intellectual property.

Finally, this is a nice enough piece of code but I find it hard to see how this could really make a significant commercial difference to your product. Its not like its the source for Corel Draw or anything...

You speak without merit (as I expect you to do), since it was not your money that was spent. And considering you suffered no lost, your opinion along with whatever else you say, bears no relevancy to the matter.

With regards to the forum, that was not my choosing. Take that up with he who posted the work here, and so chose to make it the forum.

I speak without bias since, as you say, it was not my money. You are correct, my opinion does not have any relevance to this matter. What does have relevance are the facts, and the law.

Either this was breach of contract or it wasn't. If it was then take appropriate disciplinary/legal action. If not then you can feel free to be hurt and upset, and to feel stupid for not making sure of such things with someone who has done the same thing before.

Either way, a public forum is not the place to discuss it. If one of your sales people released some private information at a trade show would you go round the trade show telling everyone how 'X' is a bad employee and you have no respect for them? Of course you wouldn't, so why do it at the online equivalent?

Talk to the author in person, or by email, letter, whatever, air your grievances and try and sort them out. Then resolve to make sure you have a standard contract protecting your IP with anyone you hire (on a contract or permanent basis) so that it never happens again.

You are correct, "What does have relevance are the facts," and the FACT IS, that he did post work he was paid by me to do, without at least having the decency of asking first. That is the fact, as we can all see.

No. He did not do two separate set of work for me. He did one, of which he earlier released a portion of it, and for which he knew of my displeasure for having done so, because I privately communicated that to him (that was about 8, or maybe 9 months ago). This is a second repeat of another portion of the same work!!!!

With regards to "discussing" this matter, it was never my intention to "discuss" anything here. I simply stated the fact!!!!

Mindful that a "discussion" is NEVER a solo act; others must be involved for it to be a "discussion". All participants hold a share in making it so.

WREY wrote:You are correct, "What does have relevance are the facts," and the FACT IS, that he did post work he was paid by me to do, without at least having the decency of asking first. That is the fact, as we can all see.

We can't all see it. You haven't given us all the facts. What was in the contract you signed?

Joe is an extremely respected member of this community. Maybe you have a legitimate beef, but before you go taking on one of our best, you should make sure you have all of your facts together and present them to us.. not these vague accusations. (Specifically: did your contract assign copyright to you, or to Joe?)

You're almost guaranteeing that you won't be able to hire contract programmers in the future.

Your comments about the "discussion" are nonsense. These forums are set up for discussion. You started the topic. That means you initiated the discussion.

If you can't see the facts, don't blame me. It is obvious you will see JUST WHAT YOU WANT TO SEE.

You see Joseph Newcomer as "an extremely respected member" and NOTHING else. THAT IS BLIND!!!!

I was once blind too by some of those same qualities about him until I saw the other ones my blindness prevented me from seeing, and if that is bursting your bubble about him, then grow up and deal with it. I just wish it had happened to someone else and I might have gotten to know about it so as not to make the same MISTAKE!!!! If that is not part of the lesson you can draw from someone else's mistake, then you are really blind.

As far as me "almost guaranteeing" I won't be able to hire contract programmers in the future, I have two words for you, "GET REAL!!!!"

Actually it's a pity that Joseph did not reply anything. Maybe he did this for very good reasons, maybe he did it for fame, but he should say a word to the community.

Actually, with or without contract, when you code something for someone then (unless the contract says otherwise) I believe that the code you wrote is not your code. Even if it is not the case, it's really unfair to send the code onto the internet without the permission of the client.

I'm currenlty working for big clients (*really* big clients) and I cannot imagine that I have the [legal] possibility to distribute my source code even without signing a NDA. And trust me, there are some really cool stuff.

It's not that I didn't know better, for someone like him I felt that asking to sign a NDA would be an INSULT TO HIS INTEGRITY. That's how much I TRUSTED and RESPECTED him.

This was not somebody I had known casually. This was someone whom I had known for YEARS, met with in different places, had over a dozen lunches and suppers together with, and many hours of "face to face" conversations (stimulating and challenging ones with the very sharp mind he has). We exchanged hundreds of emails over the years, and I grew to respect, honor, and trust him. This was someone whom I felt I could turn my back towards and still be safe. How much more could I be wrong!!!!

If you are being paid for a code, It is not your code and you can not post it. Moral duties should come first before written contracts. I thought this code was something the auther did on his own to facilitate his work in the project and not an actual project assigned to him . If this was the case, he can posted it as long as it does not reveal his company profile or any sercets.

I think most of the posts here are something that we do on our own for our projects. So i have not looked at this code yet. But anyways if it's being paid for, it ought to be removed from here. And it is of course wrong to post anything even if you were paid 5% for that work. The work posted here should be totally of the auther work and unpaid.