vtkSMChartUseIndexForAxisDomain.h 2.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/*=========================================================================

  Program:   ParaView
  Module:    vtkSMChartUseIndexForAxisDomain.h

  Copyright (c) Kitware, Inc.
  All rights reserved.
  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
/**
 * @class   vtkSMChartUseIndexForAxisDomain
 * @brief   extends vtkSMBooleanDomain to pick a
 * good default for properties such as "UseIndexForXAxis" on chart
 * representations.
 *
 * vtkSMChartUseIndexForAxisDomain extends vtkSMBooleanDomain to add logic to
 * pick an appropriate default e.g. UseIndexForXAxis for bar and line charts
 * needs to be set to 0 by default, if the XArrayName is one of the known arrays
 * such as "bin_extents", "arc_length", and set to 1 otherwise. This class
 * encapsulates that logic.
 *
 * Supported Required-Property functions:
 * \li ArraySelection : (required) refers to the property that dictates the
 * array selection.
*/

32 33
#ifndef vtkSMChartUseIndexForAxisDomain_h
#define vtkSMChartUseIndexForAxisDomain_h
34 35

#include "vtkPVServerManagerRenderingModule.h" // needed for exports
36
#include "vtkSMBooleanDomain.h"
37 38 39 40 41 42

class VTKPVSERVERMANAGERRENDERING_EXPORT vtkSMChartUseIndexForAxisDomain : public vtkSMBooleanDomain
{
public:
  static vtkSMChartUseIndexForAxisDomain* New();
  vtkTypeMacro(vtkSMChartUseIndexForAxisDomain, vtkSMBooleanDomain);
43
  void PrintSelf(ostream& os, vtkIndent indent) override;
44

45 46 47 48 49 50 51
  /**
   * Set the default values for the property.
   * Overridden to handle the default value for "UseIndexForXAxis" property, if
   * any. UseIndexForXAxis needs to be OFF by default, if the required property
   * e.g. XArrayName property has one of the known types of arrays, otherwise it
   * must be ON.
   */
52
  int SetDefaultValues(vtkSMProperty*, bool use_unchecked_values) override;
53

54 55 56 57 58
  /**
   * Overridden to fire DomainModified when the required property changes. This ensures
   * that SetDefaultValues() is called during proxy post-initialization after the required
   * property has been reset to default.
   */
59
  void Update(vtkSMProperty* requestingProperty) override;
60 61 62

protected:
  vtkSMChartUseIndexForAxisDomain();
63
  ~vtkSMChartUseIndexForAxisDomain() override;
64 65

private:
66 67
  vtkSMChartUseIndexForAxisDomain(const vtkSMChartUseIndexForAxisDomain&) = delete;
  void operator=(const vtkSMChartUseIndexForAxisDomain&) = delete;
68 69 70
};

#endif