createBars function

List<Widget> createBars({
  1. required BuildContext context,
  2. required bool ignorePointer,
  3. required bool rotate,
  4. required double subjectVerticalAxisEndViewPortStart,
  5. required double subjectVerticalAxisStartViewPortStart,
  6. required double subjectVerticalAxisStartViewPortEnd,
  7. required double subjectVerticalAxisEndViewPortEnd,
  8. required double subjectHorizontalAxisEndViewPortStart,
  9. required double subjectHorizontalAxisStartViewPortStart,
  10. required double subjectHorizontalAxisStartViewPortEnd,
  11. required double subjectHorizontalAxisEndViewPortEnd,
  12. required double verticalStartPadding,
  13. required double verticalEndPadding,
  14. required double horizontalStartPadding,
  15. required double horizontalEndPadding,
})

Implementation

List<Widget> createBars({
  required BuildContext context,
  required bool ignorePointer,
  required bool rotate,
  required double subjectVerticalAxisEndViewPortStart,
  required double subjectVerticalAxisStartViewPortStart,
  required double subjectVerticalAxisStartViewPortEnd,
  required double subjectVerticalAxisEndViewPortEnd,
  required double subjectHorizontalAxisEndViewPortStart,
  required double subjectHorizontalAxisStartViewPortStart,
  required double subjectHorizontalAxisStartViewPortEnd,
  required double subjectHorizontalAxisEndViewPortEnd,
  required double verticalStartPadding,
  required double verticalEndPadding,
  required double horizontalStartPadding,
  required double horizontalEndPadding,
}) {
  const defaultCrossLength = 20.0;
  const defaultShiftOffset = 22.0;
  const animate = 300;
  verticalStartFull(String orientation) =>
      AnimatedPositionedDirectional(
        top: 0.0 + verticalStartPadding,
        start: subjectHorizontalAxisStartViewPortStart + horizontalStartPadding,
        width: defaultCrossLength,
        height: subjectVerticalAxisEndViewPortStart,
        duration: const Duration(milliseconds: animate),
        child: IgnorePointer(
          ignoring: ignorePointer,
          child: Container(
            alignment: Alignment.topCenter,
            color: Colors.black.withOpacity(0.5),
            child: buildInnerText(
                1,
                'subject${orientation}AxisEndViewPortStart',
                subjectVerticalAxisEndViewPortStart),
          ),
        ),
      );
  verticalStartHalf(String orientation) =>
      AnimatedPositionedDirectional(
        top: 0.0 + verticalStartPadding,
        start: subjectHorizontalAxisStartViewPortStart +
            defaultShiftOffset +
            horizontalStartPadding,
        width: defaultCrossLength,
        height: subjectVerticalAxisStartViewPortStart,
        duration: const Duration(milliseconds: animate),
        child: IgnorePointer(
          ignoring: ignorePointer,
          child: Container(
            color: Colors.black.withOpacity(0.5),
            alignment: Alignment.topCenter,
            child: buildInnerText(
                1,
                'subject${orientation}AxisStartViewPortStart',
                subjectVerticalAxisStartViewPortStart),
          ),
        ),
      );
  verticalEndFull(String orientation) =>
      AnimatedPositionedDirectional(
        bottom: 0.0 + verticalEndPadding,
        end: subjectHorizontalAxisEndViewPortEnd + horizontalEndPadding,
        width: defaultCrossLength,
        height: subjectVerticalAxisStartViewPortEnd,
        duration: const Duration(milliseconds: animate),
        child: IgnorePointer(
          ignoring: ignorePointer,
          child: Container(
            color: Colors.black.withOpacity(0.5),
            alignment: Alignment.bottomCenter,
            child: buildInnerText(
                1,
                'subject${orientation}AxisStartViewPortEnd',
                subjectVerticalAxisStartViewPortEnd),
          ),
        ),
      );
  verticalEndHalf(String orientation) =>
      AnimatedPositionedDirectional(
        bottom: 0.0 + verticalEndPadding,
        end: subjectHorizontalAxisEndViewPortEnd +
            defaultShiftOffset +
            horizontalEndPadding,
        width: defaultCrossLength,
        height: subjectVerticalAxisEndViewPortEnd,
        duration: const Duration(milliseconds: animate),
        child: IgnorePointer(
          ignoring: ignorePointer,
          child: Container(
            color: Colors.black.withOpacity(0.5),
            alignment: Alignment.bottomCenter,
            child: buildInnerText(1, 'subject${orientation}AxisEndViewPortEnd',
                subjectVerticalAxisEndViewPortEnd),
          ),
        ),
      );

  horizontalStartFull(String orientation) =>
      AnimatedPositionedDirectional(
        start: 0.0 + horizontalStartPadding,
        top: subjectVerticalAxisStartViewPortStart + verticalStartPadding,
        height: defaultCrossLength,
        width: subjectHorizontalAxisEndViewPortStart,
        duration: const Duration(milliseconds: animate),
        child: IgnorePointer(
          ignoring: ignorePointer,
          child: Container(
            color: Colors.indigo.withOpacity(0.7),
            alignment: AlignmentDirectional.centerStart,
            child: buildInnerText(
                0,
                'subject${orientation}AxisEndViewPortStart',
                subjectHorizontalAxisEndViewPortStart),
          ),
        ),
      );
  horizontalStartHalf(String orientation) =>
      AnimatedPositionedDirectional(
        start: 0.0 + horizontalStartPadding,
        top: subjectVerticalAxisStartViewPortStart +
            defaultShiftOffset +
            verticalStartPadding,
        height: defaultCrossLength,
        width: subjectHorizontalAxisStartViewPortStart,
        duration: const Duration(milliseconds: animate),
        child: IgnorePointer(
          ignoring: ignorePointer,
          child: Container(
            color: Colors.indigo.withOpacity(0.7),
            alignment: AlignmentDirectional.centerStart,
            child: buildInnerText(
                0,
                'subject${orientation}AxisStartViewPortStart',
                subjectHorizontalAxisStartViewPortStart),
          ),
        ),
      );
  horizontalEndFull(String orientation) =>
      AnimatedPositionedDirectional(
        end: 0.0 + horizontalEndPadding,
        bottom: subjectVerticalAxisEndViewPortEnd + verticalEndPadding,
        height: defaultCrossLength,
        width: subjectHorizontalAxisStartViewPortEnd,
        duration: const Duration(milliseconds: animate),
        child: IgnorePointer(
          ignoring: ignorePointer,
          child: Container(
            color: Colors.indigo.withOpacity(0.7),
            alignment: AlignmentDirectional.centerEnd,
            child: buildInnerText(
                0,
                'subject${orientation}AxisStartViewPortEnd',
                subjectHorizontalAxisStartViewPortEnd),
          ),
        ),
      );
  horizontalEndHalf(String orientation) =>
      AnimatedPositionedDirectional(
        end: 0.0 + horizontalEndPadding,
        bottom: subjectVerticalAxisEndViewPortEnd +
            defaultShiftOffset +
            verticalEndPadding,
        height: defaultCrossLength,
        width: subjectHorizontalAxisEndViewPortEnd,
        duration: const Duration(milliseconds: animate),
        child: IgnorePointer(
          ignoring: ignorePointer,
          child: Container(
            color: Colors.indigo.withOpacity(0.7),
            alignment: AlignmentDirectional.centerEnd,
            child: buildInnerText(0, 'subject${orientation}AxisEndViewPortEnd',
                subjectHorizontalAxisEndViewPortEnd),
          ),
        ),
      );

  return [
    verticalStartFull(!rotate ? "Main" : "Cross"),
    verticalStartHalf(!rotate ? "Main" : "Cross"),
    verticalEndFull(!rotate ? "Main" : "Cross"),
    verticalEndHalf(!rotate ? "Main" : "Cross"),
    horizontalStartFull(rotate ? "Main" : "Cross"),
    horizontalStartHalf(rotate ? "Main" : "Cross"),
    horizontalEndFull(rotate ? "Main" : "Cross"),
    horizontalEndHalf(rotate ? "Main" : "Cross"),
  ];
}