1#ifndef PRIMITIVESHAPE_HEADER
2#define PRIMITIVESHAPE_HEADER
49 std::pair<float, float>* dn)
const = 0;
61 bool doFiltering =
true,
62 float* borderRatio = 0) = 0;
82 std::pair<size_t, float>* score)
const = 0;
90 std::deque<ComponentPolygons>* polys)
const = 0;
100 virtual void Serialize(std::ostream* o,
bool binary =
true)
const = 0;
class DLL_LINKAGE PrimitiveShapeVisitor
PrimtiveShape is a shape primitive in conjunction with a parametrization.
virtual size_t SerializedFloatSize() const =0
virtual void GenerateBitmapPoints(const PointCloud &pc, float epsilon, size_t begin, size_t end, PointCloud *bmpPc) const =0
virtual size_t SerializedSize() const =0
virtual void Project(const Vec3f &p, Vec3f *pp) const =0
virtual float NormalDeviation(const Vec3f &p, const Vec3f &n) const =0
virtual void Parameters(const Vec3f &p, std::pair< float, float > *param) const =0
virtual unsigned int ConfidenceTests(unsigned int numTests, float epsilon, float normalThresh, float rms, const PointCloud &pc, const MiscLib::Vector< size_t > &indices) const =0
virtual void TrimmingPolygons(const PointCloud &pc, float epsilon, size_t begin, size_t end, std::deque< ComponentPolygons > *polys) const =0
virtual PrimitiveShape * LSFit(const PointCloud &pc, float epsilon, float normalThresh, MiscLib::Vector< size_t >::const_iterator begin, MiscLib::Vector< size_t >::const_iterator end, std::pair< size_t, float > *score) const =0
virtual void Visit(PrimitiveShapeVisitor *visitor) const =0
virtual void Transform(float scale, const Vec3f &translate)=0
virtual float SignedDistance(const Vec3f &p) const =0
virtual bool InSpace(float u, float v, Vec3f *p, Vec3f *n) const =0
virtual size_t Identifier() const =0
virtual void Serialize(float *array) const =0
virtual void OptimizeParametrization(const PointCloud &pc, size_t begin, size_t end, float epsilon)
virtual LevMarFunc< float > * SignedDistanceFunc() const =0
virtual void Normal(const Vec3f &p, Vec3f *n) const =0
MiscLib::Vector< BitmapPolygon > ComponentPolygons
virtual void SuggestSimplifications(const PointCloud &pc, MiscLib::Vector< size_t >::const_iterator begin, MiscLib::Vector< size_t >::const_iterator end, float distThresh, MiscLib::Vector< MiscLib::RefCountPtr< PrimitiveShape > > *suggestions) const
virtual void Description(std::string *s) const =0
virtual void DistanceAndNormalDeviation(const Vec3f &p, const Vec3f &n, std::pair< float, float > *dn) const =0
virtual float Distance(const Vec3f &p) const =0
virtual void Serialize(std::ostream *o, bool binary=true) const =0
This is the one and only serialization function It stores all the parameters of the shape as well as ...
virtual bool Fit(const PointCloud &pc, float epsilon, float normalThresh, MiscLib::Vector< size_t >::const_iterator begin, MiscLib::Vector< size_t >::const_iterator end)=0
virtual PrimitiveShape * Clone() const =0
virtual unsigned int RequiredSamples() const =0
MiscLib::Vector< GfxTL::VectorXD< 2, size_t > > BitmapPolygon
virtual size_t ConnectedComponent(const PointCloud &pc, float epsilon, MiscLib::Vector< size_t > *indices, bool doFiltering=true, float *borderRatio=0)=0