これはおそらくばかげたエラーですが、それを修正しようとすると私は頭がおかしくなります。
私は構造体を持っています:
struct MarkerData
{
int pattId;
unsigned short boneId;
Ogre::Matrix4 transToBone;
Ogre::Vector3 translation;
Ogre::Quaternion orientation;
MarkerData(int p_id, unsigned short b_id, Ogre::Matrix4 trans)
{
pattId = p_id;
boneId = b_id;
transToBone = trans;
}
};
そしてクラス:
class TrackingSystem
{
public:
void addMarker(int pattId, unsigned short boneId, Ogre::Matrix4 transToBone);
private:
std::vector <MarkerData> mMarkers;
};
ここで、addMarkerメソッドで:
void TrackingSystem::addMarker(int pattId, unsigned short boneId, Ogre::Matrix4 transToBone)
{
mMarkers.push_back(MarkerData(pattId,boneId,transToBone));
}
このpush_backにより、アクセス違反が発生します。「OgreAR.exeの0x00471679で未処理の例外:0xC0000005:アクセス違反の読み取り場所0x00000018」。
テストとして、私はこれを試しました:
void TrackingSystem::addMarker(int pattId, unsigned short boneId, Ogre::Matrix4 transToBone)
{
std::vector <MarkerData> test;
test.push_back(MarkerData(pattId,boneId,transToBone));
}
これは正常に機能します。
私は何が間違っているのですか?!ありがとう!