void VtkMeshConverter::convertScalarArrays(vtkUnstructuredGrid& grid, MeshLib::Mesh& mesh) { vtkPointData* point_data = grid.GetPointData(); auto const n_point_arrays = static_cast<unsigned>(point_data->GetNumberOfArrays()); for (unsigned i = 0; i < n_point_arrays; ++i) convertArray(*point_data->GetArray(i), mesh.getProperties(), MeshLib::MeshItemType::Node); vtkCellData* cell_data = grid.GetCellData(); auto const n_cell_arrays = static_cast<unsigned>(cell_data->GetNumberOfArrays()); for (unsigned i = 0; i < n_cell_arrays; ++i) convertArray(*cell_data->GetArray(i), mesh.getProperties(), MeshLib::MeshItemType::Cell); vtkFieldData* field_data = grid.GetFieldData(); auto const n_field_arrays = static_cast<unsigned>(field_data->GetNumberOfArrays()); for (unsigned i = 0; i < n_field_arrays; ++i) convertArray( *vtkDataArray::SafeDownCast(field_data->GetAbstractArray(i)), mesh.getProperties(), MeshLib::MeshItemType::IntegrationPoint); }
void VtkMeshConverter::convertScalarArrays(vtkUnstructuredGrid &grid, MeshLib::Mesh &mesh) { vtkPointData* point_data = grid.GetPointData(); unsigned const n_point_arrays = static_cast<unsigned>(point_data->GetNumberOfArrays()); for (unsigned i=0; i<n_point_arrays; ++i) convertArray(*point_data->GetArray(i), mesh.getProperties(), MeshLib::MeshItemType::Node); vtkCellData* cell_data = grid.GetCellData(); unsigned const n_cell_arrays = static_cast<unsigned>(cell_data->GetNumberOfArrays()); for (unsigned i=0; i<n_cell_arrays; ++i) convertArray(*cell_data->GetArray(i), mesh.getProperties(), MeshLib::MeshItemType::Cell); }
nsresult UnpackPDU(BluetoothDaemonPDU& aPDU, BluetoothProperty& aOut) { nsresult rv = UnpackPDU(aPDU, aOut.mType); if (NS_FAILED(rv)) { return rv; } uint16_t len; rv = UnpackPDU(aPDU, len); if (NS_FAILED(rv)) { return rv; } switch (aOut.mType) { case PROPERTY_BDNAME: /* fall through */ case PROPERTY_REMOTE_FRIENDLY_NAME: { const uint8_t* data = aPDU.Consume(len); if (NS_WARN_IF(!data)) { return NS_ERROR_ILLEGAL_VALUE; } // We construct an nsCString here because the string // returned from the PDU is not 0-terminated. aOut.mString = NS_ConvertUTF8toUTF16( nsCString(reinterpret_cast<const char*>(data), len)); } break; case PROPERTY_BDADDR: rv = UnpackPDU<BluetoothAddress>( aPDU, UnpackConversion<BluetoothAddress, nsAString>(aOut.mString)); break; case PROPERTY_UUIDS: { size_t numUuids = len / MAX_UUID_SIZE; aOut.mUuidArray.SetLength(numUuids); rv = UnpackPDU(aPDU, aOut.mUuidArray); } break; case PROPERTY_CLASS_OF_DEVICE: /* fall through */ case PROPERTY_ADAPTER_DISCOVERY_TIMEOUT: rv = UnpackPDU(aPDU, aOut.mUint32); break; case PROPERTY_TYPE_OF_DEVICE: rv = UnpackPDU(aPDU, aOut.mTypeOfDevice); break; case PROPERTY_SERVICE_RECORD: rv = UnpackPDU(aPDU, aOut.mServiceRecord); break; case PROPERTY_ADAPTER_SCAN_MODE: rv = UnpackPDU(aPDU, aOut.mScanMode); break; case PROPERTY_ADAPTER_BONDED_DEVICES: { /* unpack addresses */ size_t numAddresses = len / BLUETOOTH_ADDRESS_BYTES; nsAutoArrayPtr<BluetoothAddress> addresses; UnpackArray<BluetoothAddress> addressArray(addresses, numAddresses); rv = UnpackPDU(aPDU, addressArray); if (NS_FAILED(rv)) { return rv; } /* convert addresses to strings */ aOut.mStringArray.SetLength(numAddresses); ConvertArray<BluetoothAddress> convertArray(addressArray.mData, addressArray.mLength); rv = Convert(convertArray, aOut.mStringArray); } break; case PROPERTY_REMOTE_RSSI: { int8_t rssi; rv = UnpackPDU(aPDU, rssi); aOut.mInt32 = rssi; } break; case PROPERTY_REMOTE_VERSION_INFO: rv = UnpackPDU(aPDU, aOut.mRemoteInfo); break; case PROPERTY_REMOTE_DEVICE_TIMESTAMP: /* nothing to do */ break; default: break; } return rv; }