CreateBondsPluginInfo.h 5.41 KB
Newer Older
hrchilds's avatar
hrchilds committed
1 2
/*****************************************************************************
*
3
* Copyright (c) 2000 - 2014, Lawrence Livermore National Security, LLC
hrchilds's avatar
hrchilds committed
4
* Produced at the Lawrence Livermore National Laboratory
5
* LLNL-CODE-442911
hrchilds's avatar
hrchilds committed
6 7
* All rights reserved.
*
8
* This file is  part of VisIt. For  details, see https://visit.llnl.gov/.  The
hrchilds's avatar
hrchilds committed
9 10 11 12 13 14 15 16 17 18
* full copyright notice is contained in the file COPYRIGHT located at the root
* of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
*
* Redistribution  and  use  in  source  and  binary  forms,  with  or  without
* modification, are permitted provided that the following conditions are met:
*
*  - Redistributions of  source code must  retain the above  copyright notice,
*    this list of conditions and the disclaimer below.
*  - Redistributions in binary form must reproduce the above copyright notice,
*    this  list of  conditions  and  the  disclaimer (as noted below)  in  the
19 20 21
*    documentation and/or other materials provided with the distribution.
*  - Neither the name of  the LLNS/LLNL nor the names of  its contributors may
*    be used to endorse or promote products derived from this software without
hrchilds's avatar
hrchilds committed
22 23 24 25 26
*    specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR  IMPLIED WARRANTIES, INCLUDING,  BUT NOT  LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND  FITNESS FOR A PARTICULAR  PURPOSE
27 28 29
* ARE  DISCLAIMED. IN  NO EVENT  SHALL LAWRENCE  LIVERMORE NATIONAL  SECURITY,
* LLC, THE  U.S.  DEPARTMENT OF  ENERGY  OR  CONTRIBUTORS BE  LIABLE  FOR  ANY
* DIRECT,  INDIRECT,   INCIDENTAL,   SPECIAL,   EXEMPLARY,  OR   CONSEQUENTIAL
hrchilds's avatar
hrchilds committed
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
* DAMAGES (INCLUDING, BUT NOT  LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR
* SERVICES; LOSS OF  USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER
* CAUSED  AND  ON  ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT
* LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY  WAY
* OUT OF THE  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
*****************************************************************************/

// ************************************************************************* //
//  File: CreateBondsPluginInfo.h
// ************************************************************************* //

#ifndef CREATEBONDS_PLUGIN_INFO_H
#define CREATEBONDS_PLUGIN_INFO_H
#include <OperatorPluginInfo.h>
#include <operator_plugin_exports.h>

class CreateBondsAttributes;

// ****************************************************************************
//  Class: CreateBondsPluginInfo
//
//  Purpose:
//    Five classes that provide all the information about an CreateBonds operator
//
56 57
//  Programmer: generated by xml2info
//  Creation:   omitted
hrchilds's avatar
hrchilds committed
58 59 60 61 62 63 64 65
//
//  Modifications:
//
// ****************************************************************************

class CreateBondsGeneralPluginInfo : public virtual GeneralOperatorPluginInfo
{
  public:
66 67 68
    virtual const char *GetName() const;
    virtual const char *GetVersion() const;
    virtual const char *GetID() const;
hrchilds's avatar
hrchilds committed
69
    virtual bool  EnabledByDefault() const;
70
    virtual const char *GetCategoryName() const;
hrchilds's avatar
hrchilds committed
71 72 73 74 75 76 77 78 79 80 81 82
};

class CreateBondsCommonPluginInfo : public virtual CommonOperatorPluginInfo, public virtual CreateBondsGeneralPluginInfo
{
  public:
    virtual AttributeSubject *AllocAttributes();
    virtual void CopyAttributes(AttributeSubject *to, AttributeSubject *from);
};

class CreateBondsGUIPluginInfo : public virtual GUIOperatorPluginInfo, public virtual CreateBondsCommonPluginInfo
{
  public:
83
    virtual QString *GetMenuName() const;
hrchilds's avatar
hrchilds committed
84
    virtual QvisPostableWindowObserver *CreatePluginWindow(int type,
85 86
        AttributeSubject *attr, const QString &caption, const QString &shortName,
        QvisNotepadArea *notepad);
hrchilds's avatar
hrchilds committed
87 88 89 90 91 92 93 94 95 96 97 98 99 100
    virtual const char **XPMIconData() const;
};

class CreateBondsViewerPluginInfo : public virtual ViewerOperatorPluginInfo, public virtual CreateBondsCommonPluginInfo
{
  public:
    virtual AttributeSubject *GetClientAtts();
    virtual AttributeSubject *GetDefaultAtts();
    virtual void SetClientAtts(AttributeSubject *atts);
    virtual void GetClientAtts(AttributeSubject *atts);

    virtual void InitializeOperatorAtts(AttributeSubject *atts,
                                        const ViewerPlot *plot,
                                        const bool fromDefault);
101 102 103 104
    virtual void UpdateOperatorAtts(AttributeSubject *atts,
                                    const ViewerPlot *plot);
    virtual std::string GetOperatorVarDescription(AttributeSubject *atts,
                                                  const ViewerPlot *plot);
105
    virtual QString *GetMenuName() const;
hrchilds's avatar
hrchilds committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
    virtual const char **XPMIconData() const;

    static void InitializeGlobalObjects();
  private:
    static CreateBondsAttributes *defaultAtts;
    static CreateBondsAttributes *clientAtts;
};

class CreateBondsEnginePluginInfo : public virtual EngineOperatorPluginInfo, public virtual CreateBondsCommonPluginInfo
{
  public:
    virtual avtPluginFilter *AllocAvtPluginFilter();
};

class CreateBondsScriptingPluginInfo : public virtual ScriptingOperatorPluginInfo, public virtual CreateBondsCommonPluginInfo
{
  public:
    virtual void InitializePlugin(AttributeSubject *subj, void *data);
    virtual void *GetMethodTable(int *nMethods);
    virtual bool TypesMatch(void *pyobject);
    virtual char *GetLogString();
    virtual void SetDefaults(const AttributeSubject *atts);
};

#endif