ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvBox.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 
24  ccBox(const CCVector3& dims,
25  const ccGLMatrix* transMat = nullptr,
26  QString name = QString("Box"));
27 
29 
31  ccBox(QString name = QString("Box"));
32 
34  virtual CV_CLASS_ENUM getClassID() const override { return CV_TYPES::BOX; }
35 
36  // inherited from ccGenericPrimitive
37  virtual QString getTypeName() const override { return "Box"; }
38  virtual ccGenericPrimitive* clone() const override;
39 
41  inline void setDimensions(CCVector3& dims) {
42  m_dims = dims;
44  }
45 
47  const CCVector3& getDimensions() const { return m_dims; }
48 
49 protected:
50  // inherited from ccGenericPrimitive
51  bool toFile_MeOnly(QFile& out, short dataVersion) const override;
52  short minimumFileVersion_MeOnly() const override;
53  bool fromFile_MeOnly(QFile& in,
54  short dataVersion,
55  int flags,
56  LoadedIDMap& oldToNewIDMap) override;
57  virtual bool buildUp() override;
58 
61 };
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
Box (primitive)
Definition: ecvBox.h:16
virtual CV_CLASS_ENUM getClassID() const override
Returns class ID.
Definition: ecvBox.h:34
virtual ccGenericPrimitive * clone() const override
Clones primitive.
ccBox(const CCVector3 &dims, const ccGLMatrix *transMat=nullptr, QString name=QString("Box"))
Default constructor.
bool fromFile_MeOnly(QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
Loads own object data.
CCVector3 m_dims
Box dimensions.
Definition: ecvBox.h:60
const CCVector3 & getDimensions() const
Returns box dimensions.
Definition: ecvBox.h:47
short minimumFileVersion_MeOnly() const override
virtual QString getTypeName() const override
Returns type name (sphere, cylinder, etc.)
Definition: ecvBox.h:37
void setDimensions(CCVector3 &dims)
Sets box dimensions.
Definition: ecvBox.h:41
virtual bool buildUp() override
Builds primitive.
bool toFile_MeOnly(QFile &out, short dataVersion) const override
Save own object data.
ccBox(QString name=QString("Box"))
Simplified constructor.
Float version of ccGLMatrixTpl.
Definition: ecvGLMatrix.h:19
Generic primitive interface.
virtual bool updateRepresentation()
Updates internal representation (as a mesh)
QMultiMap< unsigned, unsigned > LoadedIDMap
Map of loaded unique IDs (old ID --> new ID)