arch property

Implementation

static ComponentSchema<Arch3D> get arch => _schema<Arch3D>(
  type: 'Arch3D',
  id: 'arch_3d_a19df39b',
  create: Arch3D.new,
  name: 'Arch',
  description:
      'A curved band standing up: an arch, a bridge, part of a ring.',
  icon: Icons.architecture,
  size: [
    _size<Arch3D>('radius', (c) => c.radius, (c, v) => c.radius = v),
    _size<Arch3D>('thickness', (c) => c.thickness, (c, v) => c.thickness = v),
    _size<Arch3D>('depth', (c) => c.depth, (c, v) => c.depth = v),
    SchemaField(
      name: 'angle',
      kind: FieldTypes.decimal,
      read: (c) => (c as Arch3D).angle,
      write: (c, v) => (c as Arch3D).angle = (v as num).toDouble(),
      min: 0.01,
      max: 2 * math.pi,
    ),
  ],
  detail: [
    _count<Arch3D>(
      'segments',
      (c) => c.segments,
      (c, v) => c.segments = v,
      1,
      128,
    ),
    _flag<Arch3D>('smooth', (c) => c.smooth, (c, v) => c.smooth = v),
  ],
  hints: const {
    'radius': FieldHint(
      label: 'Radius',
      description: 'Its outside radius.',
      scrub: ScrubHint(step: 0.05, fractionDigits: 2, suffix: 'm'),
    ),
    'angle': FieldHint(
      label: 'Angle',
      description: 'How much of a ring it is: 180° stands on two feet.',
      unit: AngleUnit.degrees,
      scrub: ScrubHint(step: 1, fractionDigits: 0, suffix: '°'),
    ),
  },
);