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; } }
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; }
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; }