When you create your class implementation that inherits ElementFacetOptions, you can choose to either define default "public:" stub methods behaviors, or expand on the stub providing your own more full and complete custom implementation still bound by virtual function signature and return types and values necessary.
When creating your class implementation try to avoid "magic numbers":
e.g. int GetMaxPerFace () override { return 3; }
Choose to implement parameterized values:
e.g. int GetMaxPerFace () override { return m_GetMaxPerFace; }
Or, even static macro values:
e.g. int GetMaxPerFace () override { return MAX_VERTICES; }
Granted additional SDK documentation and code samples for this specific area would be helpful, I was unable to find anything quickly to pass along. Hopefully the following method stubs I provide for the ones you referenced can help get you further in testing and allow you to tune and meet your needs.
HEADER FILE: ElementGraphics.h
... virtual double GetChoordHeightTolerance ()=0 virtual double GetNormalAngleTolerance ()=0 virtual bool NormalsRequired ()=0 virtual bool ParamsRequired ()=0 ...
SOURCE FILE: MyGPA.cpp
... // Better to use parameter (type) overrides, for brevity showing static variables: static double s_ChoordHeightTolerance = 0.0; static double s_angleTolerance = .2; static bool s_NormalsRequired = false; static bool s_ParamsRequired = false; ...
public:
...
// Better to avoid magic numbers and use parameter override or method variable, but showing using static variables
//double GetChoordHeightTolerance () override { return 0.0; } // Avoid magic numbers
double GetChoordHeightTolerance () override { return s_ChoordHeightTolerance; } // Default behavior, expand for override handling
double GetNormalAngleTolerance () { return s_angleTolerance; }
bool NormalsRequired () override { return s_NormalsRequired; }
bool ParamsRequired () override { return s_ParamsRequired; }
...
HTH,
Bob