#include <memory>
class GeomAPI_Dir;
+class GeomAPI_XYZ;
/**\class GeomData_Dir
* \ingroup DataModel
*/
class GeomData_Dir : public GeomDataAPI_Dir
{
+ TDF_Label myLab; ///< the main label of the attribute
Handle_TDataStd_RealArray myCoords; ///< X, Y and Z doubles as real array attribute [0; 2]
public:
/// Defines the double value
GEOMDATA_EXPORT virtual double z() const;
/// Returns the direction of this attribute
GEOMDATA_EXPORT virtual std::shared_ptr<GeomAPI_Dir> dir();
+ /// Returns the coordinates of this attribute
+ GEOMDATA_EXPORT virtual std::shared_ptr<GeomAPI_XYZ> xyz();
protected:
/// Initializes attributes
GEOMDATA_EXPORT GeomData_Dir(TDF_Label& theLabel);
+ /// Reinitializes the internal state of the attribute (may be needed on undo/redo, abort, etc)
+ virtual void reinit();
friend class Model_Data;
};