Exemplo n.º 1
0
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_);
}
Exemplo n.º 2
0
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);
}