#ifndef H5PARTRANDOMSAMPLEATTRIBUTES_H
#define H5PARTRANDOMSAMPLEATTRIBUTES_H
#include <AttributeSubject.h>

// ****************************************************************************
// Class: H5PartRandomSampleAttributes
//
// Purpose:
//    Randomly reduce an H5Part point mesh
//
// Notes:      Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation:   Thu Mar 16 10:26:55 PDT 2006
//
// Modifications:
//   
// ****************************************************************************

class H5PartRandomSampleAttributes : public AttributeSubject
{
public:
    H5PartRandomSampleAttributes();
    H5PartRandomSampleAttributes(const H5PartRandomSampleAttributes &obj);
    virtual ~H5PartRandomSampleAttributes();

    virtual H5PartRandomSampleAttributes& operator = (const H5PartRandomSampleAttributes &obj);
    virtual bool operator == (const H5PartRandomSampleAttributes &obj) const;
    virtual bool operator != (const H5PartRandomSampleAttributes &obj) const;

    virtual const std::string TypeName() const;
    virtual bool CopyAttributes(const AttributeGroup *);
    virtual AttributeSubject *CreateCompatible(const std::string &) const;
    virtual AttributeSubject *NewInstance(bool) const;

    // Property selection methods
    virtual void SelectAll();

    // Property setting methods
    void SetFactor(float factor_);

    // Property getting methods
    float GetFactor() const;

    // Persistence methods
    virtual bool CreateNode(DataNode *node, bool completeSave, bool forceAdd);
    virtual void SetFromNode(DataNode *node);


    // Keyframing methods
    virtual std::string               GetFieldName(int index) const;
    virtual AttributeGroup::FieldType GetFieldType(int index) const;
    virtual std::string               GetFieldTypeName(int index) const;
    virtual bool                      FieldsEqual(int index, const AttributeGroup *rhs) const;

private:
    float factor;
};

#endif
