Skip to content
Snippets Groups Projects
Commit cbb4f55e authored by Ali Can Demiralp's avatar Ali Can Demiralp
Browse files

Geometry and volume are optional.

parent 9675f287
No related branches found
No related tags found
No related merge requests found
...@@ -40,7 +40,9 @@ struct settings ...@@ -40,7 +40,9 @@ struct settings
if (iteratee.isMember("volume" )) entry.volume = iteratee["volume" ].asString(); if (iteratee.isMember("volume" )) entry.volume = iteratee["volume" ].asString();
} }
if (root.isMember("transfer_function"))
transfer_function = root["transfer_function"] .asString(); transfer_function = root["transfer_function"] .asString();
time_scale = root["time_scale" ] .asFloat (); time_scale = root["time_scale" ] .asFloat ();
loop = root["loop" ] .asBool (); loop = root["loop" ] .asBool ();
image_size = {root["image_size" ][0].asUInt (), image_size = {root["image_size" ][0].asUInt (),
...@@ -74,7 +76,7 @@ struct settings ...@@ -74,7 +76,7 @@ struct settings
// Input settings. // Input settings.
std::vector<data_filepath> data_filepaths = {}; std::vector<data_filepath> data_filepaths = {};
std::string transfer_function = ""; std::string transfer_function = std::string();
float time_scale = 1000.0f; float time_scale = 1000.0f;
bool loop = true; bool loop = true;
......
...@@ -26,7 +26,6 @@ std::int32_t main(std::int32_t argc, char** argv) ...@@ -26,7 +26,6 @@ std::int32_t main(std::int32_t argc, char** argv)
{ {
std::cout << "Parsing settings.\n"; std::cout << "Parsing settings.\n";
auto settings = rt::settings(argv[1]); auto settings = rt::settings(argv[1]);
auto transfer_function = rt::transfer_function(settings.transfer_function);
std::cout << "Setting up renderer.\n"; std::cout << "Setting up renderer.\n";
auto renderer = vtkSmartPointer<vtkRenderer> ::New(); auto renderer = vtkSmartPointer<vtkRenderer> ::New();
...@@ -52,17 +51,26 @@ std::int32_t main(std::int32_t argc, char** argv) ...@@ -52,17 +51,26 @@ std::int32_t main(std::int32_t argc, char** argv)
interpolator->AddCamera (key_frame.time, camera); interpolator->AddCamera (key_frame.time, camera);
} }
std::cout << "Setting up actors and volumes.\n"; std::cout << "Setting up geometry.\n";
auto pd_mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); auto pd_mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
auto ug_mapper = vtkSmartPointer<vtkUnstructuredGridVolumeRayCastMapper>::New();
auto pd_actor = vtkSmartPointer<vtkActor> ::New(); auto pd_actor = vtkSmartPointer<vtkActor> ::New();
auto ug_volume = vtkSmartPointer<vtkVolume> ::New(); if (!settings.data_filepaths[0].geometry.empty())
{
pd_actor->SetMapper(pd_mapper); pd_actor->SetMapper(pd_mapper);
ug_volume->SetMapper (ug_mapper);
renderer->AddActor (pd_actor ); renderer->AddActor (pd_actor );
}
std::cout << "Setting up volume.\n";
auto ug_mapper = vtkSmartPointer<vtkUnstructuredGridVolumeRayCastMapper>::New();
auto ug_volume = vtkSmartPointer<vtkVolume> ::New();
if (!settings.data_filepaths[0].volume.empty())
{
auto tf = rt::transfer_function(settings.transfer_function);
ug_volume->GetProperty()->SetScalarOpacity(tf.opacity_function);
ug_volume->GetProperty()->SetColor (tf.color_function );
ug_volume->SetMapper (ug_mapper);
renderer ->AddVolume (ug_volume); renderer ->AddVolume (ug_volume);
ug_volume->GetProperty()->SetScalarOpacity(transfer_function.opacity_function); }
ug_volume->GetProperty()->SetColor (transfer_function.color_function );
std::cout << "Setting up video writer.\n"; std::cout << "Setting up video writer.\n";
auto window_to_image = vtkSmartPointer<vtkWindowToImageFilter>::New(); auto window_to_image = vtkSmartPointer<vtkWindowToImageFilter>::New();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment