ImageSource::ImageSource() : Processor() , outport_("image.outport", DataVec4UINT8::get(), false) , file_("imageFileName", "File name", "", "image") , imageDimension_("imageDimension_", "Dimension", ivec2(0), ivec2(0), ivec2(10000), ivec2(1), VALID, PropertySemantics("Text")) , isDeserializing_(false) { addPort(outport_); auto extensions = DataReaderFactory::getPtr()->getExtensionsForType<Layer>(); for (auto& ext : extensions) file_.addNameFilter(ext); addProperty(file_); imageDimension_.setReadOnly(true); addProperty(imageDimension_); }
CameraProperty::CameraProperty(std::string identifier, std::string displayName, vec3 eye, vec3 center, vec3 lookUp, Inport* inport, InvalidationLevel invalidationLevel, PropertySemantics semantics) : CompositeProperty(identifier, displayName, invalidationLevel, semantics) , cameraType_("cameraType", "Camera Type", []() { std::vector<OptionPropertyStringOption> options; for (auto& key : InviwoApplication::getPtr()->getCameraFactory()->getKeys()) { options.emplace_back(key, key, key); } return options; }(), 0) , lookFrom_("lookFrom", "Look from", eye, -vec3(100.0f), vec3(100.0f), vec3(0.1f), InvalidationLevel::InvalidOutput, PropertySemantics("Spherical")) , lookTo_("lookTo", "Look to", center, -vec3(100.0f), vec3(100.0f), vec3(0.1f)) , lookUp_("lookUp", "Look up", lookUp, -vec3(100.0f), vec3(100.0f), vec3(0.1f)) , aspectRatio_("aspectRatio", "Aspect Ratio", 1.0f, 0.01f, 100.0f, 0.01f) , nearPlane_("near", "Near Plane", 0.1f, 0.001f, 10.f, 0.001f) , farPlane_("far", "Far Plane", 100.0f, 1.0f, 1000.0f, 1.0f) , mouseChangeFocusPoint_("mouseChangeFocusPoint", "Change Focus Point", new MouseEvent(MouseEvent::MOUSE_BUTTON_LEFT, InteractionEvent::MODIFIER_NONE, MouseEvent::MOUSE_STATE_DOUBLE_CLICK), new Action(this, &CameraProperty::changeFocusPoint)) , adjustCameraOnDataChange_("fitToBasis_", "Adjust camera on data change", true) , camera_() , inport_(inport) , data_(nullptr) , prevDataToWorldMatrix_(0) { // Make sure that the Camera) is // in sync with the property values. cameraType_.setSelectedIdentifier("PerspectiveCamera"); cameraType_.setCurrentStateAsDefault(); addProperty(cameraType_); cameraType_.onChange([&]() { changeCamera(InviwoApplication::getPtr()->getCameraFactory()->create(cameraType_.get())); }); lookFrom_.onChange([&]() { camera_->setLookFrom(lookFrom_.get()); }); lookTo_.onChange([&]() { camera_->setLookTo(lookTo_.get()); }); lookUp_.onChange([&]() { camera_->setLookUp(lookUp_.get()); }); addProperty(lookFrom_); addProperty(lookTo_); addProperty(lookUp_); aspectRatio_.onChange([&]() { camera_->setAspectRatio(aspectRatio_.get()); }); nearPlane_.onChange([&]() { camera_->setNearPlaneDist(nearPlane_.get()); }); farPlane_.onChange([&]() { camera_->setFarPlaneDist(farPlane_.get()); }); addProperty(aspectRatio_); addProperty(nearPlane_); addProperty(farPlane_); addProperty(mouseChangeFocusPoint_); adjustCameraOnDataChange_.onChange([&]() { resetAdjustCameraToData(); }); addProperty(adjustCameraOnDataChange_); changeCamera(InviwoApplication::getPtr()->getCameraFactory()->create(cameraType_.get())); if (inport_) inport_->onChange(this, &CameraProperty::inportChanged); }