28 #include "Eigen/Dense"
42 typedef Eigen::Array<bool, Eigen::Dynamic, Eigen::Dynamic>
Xb;
48 const std::vector<std::vector<int>>& stacks,
81 const Eigen::Array3f&
radii,
82 const Eigen::Matrix3f& rotationMatrix,
83 Eigen::ArrayXd& parameters);
86 Eigen::Array3f& center,
87 Eigen::Array3f&
radii,
88 Eigen::Matrix3f& rotationMatrix);
90 bool directFit(
const Eigen::ArrayX3d& xyz, Eigen::ArrayXd& parameters);
93 Eigen::Array3f& center,
94 Eigen::Array3f&
radii,
95 Eigen::Matrix3f& rotationMatrix,
147 bool toFile_MeOnly(QFile& out,
short dataVersion)
const override;
181 std::vector<ccPointCloud*>
bool fitEllipsoidToGrain(const int grainIndex, Eigen::Array3f ¢er, Eigen::Array3f &radii, Eigen::Matrix3f &rotationMatrix, const Method &method=DIRECT)
void updateBBoxOnlyOne(int index)
std::vector< Eigen::Array3f > m_center
std::vector< ccMesh * > m_meshes
std::vector< Eigen::Array3f > m_radii
bool implicitToExplicit(const Eigen::ArrayXd ¶meters, Eigen::Array3f ¢er, Eigen::Array3f &radii, Eigen::Matrix3f &rotationMatrix)
void showOnlyOne(bool state)
void drawPoints(bool state)
void setGLPointSize(int size)
void updateMeshAndLineSet()
Update mesh and lineset representations for ellipsoids.
std::vector< ccPointCloud * > m_pointsClouds
std::vector< float > normals
std::vector< int > indices
void draw(CC_DRAW_CONTEXT &context) override
Draws entity and its children.
ecvMainAppInterface * m_app
std::vector< float > vertices
Eigen::ArrayX3f ellipsoidInstance
void clearGeneratedObjects()
bool toFile_MeOnly(QFile &out, short dataVersion) const override
Save own object data.
bool explicitToImplicit(const Eigen::Array3f ¢er, const Eigen::Array3f &radii, const Eigen::Matrix3f &rotationMatrix, Eigen::ArrayXd ¶meters)
void drawSurfaces(bool state)
std::vector< CCVector3f > m_grainColors
std::vector< float > texCoords
Eigen::Array< bool, Eigen::Dynamic, Eigen::Dynamic > Xb
void initSphereVertices()
void drawLines(bool state)
bool directFit(const Eigen::ArrayX3d &xyz, Eigen::ArrayXd ¶meters)
std::set< int > m_fitNotOK
void setTransparency(double transparency)
void setLocalMaximumIndexes(const Eigen::ArrayXi &localMaximumIndexes)
bool fromFile_MeOnly(QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
Loads own object data.
short minimumFileVersion_MeOnly() const override
GrainsAsEllipsoids(ecvMainAppInterface *app)
qCC_db
std::vector< cloudViewer::geometry::LineSet * > m_lineSets
bool exportResultsAsCloud()
std::vector< Eigen::Matrix3f > m_rotationMatrix
std::vector< std::vector< int > > m_stacks
ccBBox getOwnBB(bool withGLFeatures=false) override
Returns the entity's own bounding-box.
void setGrainColorsTable(const RGBAColorsTableType &colorTable)
std::vector< int > lineIndices
Array of RGBA colors for each point.
virtual void redrawDisplay(bool forceRedraw=true, bool only2D=false)
Redraws associated display.
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
QMultiMap< unsigned, unsigned > LoadedIDMap
Map of loaded unique IDs (old ID --> new ID)
Main application interface (for plugins)
Generic file read and write utility for python interface.