Armature->setBody(body)函数新建的shape有没有回调函数

编辑骨骼动画的时候,可以编辑碰撞区域。
通过setBody函数创建了shape并且添加到了body上面去

这个shape会不会去碰撞检测。
如果有 回调怎么添

求大神解脱我

void Armature::setBody(cpBody *body)
{
if (_body == body)
{
return;
}

_body = body;
_body->data = this;

for (const auto& object : _children)
{
    if (Bone *bone = dynamic_cast<Bone *>(object))
    {
        auto displayList = bone->getDisplayManager()->getDecorativeDisplayList();

        for (const auto& displayObject : displayList)
        {
            auto detector = displayObject->getColliderDetector();
            if (detector != nullptr)
            {
                detector->setBody(body);
            }
        }
    }
}

}

void ColliderDetector::setBody(cpBody *pBody)
{
_body = pBody;

for(auto& object : _colliderBodyList)
{
    ColliderBody *colliderBody = (ColliderBody *)object;

    ContourData *contourData = colliderBody->getContourData();

    ssize_t num = contourData->vertexList.size();
    auto vs = contourData->vertexList;
    cpVect *verts = new cpVect;
    for (int i = 0; i < num; i++)
    {
        verts.x = vs.at(i).x;
        verts.y = vs.at(i).y;
    }

    cpShape *shape = cpPolyShapeNew(_body, (int)num, verts, cpvzero);

    shape->sensor = true;
    shape->data = _bone;

    if (_active)
    {
        cpSpaceAddShape(_body->space_private, shape);
    }

    colliderBody->setShape(shape);
    colliderBody->getColliderFilter()->updateShape(shape);

    delete ]verts;
}

}

:6::6::6::6::6::6: