1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
//##########################################################################
//# #
//# CLOUDCOMPARE #
//# #
//# This program is free software; you can redistribute it and/or modify #
//# it under the terms of the GNU General Public License as published by #
//# the Free Software Foundation; version 2 or later of the License. #
//# #
//# This program is distributed in the hope that it will be useful, #
//# but WITHOUT ANY WARRANTY; without even the implied warranty of #
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
//# GNU General Public License for more details. #
//# #
//# COPYRIGHT: EDF R&D / TELECOM ParisTech (ENST-TSI) #
//# #
//##########################################################################
#ifndef CC_BOX_PRIMITIVE_HEADER
#define CC_BOX_PRIMITIVE_HEADER
//Local
#include "ccGenericPrimitive.h"
//! Box (primitive)
/** 3D box primitive
**/
class QCC_DB_LIB_API ccBox : public ccGenericPrimitive
{
public:
//! Default constructor
/** Box dimensions axis along each dimension are defined in a single 3D vector.
A box is in fact composed of 6 planes (ccPlane).
\param dims box dimensions
\param transMat optional 3D transformation (can be set afterwards with ccDrawableObject::setGLTransformation)
\param name name
**/
ccBox( const CCVector3& dims,
const ccGLMatrix* transMat = 0,
QString name = QString("Box"));
//! Simplified constructor
/** For ccHObject factory only!
**/
ccBox(QString name = QString("Box"));
//! Returns class ID
virtual CC_CLASS_ENUM getClassID() const override { return CC_TYPES::BOX; }
//inherited from ccGenericPrimitive
virtual QString getTypeName() const override { return "Box"; }
virtual ccGenericPrimitive* clone() const override;
//! Sets box dimensions
inline void setDimensions(CCVector3& dims) { m_dims = dims; updateRepresentation(); }
//! Returns box dimensions
const CCVector3& getDimensions() const { return m_dims; }
protected:
//inherited from ccGenericPrimitive
virtual bool toFile_MeOnly(QFile& out) const override;
virtual bool fromFile_MeOnly(QFile& in, short dataVersion, int flags) override;
virtual bool buildUp() override;
//! Box dimensions
CCVector3 m_dims;
};
#endif //CC_BOX_PRIMITIVE_HEADER
|