#ifndef GeometryOverrideExample1_h
#define GeometryOverrideExample1_h
#include <maya/MPxGeometryOverride.h>
#include <maya/MPxSurfaceShape.h>
#include <maya/MFloatVector.h>
#include <maya/MHWGeometry.h>
#include <maya/MHWGeometryUtilities.h>
#include <maya/MDagMessage.h>
#include <vector>
{
public:
typedef std::vector<MFloatVector> PositionList;
typedef std::vector<MFloatVector> NormalList;
typedef std::vector<unsigned int> IndexList;
public:
static void * creator()
{
return new GeometryOverrideExample1_shape();
}
static MStatus initialize(){
return MS::kSuccess; }
~GeometryOverrideExample1_shape() override;
bool isBounded()
const override {
return true; }
const PositionList& getPositions() const { return fPositions; }
const NormalList& getNormals() const { return fNormals; }
const IndexList& getShadedIndices() const { return fShadedIndices; }
const IndexList& getWireFrameIndices() const { return fWireFrameIndices; }
public:
private:
GeometryOverrideExample1_shape();
PositionList fPositions;
NormalList fNormals;
IndexList fShadedIndices;
IndexList fWireFrameIndices;
MCallbackId mInstanceAddedCallbackId = 0;
};
{
public:
{
return new GeometryOverrideExample1(obj);
}
~GeometryOverrideExample1() override;
private:
GeometryOverrideExample1(
const MObject& obj);
void updateWireframeItems(const char* renderItemName, MGeometry::DrawMode mode, unsigned int depthPriority,
private:
static const char* sActiveWireframeRenderItemName;
static const char* sDormantWireframeRenderItemName;
static const char* sShadedRenderItemName;
GeometryOverrideExample1_shape* fMesh = nullptr;
};
#endif // GeometryOverrideExample1_h