示例#1
0
 void IsosurfaceModule::deserialize(boost::archive::xml_iarchive& ar, unsigned int version)
 {
   ar & boost::serialization::make_nvp(ISOVALUE_KEY_NAME.c_str(), m_isovalues);
   m_dirty = true;
   OnIsovaluesChanged();
   SetSyncAndRenderRequired();
 }
示例#2
0
 void IsosurfaceModule::SetProjectionOrder(int newValue)
 {
   if( m_projectionOrder != newValue && newValue < 19)
   {
     m_projectionOrder = newValue;
     m_dirty = true;
     SetSyncAndRenderRequired();
     OnModuleChanged(*this);
   }
 }
示例#3
0
 void IsosurfaceModule::SetEpsilon(int newValue)
 { 
   if( m_epsilonExponent != newValue && newValue < 0)
   {
     m_epsilonExponent = newValue;
     m_dirty = true;
     SetSyncAndRenderRequired();
     OnModuleChanged(*this);
   }
 }
示例#4
0
 void IsosurfaceModule::AddIsovalue(const ElVisFloat& value)
 {
   if (m_isovalues.find(value) == m_isovalues.end())
   {
     m_isovalues.insert(value);
     m_dirty = true;
     SetSyncAndRenderRequired();
     OnIsovaluesChanged();
     OnModuleChanged(*this);
   }
 }
示例#5
0
 void IsosurfaceModule::RemoveIsovalue(const ElVisFloat& value)
 {
   std::set<ElVisFloat>::iterator found = m_isovalues.find(value);
   if (found != m_isovalues.end())
   {
     m_isovalues.erase(found);
     m_dirty = true;
     SetSyncAndRenderRequired();
     OnIsovaluesChanged();
     OnModuleChanged(*this);
   }
 }
示例#6
0
  void IsosurfaceModule::Deserialize(const ElVis::Serialization::IsosurfaceModule& input)
  {
    m_epsilonExponent = input.epsilon_exponent();
    m_projectionOrder = input.projection_order();
    m_isovalues.clear();
    for(int i = 0; i < input.isovalues_size(); ++i)
    {
      m_isovalues.insert(input.isovalues(i));
    }

    m_dirty = true;
    OnIsovaluesChanged();
    SetSyncAndRenderRequired();
  }
示例#7
0
  void IsosurfaceModule::SetRequiredOrder(int newValue)
  {
	  bool change = false;

	  if( m_requiredOrder.size() != 0 )
	  {
		  if( newValue != m_requiredOrder[0] )
		      change = true;
	  }
	  else
	  {
		  change = true;
	  }

	  if( change )
	  {
		  m_requiredOrder.clear();
          m_requiredOrder.push_back(newValue);
		  SetSyncAndRenderRequired();
          OnModuleChanged(*this);
	  }
  }
示例#8
0
  void IsosurfaceModule::SetEpsilon(int newValue)
  {
	  bool change = false;
	  double newValueD = pow(10, newValue);

	  if( m_epsilon.size() != 0 )
	  {
		  if( newValueD != m_epsilon[0] )
		      change = true;
	  }
	  else
	  {
		  change = true;
	  }

	  if( change )
	  {
		  m_epsilon.clear();
		  m_epsilon.push_back(newValueD);
		  SetSyncAndRenderRequired();
          OnModuleChanged(*this);
	  }
  }
 void VolumeRenderingModule::HandleTransferFunctionChanged()
 {
   SetSyncAndRenderRequired();
   OnModuleChanged(*this);
 }