Accepted: IK support in Ogre's skeletal animation

Threads related to Google Summer of Code
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66

Post by sinbad »

Then you really must have defined those method implementations twice, that's what it's telling you.
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

well.. actually i returned to a version with 1 file, all goes well, i still have empty cpp file but when i add #include "AnimationBlenderApp.h" to this cpp (AnimationBlenderApp.h is where i hold all the code) i get all those linker errors.
so "AnimationBlenderApp.h" itself = ok, cpp including it = errors. without any code changes, so it`s imposible that i defined them twice it has to be something else(linker settings or i don't know)
and by the way i do have

Code: Select all

#ifndef animationBlender_h 
#define animationBlender_h
lines at the beginning of my "AnimationBlenderApp.h" file.
any clues?
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post by Kencho »

Have you enclosed the definitions in the header file between #ifndef and #endif clauses? If not, and including the header more than once, will give you multiple definition errors.

You must use a construction like:

Code: Select all

#ifndef __MYHEADERFILE_H__
#define __MYHEADERFILE_H__
...
#endif
[Edit]
Nevermind, just read your last post.

I've just noticed the error is regarding definition, not declaration. Are you sure you're not using curly braces in the header instead of semicolons? Example of what's an empty definition (but a definition at all):

Code: Select all

class Myclass {
  public:
    void method1 () {}
};

// This goes in the cpp file -- Double definition error!
void MyClass::method1 () {
...
}
Example of how that should be:

Code: Select all

class Myclass {
  public:
    void method1 ();
};

// This goes in the cpp file
void MyClass::method1 () {
...
}
Last edited by Kencho on Thu Jul 12, 2007 6:37 pm, edited 1 time in total.
Image
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

like above:)
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Post by jacmoe »

jarek108: You need to make sure that you did add all your files to your project.
Looks like you forgot to include some implementation file (cpp) - or maybe you didn't define and initialise a static variable in one of your cpp's.

If you are having problems with circular inclusion, consider using forward declaration instead of including headers in your headers. :wink:
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4

Post by tuan kuranes »

Perhaps if you publish your code, people can try to reproduce the problem.
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post by Kencho »

and re-read my post ;) I edited it and seems you skipped that.
Image
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

Kencho wrote:and re-read my post ;) I edited it and seems you skipped that.
indeed i did. but this is not the case.
like i said, in my H file i have declarations of methods and later definitions. it works fine, no braces are a problem. if i make cpp file that includes the h file all the errors appear.
jarek108: You need to make sure that you did add all your files to your project.
they are added

Perhaps if you publish your code, people can try to reproduce the problem.
yes, i`ll do that right now, when i release my progress for today.
perhaps this is something very local because of the way my vs is setup or something or perhaps you can do something with that.
it is not really a big problem since the code is only like 1200 lines but i`d like to have some structure and all that code in one h file is just a problem for my aesthetic sense:).
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

as for today i managed to create fully functioning hierarchical tree of animated skeletons(it went faster than i expected, thanks to my mentor for keeping me motivated haha;)). i did not have time yet to make it look good will do tomorrow, but one can take any level of the tree and see the results of blending.
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post by Kencho »

jarek108 wrote:perhaps this is something very local because of the way my vs is setup or something or perhaps you can do something with that.
it is not really a big problem since the code is only like 1200 lines but i`d like to have some structure and all that code in one h file is just a problem for my aesthetic sense:).
Indeed you should separate it when possible, leaving only declarations in header files (there are exceptions, yes, but are the fewer).

Quoting tuan kuranes, post the header and implementation files HERE, and then post the returned links here. And please, post the whole files there.
Image
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

this is my main file in that system you linked:

http://rafb.net/p/oqe4ty89.html
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

this is ALL my project as it is now:

http://www.savefile.com/files/883005
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

on my computer when i uncomment
//#include "AnimationBlenderApp.h"
in AnimationBlenderApp.cpp errors i pasted apear.

as for the sytem you can see the tree working, but open robot animation only, as other meshes do not have animations that from the tree.txt file and system crashes when it tries to open them.

tomorrow till the evening i`ll try to make it not only work but also look and when this is done i`ll release the setup file again.
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

again any help with the code structure, interface or anything is appreciated. also it would be very nice if someone would have easy skeleton like robot(to make joint groups fast) with walk, run and shoot, i could build a nice presentation with that already.
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66

Post by sinbad »

The linker errors are because you're inlining global functions / variable declarations into multiple compilation units (.cpps). AnimationBlenderApp.h contains many global functions and members which if you include it in multiple cpps will define the functions many times. They need to be in a single cpp and only declared in the header. Really if you're reusing things like this you really should not be using global functions anyway, they're only really ok structurally if they are very self-contained. These are basic C++ skills we're talking about here.

Having read it I'm sorry to have to say that this is a disappointing amount and quality of work for the time you've had, especially since much of the code is copied from other sources. None of us want to see any SoC projects fail but I think it's pretty obvious to most that this is too little, too late and you seem to be out of your depth. We're trying to help but really you should be way past this stage by now.
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

the code quality is so low because i try to make things work very fast since i was informed 3 days ago the first evaluation is here so i ignore the way code looks and just tried to provide animation tree that works(as my mentor said this is crucial if i wan positive evaluation at this stage.)

did you get my mail i send to my mentor and asked to forward to to all mentors taking part in evaluation?

and i mean, what`s the point of making goggle close the project now? if there is no chance i`ll do what`s promised i`ll get negative evaluatin anyway, no one benefis if you close it now. Please i really put a lot of time and effort in that. just let me try.
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post by Kencho »

jarek108 wrote:the code quality is so low because i try to make things work very fast since i was informed 3 days ago the first evaluation is here so i ignore the way code looks and just tried to provide animation tree that works(as my mentor said this is crucial if i wan positive evaluation at this stage.)
Haven't you read the SoC FAQ? :?

Seriously, you SoC students are paid a huge amount of money for your work, so at least you should show interest in what you're doing. You should be aware of your responsibilities, the deadlines, the deliverables, planning, community involvement... For instance, only now that "you've seen the ears of the wolf" (does this expression exist in english?) you've started working on the subject. Also, the community involvement has been just posting some progress in this thread. All your planning has been some estimations and a highly unstructured and copy-pasted wiki entry...

It's important that you understand this, not only for this SoC, but your professional life. You're to be asked for responsibilities that you must accomplish. If you don't, you're not paid, that simple. Luckily, a negative evaluation here won't make you lose your job. Get it a negative evaluation or not, consider this as an important lesson you must learn for your life.
Image
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66

Post by sinbad »

jarek108 wrote:the code quality is so low because i try to make things work very fast since i was informed 3 days ago the first evaluation is here...
Well, the programme calendar was announced in March, including when the mid-term evaluation was.
did you get my mail i send to my mentor and asked to forward to to all mentors taking part in evaluation?

and i mean, what`s the point of making goggle close the project now? if there is no chance i`ll do what`s promised i`ll get negative evaluatin anyway, no one benefis if you close it now. Please i really put a lot of time and effort in that. just let me try.
Yes, we all saw the mail - and believe me this is not an easy decision by any means.

What you have to understand is that passing mid-term means making enough progress to justify us telling Google that they should pay you $2000. Passing is not automatic - it's not a case of 'making google close the project' it's a case of 'justifying to google that the project should continue'. Your mentor does not believe that is the case, and based on what we've seen neither do I or the other mentors - what appears to have happened is that you've left most of it to the last minute and therefore have made little progress. We realise you had exams, but you also knew about those before you applied to Summer of Code, and should have planned accordingly, which means hitting the ground running once you were finished.

It's horrible for all of us to have to give a negative review but I hope you can eventually understand why it's come to this. Compare your work to what the other students have delivered in that time and really ask yourself whether you made good use of the time, enough to justify being paid that amount of money. We can't review you on what you hope to produce in the future, only on what you have done.

As for giving you the chance, the chance was already given by accepting you on the Summer of Code. The mid-term is a formal review, announced well in advance. Google are very clear about what constitutes success or failure here, and passing a student based on 'hope' is highly frowned upon by them, because that money can be used on other students in the future who do plan properly, put the effort in and deliver the goods.

I'm really truly sorry that we have to be so hard here, but this is not a trifling matter or a personal project, Summer of Code is serious and involves significant monies from Google, entrusted to our judgement, that we cannot give away on a whim. Passing the mid-term has to be earned, and in this case, despite us wishing it wasn't the case, we cannot say honestly to Google that you've earned it.
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

what can i say. for sure it is a lesson.

i never worked for anyone before so i make all the possible mistakes i guess, but the fact i was stupid enough not to read all the important information(believe me i would distribute work load differently if i knew) does not mean i`m not interested.
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

wow. this is strong one for me.

is it possible not to ask google that i do not receive the money until you evaluate me again in some time later while i work really hard like recent days? this sounds like a better option since no one is interested in closing the project. perhaps it is possible to delay the evaluation in this one case? i suppose it is asking for too much but it is a crashing news for me and i thought this is a chance to make things right?
can i make a difference if i work all the time until July 16?
men that`s tough. whatever happens sorry for this situation and thak you for what i have learned to all of you.
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

it was supose to be: possible to ask google
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66

Post by sinbad »

I am glad you understand the position we're in.

The reviews are formalised & automated so have to stand from our own perspective. If you wish you can try to make an appeal to Google via email or on the student list to see if they would allow you to defer everything to the final review point instead, should you be able to deliver the entire project by that point. To be honest I kind of doubt they'll go for it though, they obviously have a lot of students to deal with and I'm not sure they would be willing to make exceptions like this, but you could ask.

Whilst it's true that we'd obviously love to see the project done itself (we would not have accepted it otherwise), that in itself isn't enough. Our honest impression is that it doesn't look very likely that your implementation will achieve the project goals in the time based on what we've seen thus far. If Google ask (and they have in the mid-term), that's the response we have to give I'm afraid.
User avatar
jarek108
Halfling
Posts: 72
Joined: Mon Mar 05, 2007 1:11 am

Post by jarek108 »

can i say that you as a project leader and also my mentor both agree to that solution, meaning to try to get more time for evaluation or to allow single payment at the end if project is completed, instead of midterm system? i guess they will not even consider it without that...
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66

Post by sinbad »

tuan can't answer here, as you know he's offline for a few days. We all as mentors signed up for the whole summer and I don't think any of us have any qualms about offering our advice over the whole summer whatever happens - even if you are dropped from the programme but decide to carry on developing anyway in your own time.

But as I said, our impression is that the project isn't working. I don't think a deferring of the mid-term of x days is going to change that impression - the shortfall is too large to make up for in a few days. Now, there's an outside chance that if you totally worked your butt off you could miraculously pull this back and fully deliver by the final deadline. But if Google asked me whether I thought that was likely, I'd have to say no at the moment, based on current information.

So put it this way - if you can convince Google to let you carry on with no payment despite failing the mid-term, our support structure will be here. But in all honesty we can't endorse your application for lenience because our confidence in this project is low, which is precisely why the mid-term came out the way it did.
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

You need to understand that the GSOC is not about the produced code only (if this were the case, then Google can pay the same ammount of money to specific programmers and have the code produced in less time)

Its about "getting into the OpenSource" process, to get a feel of how OSS works, and using this process to produce the code of your project

In OSS, you, as the main developer of your project, are the person that pushes forward your project, and with the quality and the usefulness of it, you attract more people, they start using it and cotributing to it and your project gains momentun, becoming stronger, producing better and faster results every time

You need to become familair with methods as release early - release often, community integration, promoting early code adoption

All of this is part of the mid-term evaluation, not only a functional code, and you evaluation will include your community involvement