I have two c++ class bellow. I want get LHContactInfo property from LHSceneSubclass but I can get nothing.So How can I do with this?
#ifndef __LEVELHELPER_API_CONTACT_INFO_H__
#define __LEVELHELPER_API_CONTACT_INFO_H__
#include "LHConfig.h"
#if LH_USE_BOX2D
#include "cocos2d.h"
class b2Contact;
using namespace cocos2d;
class LHContactInfo
{
public:
LHContactInfo();
virtual ~LHContactInfo();
Node* nodeA;
Node* nodeB;
std::string nodeAShapeName;
std::string nodeBShapeName;
int nodeAShapeID;
int nodeBShapeID;
Point contactPoint;
float impulse;
b2Contact* box2dContact;
};
#endif
#endif //__LEVELHELPER_API_CONTACT_INFO_H__
#include "LHContactInfo.h"
#if LH_USE_BOX2D
#include "Box2d/Box2d.h"
LHContactInfo::LHContactInfo(){
nodeA = NULL;
nodeB = NULL;
box2dContact = NULL;
}
LHContactInfo::~LHContactInfo(){
nodeA = NULL;
nodeB = NULL;
box2dContact = NULL;
}
#endif
#ifndef __LH_SCENE_SUBCLASS_H__
#define __LH_SCENE_SUBCLASS_H__
#include "cocos2d.h"
#include "LevelHelper2API.h"
class LHContactInfo;
class LHSceneSubclass : public LHScene
{
public:
static cocos2d::Scene* createScene();
LHSceneSubclass();
virtual ~LHSceneSubclass();
bool initWithContentOfFile(const std::string& plistLevelFile);
virtual bool shouldDisableContactBetweenNodes(Node* nodeA, Node* nodeB);
virtual void didBeginContact(const LHContactInfo& contact);
virtual void didEndContact(const LHContactInfo& contact);
};
#endif // __LH_SCENE_SUBCLASS_H__
//file.cpp
void LHSceneSubclass::didBeginContact(const LHContactInfo& contact){
if(contact.nodeA->getName() == "box1"){// error invalid use of incomplete type 'const class
LHContactInfo'
}
}
void LHSceneSubclass::didEndContact(const LHContactInfo& contact){
CCLOG("DIDENDCONTACT...\n");
}
I want to do like contact.nodeA from LHContactInfo in didBeginContact function but compile error ->error invalid use of incomplete type 'const class LHContactInfo'
Note:: - Compile with android NDK 10c
The class LHContactInfo
is only declared (ie, know by name), due to your forward declaration. However, the compiler needs the class definition. You need to include the file containing the class definition.