/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Teigha(R) software pursuant to a license // agreement with Open Design Alliance. // Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// // RxRcsFileServices.h - interface of module that handles .rcs files #ifndef __OD_RCSFILESERVICES_MODULE__ #define __OD_RCSFILESERVICES_MODULE__ #include "RxModule.h" #include "RootExport.h" #include "TD_PackPush.h" #include "SharedPtr.h" #include "Ge/GePoint3d.h" #include "Ge/GePoint3dArray.h" #include "CmEntityColorArray.h" #include "Ge/GeVector3d.h" #include "Ge/GeMatrix3d.h" #include "Ge/GeExtents3d.h" /** Description: */ class ODRX_ABSTRACT FIRSTDLL_EXPORT OdRcsPointDataIterator { public: virtual void start() = 0; virtual bool done() const = 0; virtual OdUInt64 getPoints(OdGePoint3dArray& points, OdCmEntityColorArray& colorArray, OdUInt64 requiredQty) = 0; }; typedef OdSharedPtr OdRcsPointDataIteratorPtr; /** Description: */ class ODRX_ABSTRACT FIRSTDLL_EXPORT OdRcsVoxel { public: virtual OdRcsPointDataIteratorPtr newPointDataIterator() const = 0; virtual OdGeExtents3d getBox1() const = 0; }; typedef OdSharedPtr OdRcsVoxelPtr; /** Description: */ class ODRX_ABSTRACT FIRSTDLL_EXPORT OdRcsVoxelDataIterator { public: virtual OdRcsVoxelPtr getVoxel() = 0; virtual void start() = 0; virtual bool done() const = 0; }; typedef OdSharedPtr OdRcsVoxelDataIteratorPtr; /** Description: */ class ODRX_ABSTRACT FIRSTDLL_EXPORT OdRcsFileReader { public: virtual OdRcsVoxelDataIteratorPtr newVoxelDataIterator() const = 0; virtual OdGeVector3d getTranslation() const = 0; virtual OdGeVector3d getRotation() const = 0; virtual OdGeVector3d getScale() const = 0; virtual OdGeMatrix3d getTransformMatrix() const = 0; virtual bool hasRGB() const = 0; virtual bool hasNormals() const = 0; virtual bool hasIntensity() const = 0; virtual OdString getScanIdString() const = 0; }; typedef OdSharedPtr OdRcsFileReaderPtr; /** Description: This class is the base class for classes that provide loading point cloud data from .rcs files for Teigha Library: {group OdRx_Classes} */ class ODRX_ABSTRACT FIRSTDLL_EXPORT OdRxRcsFileServices : public OdRxModule { public: virtual OdRcsFileReaderPtr getRcsFileReader(const OdString& filePath) const = 0; }; typedef OdSmartPtr OdRxRcsFileServicesPtr; #include "TD_PackPop.h" #endif // __OD_RCSFILESERVICES_MODULE__