VrControllerProfile constructor

VrControllerProfile({
  1. int protocolVersion = vrControllerProtocolVersion,
  2. required String deviceId,
  3. required String deviceName,
  4. VrControllerHandedness handedness = VrControllerHandedness.unspecified,
  5. required double widthMeters,
  6. required double heightMeters,
  7. required List<VrControlDescriptor> controls,
})

Implementation

factory VrControllerProfile({
  int protocolVersion = vrControllerProtocolVersion,
  required String deviceId,
  required String deviceName,
  VrControllerHandedness handedness = VrControllerHandedness.unspecified,
  required double widthMeters,
  required double heightMeters,
  required List<VrControlDescriptor> controls,
}) {
  if (protocolVersion <= 0) {
    throw RangeError.value(
      protocolVersion,
      'protocolVersion',
      'Must be > 0.',
    );
  }
  _requireNonEmpty(deviceId, 'deviceId');
  _requireNonEmpty(deviceName, 'deviceName');
  _requirePositive(widthMeters, 'widthMeters');
  _requirePositive(heightMeters, 'heightMeters');
  final ids = <String>{};
  for (final control in controls) {
    if (!ids.add(control.id)) {
      throw ArgumentError.value(
        control.id,
        'controls',
        'Control ids must be unique.',
      );
    }
  }
  return VrControllerProfile._(
    protocolVersion: protocolVersion,
    deviceId: deviceId,
    deviceName: deviceName,
    handedness: handedness,
    widthMeters: widthMeters,
    heightMeters: heightMeters,
    controls: List<VrControlDescriptor>.unmodifiable(controls),
  );
}