示例#1
0
shared_ptr<Entity> VisibleEntity::create 
   (const String&                           name,
    Scene*                                  scene,
    AnyTableReader&                         propertyTable,
    const ModelTable&                       modelTable,
    const Scene::LoadOptions&               options) {

        
    bool canChange = false;
    propertyTable.getIfPresent("canChange", canChange);
    // Pretend that we haven't peeked at this value
    propertyTable.setReadStatus("canChange", false);

    if ((canChange && ! options.stripDynamicVisibleEntitys) || 
        (! canChange && ! options.stripStaticVisibleEntitys)) {

        shared_ptr<VisibleEntity> visibleEntity(new VisibleEntity());
        visibleEntity->Entity::init(name, scene, propertyTable);
        visibleEntity->VisibleEntity::init(propertyTable, modelTable);
        propertyTable.verifyDone();

        return visibleEntity;
    } else {
        return nullptr;
    }
}
示例#2
0
shared_ptr<Entity> VisibleEntity::create 
   (const String&                           name,
    Scene*                                  scene,
    AnyTableReader&                         propertyTable,
    const ModelTable&                       modelTable) {

    shared_ptr<VisibleEntity> visibleEntity(new VisibleEntity());
    visibleEntity->Entity::init(name, scene, propertyTable);
    visibleEntity->VisibleEntity::init(propertyTable, modelTable);
    propertyTable.verifyDone();

    return visibleEntity;
}
示例#3
0
shared_ptr<VisibleEntity> VisibleEntity::create
   (const String&                           name,
    Scene*                                  scene,
    const shared_ptr<Model>&                model,
    const CFrame&                           frame,
    const shared_ptr<Entity::Track>&        track,
    bool                                    canChange,
    bool                                    shouldBeSaved,
    bool                                    visible,
    const Surface::ExpressiveLightScatteringProperties& expressiveLightScatteringProperties,
    const ArticulatedModel::PoseSpline&     artPoseSpline,
    const ArticulatedModel::Pose&           artPose) {

    shared_ptr<VisibleEntity> visibleEntity(new VisibleEntity());

    visibleEntity->Entity::init(name, scene, frame, track, canChange, shouldBeSaved);
    visibleEntity->VisibleEntity::init(model, visible, expressiveLightScatteringProperties, artPoseSpline, MD3Model::PoseSequence(), artPose);
     
    return visibleEntity;
}