예제 #1
0
파일: seismic.cpp 프로젝트: NICTA/obsidian
    std::string serialise(const Seismic1dSpec& g)
    {
      Seismic1dSpecProtobuf pb;
      pb.set_numlocations(g.locations.rows());
      pb.set_locations(matrixString(g.locations));

      for (const Eigen::VectorXi & interfaces : g.interfaces)
      {
        pb.add_numinterfaces(interfaces.rows());
        pb.add_interfaces(matrixString(interfaces));
      }

      NoiseSpecProtobuf* npb = pb.mutable_noise();
      npb->set_inversegammaalpha(g.noise.inverseGammaAlpha);
      npb->set_inversegammabeta(g.noise.inverseGammaBeta);
      return protobufToString(pb);
    }
예제 #2
0
파일: seismic.cpp 프로젝트: NICTA/obsidian
    std::string serialise(const Seismic1dResults& g)
    {
      Seismic1dResultsProtobuf pb;
      pb.set_likelihood(g.likelihood);

      for (const Eigen::VectorXd & reading : g.readings)
      {
        pb.add_numreadings(reading.rows());
        pb.add_readings(matrixString(reading));
      }

      return protobufToString(pb);
    }
예제 #3
0
void GLC_WorldTo3dxml::writeInstance3D(const GLC_StructInstance* pInstance, unsigned int parentId)
{
	const GLC_StructReference* pRef= pInstance->structReference();
	const unsigned int referenceId= m_ReferenceToIdHash.value(pRef);
	const QString instanceMatrix(matrixString(pInstance->relativeMatrix()));

	m_pOutStream->writeStartElement("Instance3D");
		m_pOutStream->writeAttribute("xsi:type", "Instance3DType");
		m_pOutStream->writeAttribute("id", QString::number(++m_CurrentId));
		m_pOutStream->writeAttribute("name", pInstance->name());
		m_pOutStream->writeTextElement("IsAggregatedBy", QString::number(parentId));
		m_pOutStream->writeTextElement("IsInstanceOf", QString::number(referenceId));
		m_pOutStream->writeTextElement("RelativeMatrix", instanceMatrix);
		if (pInstance->containsAttributes())
		{
			m_pOutStream->writeStartElement("Instance3DExtensionType");
			writeExtensionAttributes(pInstance->attributesHandle());
			m_pOutStream->writeEndElement(); // Instance3DExtensionType
		}

	m_pOutStream->writeEndElement(); // Instance3D

	m_InstanceToIdHash.insert(pInstance, m_CurrentId);
}
예제 #4
0
void GLC_WorldTo3dxml::writeOccurenceDefaultViewProperty(const GLC_StructOccurence* pOccurence)
{
	QList<unsigned int> path= instancePath(pOccurence);

	GLC_3DViewInstance* pInstance= m_World.collection()->instanceHandle(pOccurence->id());
	Q_ASSERT(NULL != pInstance);
	const bool isVisible= pOccurence->isVisible();
	m_pOutStream->writeStartElement("DefaultViewProperty");
	m_pOutStream->writeStartElement("OccurenceId");
	const QString prefix= "urn:3DXML:" + QFileInfo(m_FileName).fileName() + "#";
	const int pathSize= path.size();
	for (int i= 0; i < pathSize; ++i)
	{
		m_pOutStream->writeTextElement("id", prefix + QString::number(path.at(i)));
	}
	m_pOutStream->writeEndElement(); // OccurenceId

	if (pOccurence->isFlexible())
	{
		m_pOutStream->writeTextElement("RelativePosition", matrixString(pOccurence->occurrenceRelativeMatrix()));
	}

	if (!isVisible || !pInstance->renderPropertiesHandle()->isDefault())
	{
		qDebug() << "(!isVisible || !pInstance->renderPropertiesHandle()->isDefault())";
		m_pOutStream->writeStartElement("GraphicProperties");
		m_pOutStream->writeAttribute("xsi:type", "GraphicPropertiesType");
		if (! isVisible)
		{
			m_pOutStream->writeStartElement("GeneralAttributes");
				m_pOutStream->writeAttribute("xsi:type", "GeneralAttributesType");
				m_pOutStream->writeAttribute("visible", "false");
				m_pOutStream->writeAttribute("selectable", "true");
			m_pOutStream->writeEndElement(); // GeneralAttributes
		}
		if (!pInstance->renderPropertiesHandle()->isDefault())
		{
			const GLC_RenderProperties* pProperties= pInstance->renderPropertiesHandle();
			if ((pProperties->renderingMode() == glc::OverwriteTransparency))
			{
				m_pOutStream->writeStartElement("SurfaceAttributes");
				m_pOutStream->writeAttribute("xsi:type", "SurfaceAttributesType");
					m_pOutStream->writeStartElement("Color");
						m_pOutStream->writeAttribute("xsi:type", "RGBAColorType");
						m_pOutStream->writeAttribute("red", "-1");
						m_pOutStream->writeAttribute("green", "-1");
						m_pOutStream->writeAttribute("blue", "-1");
						m_pOutStream->writeAttribute("alpha", QString::number(pProperties->overwriteTransparency()));
					m_pOutStream->writeEndElement(); // Color
				m_pOutStream->writeEndElement(); // SurfaceAttributes
			}
			else if ((pProperties->renderingMode() == glc::OverwriteTransparencyAndMaterial))
			{
				GLC_Material* pMaterial= pProperties->overwriteMaterial();
				m_pOutStream->writeStartElement("SurfaceAttributes");
				m_pOutStream->writeAttribute("xsi:type", "SurfaceAttributesType");
					m_pOutStream->writeStartElement("Color");
						m_pOutStream->writeAttribute("xsi:type", "RGBAColorType");
						m_pOutStream->writeAttribute("red", QString::number(pMaterial->diffuseColor().redF()));
						m_pOutStream->writeAttribute("green", QString::number(pMaterial->diffuseColor().greenF()));
						m_pOutStream->writeAttribute("blue", QString::number(pMaterial->diffuseColor().blueF()));
						m_pOutStream->writeAttribute("alpha", QString::number(pProperties->overwriteTransparency()));
					m_pOutStream->writeEndElement(); // Color
				m_pOutStream->writeEndElement(); // SurfaceAttributes
			}
			else if ((pProperties->renderingMode() == glc::OverwriteMaterial))
			{
				GLC_Material* pMaterial= pProperties->overwriteMaterial();
				m_pOutStream->writeStartElement("SurfaceAttributes");
				m_pOutStream->writeAttribute("xsi:type", "SurfaceAttributesType");
					m_pOutStream->writeStartElement("Color");
						m_pOutStream->writeAttribute("xsi:type", "RGBAColorType");
						m_pOutStream->writeAttribute("red", QString::number(pMaterial->diffuseColor().redF()));
						m_pOutStream->writeAttribute("green", QString::number(pMaterial->diffuseColor().greenF()));
						m_pOutStream->writeAttribute("blue", QString::number(pMaterial->diffuseColor().blueF()));
						m_pOutStream->writeAttribute("alpha", QString::number(pMaterial->opacity()));
					m_pOutStream->writeEndElement(); // Color
				m_pOutStream->writeEndElement(); // SurfaceAttributes
			}

		}
		m_pOutStream->writeEndElement(); // GraphicProperties
	}
	m_pOutStream->writeEndElement(); // DefaultViewProperty
}