ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvDish.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 = 24;
22 
24 
34  PointCoordinateType radius2 = 0,
35  const ccGLMatrix* transMat = 0,
36  QString name = QString("Dish"),
37  unsigned precision = DEFAULT_DRAWING_PRECISION);
38 
40 
42  ccDish(QString name = QString("Dish"));
43 
45  virtual CV_CLASS_ENUM getClassID() const override { return CV_TYPES::DISH; }
46 
48  virtual QString getTypeName() const override { return "Dish"; }
49  virtual bool hasDrawingPrecision() const override { return true; }
50  virtual ccGenericPrimitive* clone() const override;
51 
53  inline PointCoordinateType getBaseRadius() const { return m_baseRadius; }
56  return m_secondRadius;
57  }
59  inline PointCoordinateType getHeight() const { return m_height; }
60 
61 protected:
62  // inherited from ccGenericPrimitive
63  bool toFile_MeOnly(QFile& out, short dataVersion) const override;
64  short minimumFileVersion_MeOnly() const override;
65  bool fromFile_MeOnly(QFile& in,
66  short dataVersion,
67  int flags,
68  LoadedIDMap& oldToNewIDMap) override;
69  virtual bool buildUp() override;
70 
77 };
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
int height
Dish.
Definition: ecvDish.h:16
bool toFile_MeOnly(QFile &out, short dataVersion) const override
Save own object data.
PointCoordinateType m_baseRadius
Base radius.
Definition: ecvDish.h:72
PointCoordinateType getSecondRadius() const
Returns the dish second radius.
Definition: ecvDish.h:55
virtual bool hasDrawingPrecision() const override
Whether drawing is dependent on 'precision' parameter.
Definition: ecvDish.h:49
ccDish(PointCoordinateType radius, PointCoordinateType height, PointCoordinateType radius2=0, const ccGLMatrix *transMat=0, QString name=QString("Dish"), unsigned precision=DEFAULT_DRAWING_PRECISION)
Default constructor.
PointCoordinateType getBaseRadius() const
Returns the dish base radius.
Definition: ecvDish.h:53
virtual bool buildUp() override
Builds primitive.
ccDish(QString name=QString("Dish"))
Simplified constructor.
virtual CV_CLASS_ENUM getClassID() const override
Returns class ID.
Definition: ecvDish.h:45
PointCoordinateType m_secondRadius
Second radius.
Definition: ecvDish.h:74
PointCoordinateType getHeight() const
Returns the dish height.
Definition: ecvDish.h:59
short minimumFileVersion_MeOnly() const override
bool fromFile_MeOnly(QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
Loads own object data.
virtual ccGenericPrimitive * clone() const override
Clones primitive.
virtual QString getTypeName() const override
inherited from ccGenericPrimitive
Definition: ecvDish.h:48
PointCoordinateType m_height
Height.
Definition: ecvDish.h:76
Float version of ccGLMatrixTpl.
Definition: ecvGLMatrix.h:19
Generic primitive interface.
QMultiMap< unsigned, unsigned > LoadedIDMap
Map of loaded unique IDs (old ID --> new ID)
@ DISH
Definition: CVTypes.h:129