<commit_before>// Copyright 2018, University of Colorado Boulder

/**
 * Graph for the 'Standard Form' screen.
 *
 * @author <NAME> (PixelZoom, Inc.)
 */
define( require => {
  'use strict';

  // modules
  const AxisOfSymmetryNode = require( 'GRAPHING_QUADRATICS/common/view/AxisOfSymmetryNode' );
  const GQGraphNode = require( 'GRAPHING_QUADRATICS/common/view/GQGraphNode' );
  const graphingQuadratics = require( 'GRAPHING_QUADRATICS/graphingQuadratics' );
  const NoRealRootsNode = require( 'GRAPHING_QUADRATICS/standardform/view/NoRealRootsNode' );
  const RootsNode = require( 'GRAPHING_QUADRATICS/standardform/view/RootsNode' );
  const VertexNode = require( 'GRAPHING_QUADRATICS/standardform/view/VertexNode' );

  class StandardFormGraphNode extends GQGraphNode {

    /**
     * @param {StandardFormModel} model
     * @param {StandardFormViewProperties} viewProperties
     * @param {Tandem} tandem
     * @param {Object} [options]
     */
    constructor( model, viewProperties, tandem, options ) {

      // We do NOT want to instrument the graph, so tandem is not propagated via options
      options = options || {};

      // Axis of symmetry line
      const axisOfSymmetryNode = new AxisOfSymmetryNode(
        model.quadraticProperty,
        model.graph,
        model.modelViewTransform,
        viewProperties.axisOfSymmetryVisibleProperty,
        viewProperties.equationsVisibleProperty );

      // Roots
      const rootsNode = new RootsNode(
        model.quadraticProperty,
        model.graph,
        model.modelViewTransform,
        viewProperties.rootsVisibleProperty,
        viewProperties.coordinatesVisibleProperty, {
          tandem: tandem.createTandem( 'rootsNode' ),
          phetioDocumentation: 'displays the roots of the interactive quadratic'
        } );

      // Vertex
      const vertexNode = new VertexNode(
        model.quadraticProperty,
        model.graph,
        model.modelViewTransform,
        viewProperties.vertexVisibleProperty,
        viewProperties.coordinatesVisibleProperty, {
          tandem: tandem.createTandem( 'vertexNode' ),
          phetioDocumentation: 'displays the vertex of the interactive quadratic'
        } );

      // 'NO REAL ROOTS' label
      const noRealRootsNode = new NoRealRootsNode(
        viewProperties.rootsVisibleProperty,
        viewProperties.vertexVisibleProperty,
        viewProperties.coordinatesVisibleProperty,
        model.quadraticProperty,
        model.modelViewTransform, {
          center: model.modelViewTransform.modelToViewXY( model.graph.xRange.getCenter(), model.graph.yRange.getCenter() ),
          tandem: tandem.createTandem( 'noRealRootsNode' ),
          phetioDocumentation: 'displays NO REAL ROOTS when the interactive quadratic has no real roots'
        } );

      assert && assert( !options.otherCurves, 'StandardFormGraphNode sets otherCurves' );
      options.otherCurves = [ axisOfSymmetryNode ];

      assert && assert( !options.decorations, 'StandardFormGraphNode sets decorations' );
      options.decorations = [ rootsNode, vertexNode, noRealRootsNode ]; // rendered in this order

      super( model, viewProperties, options );
    }
  }

  return graphingQuadratics.register( 'StandardFormGraphNode', StandardFormGraphNode );
} );<commit_msg>delete vestigial initial position of 'NO REAL ROOTS', #88<commit_after>// Copyright 2018, University of Colorado Boulder

/**
 * Graph for the 'Standard Form' screen.
 *
 * @author <NAME> (PixelZoom, Inc.)
 */
define( require => {
  'use strict';

  // modules
  const AxisOfSymmetryNode = require( 'GRAPHING_QUADRATICS/common/view/AxisOfSymmetryNode' );
  const GQGraphNode = require( 'GRAPHING_QUADRATICS/common/view/GQGraphNode' );
  const graphingQuadratics = require( 'GRAPHING_QUADRATICS/graphingQuadratics' );
  const NoRealRootsNode = require( 'GRAPHING_QUADRATICS/standardform/view/NoRealRootsNode' );
  const RootsNode = require( 'GRAPHING_QUADRATICS/standardform/view/RootsNode' );
  const VertexNode = require( 'GRAPHING_QUADRATICS/standardform/view/VertexNode' );

  class StandardFormGraphNode extends GQGraphNode {

    /**
     * @param {StandardFormModel} model
     * @param {StandardFormViewProperties} viewProperties
     * @param {Tandem} tandem
     * @param {Object} [options]
     */
    constructor( model, viewProperties, tandem, options ) {

      // We do NOT want to instrument the graph, so tandem is not propagated via options
      options = options || {};

      // Axis of symmetry line
      const axisOfSymmetryNode = new AxisOfSymmetryNode(
        model.quadraticProperty,
        model.graph,
        model.modelViewTransform,
        viewProperties.axisOfSymmetryVisibleProperty,
        viewProperties.equationsVisibleProperty );

      // Roots
      const rootsNode = new RootsNode(
        model.quadraticProperty,
        model.graph,
        model.modelViewTransform,
        viewProperties.rootsVisibleProperty,
        viewProperties.coordinatesVisibleProperty, {
          tandem: tandem.createTandem( 'rootsNode' ),
          phetioDocumentation: 'displays the roots of the interactive quadratic'
        } );

      // Vertex
      const vertexNode = new VertexNode(
        model.quadraticProperty,
        model.graph,
        model.modelViewTransform,
        viewProperties.vertexVisibleProperty,
        viewProperties.coordinatesVisibleProperty, {
          tandem: tandem.createTandem( 'vertexNode' ),
          phetioDocumentation: 'displays the vertex of the interactive quadratic'
        } );

      // 'NO REAL ROOTS' label
      const noRealRootsNode = new NoRealRootsNode(
        viewProperties.rootsVisibleProperty,
        viewProperties.vertexVisibleProperty,
        viewProperties.coordinatesVisibleProperty,
        model.quadraticProperty,
        model.modelViewTransform, {
          tandem: tandem.createTandem( 'noRealRootsNode' ),
          phetioDocumentation: 'displays NO REAL ROOTS when the interactive quadratic has no real roots'
        } );

      assert && assert( !options.otherCurves, 'StandardFormGraphNode sets otherCurves' );
      options.otherCurves = [ axisOfSymmetryNode ];

      assert && assert( !options.decorations, 'StandardFormGraphNode sets decorations' );
      options.decorations = [ rootsNode, vertexNode, noRealRootsNode ]; // rendered in this order

      super( model, viewProperties, options );
    }
  }

  return graphingQuadratics.register( 'StandardFormGraphNode', StandardFormGraphNode );
} );
{'fraction_non_alphanumeric': 0.08815384615384615, 'fraction_numerical': 0.0015384615384615385, 'mean_word_length': 3.2769736842105264, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3622151', 'n_tokens_mistral': 1882, 'n_tokens_neox': 1791, 'n_words': 408}