ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvDisc.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 // Local
11 #include "ecvGenericPrimitive.h"
12 
14 
17 public:
19 
21  static const unsigned DEFAULT_DRAWING_PRECISION = 72;
22 
24 
31  const ccGLMatrix* transMat = nullptr,
32  QString name = QString("Disc"),
33  unsigned precision = DEFAULT_DRAWING_PRECISION);
34 
36 
38  ccDisc(QString name = QString("Disc"));
39 
41  inline PointCoordinateType getRadius() const { return m_radius; }
43 
47 
49  CV_CLASS_ENUM getClassID() const override { return CV_TYPES::DISC; }
50 
51  // inherited from ccGenericPrimitive
52  QString getTypeName() const override { return "Disc"; }
53  bool hasDrawingPrecision() const override { return true; }
54  ccGenericPrimitive* clone() const override;
55 
56  // inherited from ccHObject
57  ccBBox getOwnFitBB(ccGLMatrix& trans) override;
58 
59 protected:
60  // inherited from ccGenericPrimitive
61  bool toFile_MeOnly(QFile& out, short dataVersion) const override;
62  short minimumFileVersion_MeOnly() const override;
63  bool fromFile_MeOnly(QFile& in,
64  short dataVersion,
65  int flags,
66  LoadedIDMap& oldToNewIDMap) override;
67  bool buildUp() override;
68 
71 };
float PointCoordinateType
Type of the coordinates of a (N-D) point.
Definition: CVTypes.h:16
int64_t CV_CLASS_ENUM
Type of object type flags (64 bits)
Definition: CVTypes.h:97
#define CV_DB_LIB_API
Definition: CV_db.h:15
std::string name
Bounding box structure.
Definition: ecvBBox.h:25
Disc (primitive)
Definition: ecvDisc.h:16
ccDisc(PointCoordinateType radius, const ccGLMatrix *transMat=nullptr, QString name=QString("Disc"), unsigned precision=DEFAULT_DRAWING_PRECISION)
Default constructor.
ccBBox getOwnFitBB(ccGLMatrix &trans) override
Returns best-fit bounding-box (if available)
short minimumFileVersion_MeOnly() const override
bool toFile_MeOnly(QFile &out, short dataVersion) const override
Save own object data.
PointCoordinateType getRadius() const
Returns radius.
Definition: ecvDisc.h:41
void setRadius(PointCoordinateType radius)
Sets radius.
ccGenericPrimitive * clone() const override
Clones primitive.
bool fromFile_MeOnly(QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
Loads own object data.
bool buildUp() override
Builds primitive.
QString getTypeName() const override
Returns type name (sphere, cylinder, etc.)
Definition: ecvDisc.h:52
ccDisc(QString name=QString("Disc"))
Simplified constructor.
PointCoordinateType m_radius
Radius.
Definition: ecvDisc.h:70
bool hasDrawingPrecision() const override
Whether drawing is dependent on 'precision' parameter.
Definition: ecvDisc.h:53
CV_CLASS_ENUM getClassID() const override
Returns class ID.
Definition: ecvDisc.h:49
Float version of ccGLMatrixTpl.
Definition: ecvGLMatrix.h:19
Generic primitive interface.
QMultiMap< unsigned, unsigned > LoadedIDMap
Map of loaded unique IDs (old ID --> new ID)
@ DISC
Definition: CVTypes.h:146