/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, 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 Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef __DG_FEATURESOLIDNODE_H__ #define __DG_FEATURESOLIDNODE_H__ #include "TD_PackPush.h" #define STL_USING_MAP #include "OdaSTL.h" //------------------------------------------------------------------------------------ class OdDgFeatureSolid; typedef OdSmartPtr OdDgFeatureSolidPtr; class OdDgFeatureSolidNode; typedef OdSmartPtr OdDgFeatureSolidNodePtr; class OdDgFeatureSolidParameter; typedef OdSmartPtr OdDgFeatureSolidParameterPtr; class OdDgFeatureSolidVariable; typedef OdSmartPtr OdDgFeatureSolidVariablePtr; class OdDgFeatureSolidProfileParameter; typedef OdSmartPtr OdDgFeatureSolidProfileParameterPtr; class OdDgFeatureSolidMarker; typedef OdSmartPtr OdDgFeatureSolidMarkerPtr; class OdDgFeatureSolidBodyMarker; typedef OdSmartPtr OdDgFeatureSolidBodyMarkerPtr; class OdDgFeatureSolidFaceMarker; typedef OdSmartPtr OdDgFeatureSolidFaceMarkerPtr; class OdDgFeatureSolidEdgeMarker; typedef OdSmartPtr OdDgFeatureSolidEdgeMarkerPtr; class OdDgFeatureSolidVertexMarker; typedef OdSmartPtr OdDgFeatureSolidVertexMarkerPtr; class OdDgFeatureSolidProfile; typedef OdSmartPtr OdDgFeatureSolidProfilePtr; //============================================================================== class OdDgFeatureSolidProxyNode; typedef OdSmartPtr OdDgFeatureSolidProxyNodePtr; class OdDgFeatureSolidConeNode; typedef OdSmartPtr OdDgFeatureSolidConeNodePtr; class OdDgFeatureSolidSphereNode; typedef OdSmartPtr OdDgFeatureSolidSphereNodePtr; class OdDgFeatureSolidSlabNode; typedef OdSmartPtr OdDgFeatureSolidSlabNodePtr; class OdDgFeatureSolidTorusNode; typedef OdSmartPtr OdDgFeatureSolidTorusNodePtr; class OdDgFeatureSolidWedgeNode; typedef OdSmartPtr OdDgFeatureSolidWedgeNodePtr; class OdDgFeatureSolidUnionNode; typedef OdSmartPtr OdDgFeatureSolidUnionNodePtr; class OdDgFeatureSolidSmartSolidNode; typedef OdSmartPtr OdDgFeatureSolidSmartSolidNodePtr; class OdDgFeatureSolidIntersectNode; typedef OdSmartPtr OdDgFeatureSolidIntersectNodePtr; class OdDgFeatureSolidSubtractNode; typedef OdSmartPtr OdDgFeatureSolidSubtractNodePtr; class OdDgFeatureSolidExtrudeNode; typedef OdSmartPtr OdDgFeatureSolidExtrudeNodePtr; class OdDgFeatureSolidRevolveNode; typedef OdSmartPtr OdDgFeatureSolidRevolveNodePtr; class OdDgFeatureSolidTubeNode; typedef OdSmartPtr OdDgFeatureSolidTubeNodePtr; class OdDgFeatureSolidSheetNode; typedef OdSmartPtr OdDgFeatureSolidSheetNodePtr; class OdDgFeatureSolidWireNode; typedef OdSmartPtr OdDgFeatureSolidWireNodePtr; class OdDgFeatureSolidSkinNode; typedef OdSmartPtr OdDgFeatureSolidSkinNodePtr; class OdDgFeatureSolidHelixNode; typedef OdSmartPtr OdDgFeatureSolidHelixNodePtr; class OdDgFeatureSolidThicknessNode; typedef OdSmartPtr OdDgFeatureSolidThicknessNodePtr; class OdDgFeatureSolidTaperFaceNode; typedef OdSmartPtr OdDgFeatureSolidTaperFaceNodePtr; class OdDgFeatureSolidExtendFaceNode; typedef OdSmartPtr OdDgFeatureSolidExtendFaceNodePtr; class OdDgFeatureSolidSpinFaceNode; typedef OdSmartPtr OdDgFeatureSolidSpinFaceNodePtr; class OdDgFeatureSolidRemoveFaceNode; typedef OdSmartPtr OdDgFeatureSolidRemoveFaceNodePtr; class OdDgFeatureSolidReplaceSurfaceNode; typedef OdSmartPtr OdDgFeatureSolidReplaceSurfaceNodePtr; class OdDgFeatureSolidBlendEdgeNode; typedef OdSmartPtr OdDgFeatureSolidBlendEdgeNodePtr; class OdDgFeatureSolidBlendVertexNode; typedef OdSmartPtr OdDgFeatureSolidBlendVertexNodePtr; class OdDgFeatureSolidBlendFacesNode; typedef OdSmartPtr OdDgFeatureSolidBlendFacesNodePtr; class OdDgFeatureSolidChamferNode; typedef OdSmartPtr OdDgFeatureSolidChamferNodePtr; class OdDgFeatureSolidHoleNode; typedef OdSmartPtr OdDgFeatureSolidHoleNodePtr; class OdDgFeatureSolidBossNode; typedef OdSmartPtr OdDgFeatureSolidBossNodePtr; class OdDgFeatureSolidCutNode; typedef OdSmartPtr OdDgFeatureSolidCutNodePtr; class OdDgFeatureSolidProtrusionNode; typedef OdSmartPtr OdDgFeatureSolidProtrusionNodePtr; class OdDgFeatureSolidSweepEdgeNode; typedef OdSmartPtr OdDgFeatureSolidSweepEdgeNodePtr; class OdDgFeatureSolidRibNode; typedef OdSmartPtr OdDgFeatureSolidRibNodePtr; class OdDgFeatureSolidThinShellNode; typedef OdSmartPtr OdDgFeatureSolidThinShellNodePtr; class OdDgFeatureSolidArrayNode; typedef OdSmartPtr OdDgFeatureSolidArrayNodePtr; /** \details Corresponding C++ library: TG_Db */ //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidParameter : public OdRxObject { public: enum OdDgFeatureSolidParamType { kFeatureSolidVariable = 0, kFeatureSolidProfileParameter = 1 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidParameter); virtual OdDgFeatureSolidParameter::OdDgFeatureSolidParamType getType() const = 0; static OdDgFeatureSolidParameterPtr createObject(OdDgFeatureSolidParameter::OdDgFeatureSolidParamType uType); }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidVariable : public OdDgFeatureSolidParameter { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidVariable); virtual OdString getName() const = 0; virtual void setName(const OdString& strName) = 0; virtual OdString getExpression() const = 0; virtual void setExpression(const OdString& strExpression) = 0; virtual double getValue() const = 0; virtual void setValue(double dValue) = 0; virtual void scale(double dScale) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidProfileParameter : public OdDgFeatureSolidParameter { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidProfileParameter); virtual OdString getExpression() const = 0; virtual void setExpression(const OdString& strExpression) = 0; virtual OdUInt32 getProfileIndex() const = 0; virtual void setProfileIndex(OdUInt32 uIndex) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidMarker : public OdRxObject { public: enum OdDgFeatureSolidMarkerType { kFeatureSolidBodyMarker = 0, kFeatureSolidFaceMarker = 1, kFeatureSolidEdgeMarker = 2, kFeatureSolidVertexMarker = 3 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidMarker); virtual OdDgFeatureSolidMarker::OdDgFeatureSolidMarkerType getType() const = 0; static OdDgFeatureSolidMarkerPtr createObject(OdDgFeatureSolidMarker::OdDgFeatureSolidMarkerType uType); }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidBodyMarker : public OdDgFeatureSolidMarker { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidBodyMarker); virtual OdUInt32 getNode() const = 0; virtual void setNode(OdUInt32 uNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidFaceMarker : public OdDgFeatureSolidMarker { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidFaceMarker); virtual double getUParam() const = 0; virtual void setUParam(double dParam) = 0; virtual double getVParam() const = 0; virtual void setVParam(double dParam) = 0; virtual OdUInt32 getNode() const = 0; virtual void setNode(OdUInt32 uNode) = 0; virtual OdUInt32 getFace() const = 0; virtual void setFace(OdUInt32 uFace) = 0; virtual OdUInt32 getSourceIndex() const = 0; virtual void setSourceIndex(OdUInt32 uSourceIndex) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidEdgeMarker : public OdDgFeatureSolidMarker { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidEdgeMarker); virtual double getParam() const = 0; virtual void setParam(double dParam) = 0; virtual OdUInt32 getNode1() const = 0; virtual void setNode1(OdUInt32 uNode1) = 0; virtual OdUInt32 getFace1() const = 0; virtual void setFace1(OdUInt32 uFace1) = 0; virtual OdUInt32 getNode2() const = 0; virtual void setNode2(OdUInt32 uNode2) = 0; virtual OdUInt32 getFace2() const = 0; virtual void setFace2(OdUInt32 uFace2) = 0; virtual OdUInt32 getSourceIndex() const = 0; virtual void setSourceIndex(OdUInt32 uSourceIndex) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidVertexMarker : public OdDgFeatureSolidMarker { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidVertexMarker); virtual OdUInt32 getNode1() const = 0; virtual void setNode1(OdUInt32 uNode1) = 0; virtual OdUInt32 getFace1() const = 0; virtual void setFace1(OdUInt32 uFace1) = 0; virtual OdUInt32 getNode2() const = 0; virtual void setNode2(OdUInt32 uNode2) = 0; virtual OdUInt32 getFace2() const = 0; virtual void setFace2(OdUInt32 uFace2) = 0; virtual OdUInt32 getNode3() const = 0; virtual void setNode3(OdUInt32 uNode3) = 0; virtual OdUInt32 getFace3() const = 0; virtual void setFace3(OdUInt32 uFace3) = 0; virtual OdUInt32 getSourceIndex() const = 0; virtual void setSourceIndex(OdUInt32 uSourceIndex) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidProfile : public OdRxObject { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidProfile); virtual OdUInt32 getProfileIndex() const = 0; virtual void setProfileIndex(OdUInt32 uIndex) = 0; virtual OdUInt32 getParamCount() const = 0; virtual double getParam(OdUInt32 uIndex) = 0; virtual void setParam(OdUInt32 uIndex, double dParam) = 0; virtual void addParam(double dParam) = 0; virtual void deleteParam(OdUInt32 uIndex) = 0; virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile ) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidNode : public OdDgElement { public: enum OdDgFeatureSolidNodeType { kProxy = 0, kSlab = 1, kSphere = 2, kCone = 3, kTorus = 4, kWedge = 5, kSmartSolid = 6, kUnion = 7, kSubtract = 8, kIntersect = 9, kExtrude = 10, kRevolve = 11, kTube = 12, kSheet = 13, kWire = 14, kSkin = 15, kHelix = 16, kThickness = 17, kTaperFace = 18, kExtendFace = 19, kSpinFace = 20, kRemoveFace = 21, kReplaceSurface = 22, kBlendEdge = 23, kBlendVertex = 24, kBlendFaces = 25, kChamfer = 26, kHole = 27, kBoss = 28, kCut = 29, kProtrusion = 30, kSweepEdge = 31, kRib = 32, kThinShell = 33, kArray = 34 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidNode); virtual OdDgFeatureSolidNodeType getType() const = 0; virtual OdUInt32 getVersion() const = 0; virtual void setVersion(OdUInt32 uVersion) = 0; virtual OdUInt32 getBodyIndex() const = 0; virtual void setBodyIndex(OdUInt32 uIndex) = 0; virtual OdUInt32 getNodeIndex() const = 0; virtual void setNodeIndex(OdUInt32 uIndex) = 0; virtual OdDgElementId getFeatureNodeCellId() const = 0; virtual OdDgElementId getFeatureSolidId() const = 0; virtual OdDgElementId getParentNodeId() const = 0; virtual bool isFeatureSolidBase() const = 0; virtual bool isValid() const = 0; virtual bool isModified() const = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidProxyNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidProxyNode); virtual OdString getFeatureName() const = 0; virtual void setFeatureName(const OdString& strName) = 0; virtual OdGePoint3d getProfileOrigin() const = 0; virtual void setProfileOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getProfileTransformation() const = 0; virtual void setProfileTransformation(const OdGeMatrix3d& matTransform) = 0; virtual OdGePoint3d getFeatureOrigin() const = 0; virtual void setFeatureOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getFeatureTransformation() const = 0; virtual void setFeatureTransformation(const OdGeMatrix3d& matTransform) = 0; virtual OdUInt32 getParamCount() const = 0; virtual OdDgFeatureSolidParameterPtr getParam(OdUInt32 uIndex) const = 0; virtual OdDgFeatureSolidParameterPtr getParam(const OdString& strParamName) const = 0; virtual void setParam(OdUInt32 uIndex, const OdDgFeatureSolidParameter* pParam) = 0; virtual void addParam(const OdDgFeatureSolidParameter* pParam) = 0; virtual void deleteParam(OdUInt32 uIndex) = 0; virtual OdUInt32 getControlPointCount() const = 0; virtual OdGePoint3d getControlPoint(OdUInt32 uIndex) const = 0; virtual void setControlPoint(OdUInt32 uIndex, const OdGePoint3d& ptCtrl) = 0; virtual void addControlPoint(const OdGePoint3d& ptCtrl) = 0; virtual void deleteControlPoint(OdUInt32 uIndex) = 0; virtual OdUInt32 getMarkerCount() const = 0; virtual OdDgFeatureSolidMarkerPtr getMarker(OdUInt32 uIndex) const = 0; virtual void setMarker(OdUInt32 uIndex, const OdDgFeatureSolidMarker* pMarker) = 0; virtual void addMarker(const OdDgFeatureSolidParameter* pMarker) = 0; virtual void deleteMarker(OdUInt32 uIndex) = 0; virtual OdDgFeatureSolidProfilePtr getProfile() const = 0; virtual void setProfile(const OdDgFeatureSolidProfile* pProfile) = 0; virtual bool getFeatureFlags(OdUInt32& uIndex, OdUInt64& uFlags) const = 0; virtual bool getFeatureOptions(OdUInt32& uFlags0, OdUInt64& uFlags1) const = 0; virtual bool getFeatureCurve(OdUInt32& uFlags0, OdUInt32& uFlags1, OdUInt32& uCurveIndex) const = 0; virtual void setFeatureFlags(OdUInt32 uIndex, OdUInt64 uFlags) = 0; virtual void setFeatureOptions(OdUInt32 uFlags0, OdUInt64 uFlags1) = 0; virtual void setFeatureCurve(OdUInt32 uFlags0, OdUInt32 uFlags1, OdUInt32 uCurveIndex) = 0; virtual OdUInt32 getChildrenNodeIdCount() const = 0; virtual OdDgElementId getChildNodeId(OdUInt32 uIndex) const = 0; virtual void setChildNodeId(OdUInt32 uIndex, const OdDgElementId& idNode) = 0; virtual void addChildNodeId(const OdDgElementId& idNode) = 0; virtual void deleteChildNodeId(OdUInt32 uIndex) = 0; virtual OdUInt32 getChildrenFeatureSolidIdCount() const = 0; virtual OdDgElementId getChildFeatureSolidId(OdUInt32 uIndex) const = 0; virtual void setChildFeatureSolidId(OdUInt32 uIndex, const OdDgElementId& idSolid) = 0; virtual void addChildFeatureSolidId(const OdDgElementId& idSolid) = 0; virtual void deleteChildFeatureSolidId(OdUInt32 uIndex) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidConeNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidConeNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual double getTopRadius() const = 0; virtual void setTopRadius(double dRadius) = 0; virtual double getBaseRadius() const = 0; virtual void setBaseRadius(double dRadius) = 0; virtual double getHeight() const = 0; virtual void setHeight(double dHeight) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getTopRadiusVariable() const = 0; virtual void setTopRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getBaseRadiusVariable() const = 0; virtual void setBaseRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getHeightVariable() const = 0; virtual void setHeightVariable(const OdDgFeatureSolidVariable* varHeight) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidSphereNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidSphereNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual double getRadius() const = 0; virtual void setRadius(double dRadius) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getRadiusVariable() const = 0; virtual void setRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidSlabNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidSlabNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual double getLength() const = 0; virtual void setLength(double dLength) = 0; virtual double getWidth() const = 0; virtual void setWidth(double dWidth) = 0; virtual double getHeight() const = 0; virtual void setHeight(double dHeight) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getLengthVariable() const = 0; virtual void setLengthVariable(const OdDgFeatureSolidVariable* varLength) = 0; virtual OdDgFeatureSolidVariablePtr getWidthVariable() const = 0; virtual void setWidthVariable(const OdDgFeatureSolidVariable* varWidth) = 0; virtual OdDgFeatureSolidVariablePtr getHeightVariable() const = 0; virtual void setHeightVariable(const OdDgFeatureSolidVariable* varHeight) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidTorusNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidTorusNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual double getBaseRadius() const = 0; virtual void setBaseRadius(double dRadius) = 0; virtual double getSideRadius() const = 0; virtual void setSideRadius(double dRadius) = 0; virtual double getAngle() const = 0; virtual void setAngle(double dAngle) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getBaseRadiusVariable() const = 0; virtual void setBaseRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getSideRadiusVariable() const = 0; virtual void setSideRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getAngleVariable() const = 0; virtual void setAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidWedgeNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidWedgeNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual double getRadius() const = 0; virtual void setRadius(double dRadius) = 0; virtual double getHeight() const = 0; virtual void setHeight(double dHeight) = 0; virtual double getAngle() const = 0; virtual void setAngle(double dAngle) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getRadiusVariable() const = 0; virtual void setRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getHeightVariable() const = 0; virtual void setHeightVariable(const OdDgFeatureSolidVariable* varHeight) = 0; virtual OdDgFeatureSolidVariablePtr getAngleVariable() const = 0; virtual void setAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidSmartSolidNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidSmartSolidNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual OdDgElementId getSmartSolidProfileId() const = 0; virtual void setSmartSolidProfileId(const OdDgElementId& idSmartSolidProfile) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidUnionNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidUnionNode); // Operands virtual OdUInt32 getOperandIdCount() const = 0; virtual OdDgElementId getOperandId(OdUInt32 uIndex) const = 0; virtual void setOperandId(OdUInt32 uIndex, const OdDgElementId& idFeatureSolid) = 0; virtual void addOperandId(const OdDgElementId& idFeatureSolid) = 0; virtual void deleteOperandId(OdUInt32 uIndex) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidIntersectNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidIntersectNode); // Operands virtual OdUInt32 getOperandIdCount() const = 0; virtual OdDgElementId getOperandId(OdUInt32 uIndex) const = 0; virtual void setOperandId(OdUInt32 uIndex, const OdDgElementId& idFeatureSolid) = 0; virtual void addOperandId(const OdDgElementId& idFeatureSolid) = 0; virtual void deleteOperandId(OdUInt32 uIndex) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidSubtractNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidSubtractNode); // Base solid point virtual OdGePoint3d getPickPoint() const = 0; virtual void setPickPoint(const OdGePoint3d& ptPickPoint) = 0; // Operands virtual OdUInt32 getOperandIdCount() const = 0; virtual OdDgElementId getOperandId(OdUInt32 uIndex) const = 0; virtual void setOperandId(OdUInt32 uIndex, const OdDgElementId& idFeatureSolid) = 0; virtual void addOperandId(const OdDgElementId& idFeatureSolid) = 0; virtual void deleteOperandId(OdUInt32 uIndex) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidExtrudeNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidExtrudeNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual double getDistance() const = 0; virtual void setDistance(double dDistance) = 0; virtual double getDraftAngle() const = 0; virtual void setDraftAngle(double dAngle) = 0; virtual double getThickness() const = 0; virtual void setThickness(double dThickness) = 0; virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getDistanceVariable() const = 0; virtual void setDistanceVariable(const OdDgFeatureSolidVariable* varDistance) = 0; virtual OdDgFeatureSolidVariablePtr getThicknessVariable() const = 0; virtual void setThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; virtual OdDgFeatureSolidVariablePtr getDraftAngleVariable() const = 0; virtual void setDraftAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidRevolveNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidRevolveNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Base point virtual OdGePoint3d getPickPoint() const = 0; virtual void setPickPoint(const OdGePoint3d& ptPickPoint) = 0; // Simple parameter access virtual double getRadius() const = 0; virtual void setRadius(double dRadius) = 0; virtual double getAngle() const = 0; virtual void setAngle(double dAngle) = 0; virtual double getThickness() const = 0; virtual void setThickness(double dThickness) = 0; virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getRadiusVariable() const = 0; virtual void setRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getThicknessVariable() const = 0; virtual void setThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; virtual OdDgFeatureSolidVariablePtr getAngleVariable() const = 0; virtual void setAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidTubeNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidTubeNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual double getThickness() const = 0; virtual void setThickness(double dThickness) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getThicknessVariable() const = 0; virtual void setThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; // Child nodes virtual OdDgElementId getSheetFeatureSolidId() const = 0; virtual void setSheetFeatureSolidId(const OdDgElementId& idShellSolid) = 0; virtual OdDgElementId getWireFeatureSolidId() const = 0; virtual void setWireFeatureSolidId(const OdDgElementId& idWireSolid) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidSheetNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidSheetNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Edge marker virtual OdDgFeatureSolidEdgeMarkerPtr getEdgeMarker() const = 0; virtual void setEdgeMarker(OdDgFeatureSolidEdgeMarker* pMarker) = 0; // Simple parameter access virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidWireNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidWireNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Edge marker virtual OdDgFeatureSolidEdgeMarkerPtr getEdgeMarker() const = 0; virtual void setEdgeMarker(OdDgFeatureSolidEdgeMarker* pMarker) = 0; // Simple parameter access virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidSkinNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidSkinNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual double getThickness() const = 0; virtual void setThickness(double dThickness) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getThicknessVariable() const = 0; virtual void setThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; // Options virtual bool getReparameterizeCurveFlag() const = 0; virtual void setReparameterizeCurveFlag(bool bSet) = 0; // Child nodess virtual OdUInt32 getProfileSolidIdCount() const = 0; virtual OdDgElementId getProfileSolidId(OdUInt32 uIndex) const = 0; virtual void setProfileSolidId(OdUInt32 uIndex, const OdDgElementId& idFeatureSolid) = 0; virtual void addProfileSolidId(const OdDgElementId& idFeatureSolid) = 0; virtual void deleteProfileSolidId(OdUInt32 uIndex) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidHelixNode : public OdDgFeatureSolidNode { public: enum OdDgFetureSolidHelixThreadType { kLeft = 0, kRight = 1 }; enum OdDgFetureSolidHelixPitchType { kVarying = 0, kConstant = 1 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidHelixNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Points virtual OdGeVector3d getProfileXAxis() const = 0; virtual void setProfileXAxis(const OdGeVector3d& vrDir) = 0; virtual OdGeVector3d getProfileYAxis() const = 0; virtual void setProfileYAxis(const OdGeVector3d& vrDir) = 0; // Simple parameter access virtual double getTopRadius() const = 0; virtual void setTopRadius(double dRadius) = 0; virtual double getBottomRadius() const = 0; virtual void setBottomRadius(double dRadius) = 0; virtual double getHeight() const = 0; virtual void setHeight(double dHeight) = 0; virtual double getHelicalPitch() const = 0; virtual void setHelicalPitch(double dPitch) = 0; virtual double getTolerance() const = 0; virtual void setTolerance(double dTolerance) = 0; virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getTopRadiusVariable() const = 0; virtual void setTopRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getBottomRadiusVariable() const = 0; virtual void setBottomRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getHeightVariable() const = 0; virtual void setHeightVariable(const OdDgFeatureSolidVariable* varHeight) = 0; virtual OdDgFeatureSolidVariablePtr getHelicalPitchVariable() const = 0; virtual void setHelicalPitchVariable(const OdDgFeatureSolidVariable* varPitch) = 0; virtual OdDgFeatureSolidVariablePtr getToleranceVariable() const = 0; virtual void setToleranceVariable(const OdDgFeatureSolidVariable* varTolerance) = 0; // Options virtual OdDgFetureSolidHelixThreadType getThreadType() const = 0; virtual void setThreadType( OdDgFetureSolidHelixThreadType uType) = 0; virtual OdDgFetureSolidHelixPitchType getPitchType() const = 0; virtual void setPitchType(OdDgFetureSolidHelixPitchType uType) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidThicknessNode : public OdDgFeatureSolidNode { public: enum OdDgFeatureSolidThicknessApplyToType { kSideOne = 0, kSideTwo = 1, kBothSides = 2 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidThicknessNode); // Simple parameter access virtual double getThickness() const = 0; virtual void setThickness(double dThickness) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getThicknessVariable() const = 0; virtual void setThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; // Options virtual OdDgFeatureSolidThicknessNode::OdDgFeatureSolidThicknessApplyToType getApplyToType() const = 0; virtual void setApplyToType(OdDgFeatureSolidThicknessNode::OdDgFeatureSolidThicknessApplyToType uType) = 0; // Child nodess virtual OdDgElementId getProfileNodeId() const = 0; virtual void setProfileNodeId(const OdDgElementId& idFeatureNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidTaperFaceNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidTaperFaceNode); // Simple parameter access virtual double getDraftAngle() const = 0; virtual void setDraftAngle(double dAngle) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getDraftAngleVariable() const = 0; virtual void setDraftAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; // Points virtual OdGeVector3d getDirection() const = 0; virtual void setDirection(const OdGeVector3d& vrDir) = 0; // Options virtual bool getSmoothFacesFlag() const = 0; virtual void setSmoothFacesFlag(bool bSet) = 0; // Markers virtual OdDgFeatureSolidEdgeMarkerPtr getEdgeMarker() const = 0; virtual void setEdgeMarker(const OdDgFeatureSolidEdgeMarker* pEdgeMarker) = 0; virtual OdUInt32 getFaceMarkerCount() const = 0; virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker(OdUInt32 uIndex) const = 0; virtual void setFaceMarker(OdUInt32 uIndex, OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void addFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void deleteFaceMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidExtendFaceNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidExtendFaceNode); // Simple parameter access virtual double getDistance() const = 0; virtual void setDistance(double dDistance) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getDistanceVariable() const = 0; virtual void setDistanceVariable(const OdDgFeatureSolidVariable* varDistance) = 0; // Options virtual bool getOffsetFaceFlag() const = 0; virtual void setOffsetFaceFlag(bool bSet) = 0; virtual bool getShowOriginalFacePositionsFlag() const = 0; virtual void setShowOriginalFacePositionsFlag(bool bSet) = 0; // Markers virtual OdUInt32 getFaceMarkerCount() const = 0; virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker(OdUInt32 uIndex) const = 0; virtual void setFaceMarker(OdUInt32 uIndex, OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void addFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void deleteFaceMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidSpinFaceNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidSpinFaceNode); // Simple parameter access virtual double getAngle() const = 0; virtual void setAngle(double dAngle) = 0; virtual double getRadius() const = 0; virtual void setRadius(double dAngle) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getAngleVariable() const = 0; virtual void setAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getRadiusVariable() const = 0; virtual void setRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; // Points virtual OdGeVector3d getDirection() const = 0; virtual void setDirection(const OdGeVector3d& vrDir) = 0; // Options virtual bool getShowOriginFacePositionFlag() const = 0; virtual void setShowOriginFacePositionFlag(bool bSet) = 0; // Markers virtual OdDgFeatureSolidEdgeMarkerPtr getEdgeMarker() const = 0; virtual void setEdgeMarker(const OdDgFeatureSolidEdgeMarker* pEdgeMarker) = 0; virtual OdUInt32 getFaceMarkerCount() const = 0; virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker(OdUInt32 uIndex) const = 0; virtual void setFaceMarker(OdUInt32 uIndex, OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void addFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void deleteFaceMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidRemoveFaceNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidRemoveFaceNode); // Options virtual bool getAddConnectedFacesFlag() const = 0; virtual void setAddConnectedFacesFlag(bool bSet) = 0; // Markers virtual OdUInt32 getFaceMarkerCount() const = 0; virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker(OdUInt32 uIndex) const = 0; virtual void setFaceMarker(OdUInt32 uIndex, OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void addFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void deleteFaceMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidReplaceSurfaceNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidReplaceSurfaceNode); // Options virtual bool getUseExistingFaceFlag() const = 0; virtual void setUseExistingFaceFlag(bool bSet) = 0; // Transformation virtual OdGePoint3d getProfileOrigin() const = 0; virtual void setProfileOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getProfileTransformation() const = 0; virtual void setProfileTransformation(const OdGeMatrix3d& matTransform) = 0; // Profile virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile) = 0; // Markers virtual OdUInt32 getFaceMarkerCount() const = 0; virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker(OdUInt32 uIndex) const = 0; virtual void setFaceMarker(OdUInt32 uIndex, OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void addFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void deleteFaceMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidBlendEdgeNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidBlendEdgeNode); // Simple parameter access virtual double getStartRadius() const = 0; virtual void setStartRadius(double dRadius) = 0; virtual double getEndRadius() const = 0; virtual void setEndRadius(double dRadius) = 0; virtual double getPointRadius() const = 0; virtual void setPointRadius(double dRadius) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getStartRadiusVariable() const = 0; virtual void setStartRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getEndRadiusVariable() const = 0; virtual void setEndRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getPointRadiusVariable() const = 0; virtual void setPointRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; // Options virtual bool getSmoothTransitionFlag() const = 0; virtual void setSmoothTransitionFlag(bool bSet) = 0; virtual bool getSmoothVertexFlag() const = 0; virtual void setSmoothVertexFlag(bool bSet) = 0; virtual bool getAddSmoothEdgesFlag() const = 0; virtual void setAddSmoothEdgesFlag(bool bSet) = 0; // Markers virtual OdDgFeatureSolidEdgeMarkerPtr getPointEdgeMarker() const = 0; virtual void setPointEdgeMarker(const OdDgFeatureSolidEdgeMarker* pMarker) = 0; virtual OdUInt32 getEdgeMarkerCount() const = 0; virtual OdDgFeatureSolidEdgeMarkerPtr getEdgeMarker(OdUInt32 uIndex) const = 0; virtual void setEdgeMarker(OdUInt32 uIndex, OdDgFeatureSolidEdgeMarker* pEdgeMarker) = 0; virtual void addEdgeMarker(OdDgFeatureSolidEdgeMarker* pEdgeMarker) = 0; virtual void deleteEdgeMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidBlendVertexNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidBlendVertexNode); // Simple parameter access virtual double getRadius() const = 0; virtual void setRadius(double dRadius) = 0; virtual double getSetBack() const = 0; virtual void setSetBack(double dValue) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getRadiusVariable() const = 0; virtual void setRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getSetBackVariable() const = 0; virtual void setSetBackVariable(const OdDgFeatureSolidVariable* varValue) = 0; // Markers virtual OdUInt32 getVertexMarkerCount() const = 0; virtual OdDgFeatureSolidVertexMarkerPtr getVertexMarker(OdUInt32 uIndex) const = 0; virtual void setVertexMarker(OdUInt32 uIndex, OdDgFeatureSolidVertexMarker* pVertexMarker) = 0; virtual void addVertexMarker(OdDgFeatureSolidVertexMarker* pVertexMarker) = 0; virtual void deleteVertexMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidBlendFacesNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidBlendFacesNode); // Simple parameter access virtual double getRadius() const = 0; virtual void setRadius(double dRadius) = 0; virtual double getWidth() const = 0; virtual void setWidth(double dWidth) = 0; virtual double getRatio() const = 0; virtual void setRatio(double dRatio) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getRadiusVariable() const = 0; virtual void setRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getWidthVariable() const = 0; virtual void setWidthVariable(const OdDgFeatureSolidVariable* varWidth) = 0; virtual OdDgFeatureSolidVariablePtr getRatioVariable() const = 0; virtual void setRatioVariable(const OdDgFeatureSolidVariable* varRatio) = 0; virtual bool getConstantWidthMode() const = 0; virtual void setConstantWidthMode(bool bSet) = 0; // Markers virtual OdUInt32 getFaceMarkerCount() const = 0; virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker(OdUInt32 uIndex) const = 0; virtual void setFaceMarker(OdUInt32 uIndex, OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void addFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void deleteFaceMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidChamferNode : public OdDgFeatureSolidNode { public: enum OdDgFeatureSolidChamferMode { kChamferLength = 0, kDistances = 1, kDistanceAngle = 2 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidChamferNode); // Simple parameter access virtual double getLength() const = 0; virtual void setLength(double dLength) = 0; virtual double getDistance() const = 0; virtual void setDistance(double dDistance) = 0; virtual double getDistance2() const = 0; virtual void setDistance2(double dDistance) = 0; virtual double getAngle() const = 0; virtual void setAngle(double dRadius) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getLengthVariable() const = 0; virtual void setLengthVariable(const OdDgFeatureSolidVariable* varLength) = 0; virtual OdDgFeatureSolidVariablePtr getDistanceVariable() const = 0; virtual void setDistanceVariable(const OdDgFeatureSolidVariable* varDistance) = 0; virtual OdDgFeatureSolidVariablePtr getDistance2Variable() const = 0; virtual void setDistance2Variable(const OdDgFeatureSolidVariable* varDistance) = 0; virtual OdDgFeatureSolidVariablePtr getAngleVariable() const = 0; virtual void setAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; // Options virtual OdDgFeatureSolidChamferMode getMode() const = 0; virtual void setMode(OdDgFeatureSolidChamferMode uMode) = 0; virtual bool getAddSmoothEdgesFlag() const = 0; virtual void setAddSmoothEdgesFlag(bool bSet) = 0; virtual bool getReverseChamferFlag() const = 0; virtual void setReverseChamferFlag(bool bSet) = 0; // Markers virtual OdUInt32 getEdgeMarkerCount() const = 0; virtual OdDgFeatureSolidEdgeMarkerPtr getEdgeMarker(OdUInt32 uIndex) const = 0; virtual void setEdgeMarker(OdUInt32 uIndex, OdDgFeatureSolidEdgeMarker* pEdgeMarker) = 0; virtual void addEdgeMarker(OdDgFeatureSolidEdgeMarker* pEdgeMarker) = 0; virtual void deleteEdgeMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidHoleNode : public OdDgFeatureSolidNode { public: enum OdDgFeatureSolidHoleType { kSimple = 0, kCounterbore = 1, kCountersink = 2 }; enum OdDgFeatureSolidHoleDrillType { kThrough = 0, kBlind = 1, kNextFace = 2 }; enum OdDgFeatureSolidHoleCounterType { kFirstFace = 0, kLastFace = 1, kBothFaces = 2 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidHoleNode); // Simple parameter access virtual double getDiameter() const = 0; virtual void setDiameter(double dDiameter) = 0; virtual double getDraftAngle() const = 0; virtual void setDraftAngle(double dAngle) = 0; virtual double getDepth() const = 0; virtual void setDepth(double dDepth) = 0; virtual double getDrillAngle() const = 0; virtual void setDrillAngle(double dDrillAngle) = 0; virtual double getCounterDiameter() const = 0; virtual void setCounterDiameter(double dDiameter) = 0; virtual double getCounterDepth() const = 0; virtual void setCounterDepth(double dDepth) = 0; virtual double getCounterAngle() const = 0; virtual void setCounterAngle(double dAngle) = 0; virtual double getThreadDiameter() const = 0; virtual void setThreadDiameter(double dDiameter) = 0; virtual double getThreadDepth() const = 0; virtual void setThreadDepth(double dDepth) = 0; virtual double getThreadPitch() const = 0; virtual void setThreadPitch(double dPitch) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getDiameterVariable() const = 0; virtual void setDiameterVariable(const OdDgFeatureSolidVariable* varDiameter) = 0; virtual OdDgFeatureSolidVariablePtr getDraftAngleVariable() const = 0; virtual void setDraftAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getDepthVariable() const = 0; virtual void setDepthVariable(const OdDgFeatureSolidVariable* varDepth) = 0; virtual OdDgFeatureSolidVariablePtr getDrillAngleVariable() const = 0; virtual void setDrillAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getCounterDiameterVariable() const = 0; virtual void setCounterDiameterVariable(const OdDgFeatureSolidVariable* varDiameter) = 0; virtual OdDgFeatureSolidVariablePtr getCounterDepthVariable() const = 0; virtual void setCounterDepthVariable(const OdDgFeatureSolidVariable* varDepth) = 0; virtual OdDgFeatureSolidVariablePtr getCounterAngleVariable() const = 0; virtual void setCounterAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getThreadDiameterVariable() const = 0; virtual void setThreadDiameterVariable(const OdDgFeatureSolidVariable* varDiameter) = 0; virtual OdDgFeatureSolidVariablePtr getThreadDepthVariable() const = 0; virtual void setThreadDepthVariable(const OdDgFeatureSolidVariable* varDepth) = 0; virtual OdDgFeatureSolidVariablePtr getThreadPitchVariable() const = 0; virtual void setThreadPitchVariable(const OdDgFeatureSolidVariable* varPitch) = 0; // Points virtual OdGePoint3d getHoleOrigin() const = 0; virtual void setHoleOrigin(const OdGePoint3d& ptOrigin) = 0; // Direction Transformation virtual OdGeMatrix3d getDirectionTransformation() const = 0; virtual void setDirectionTransformation(const OdGeMatrix3d& matTransform) = 0; // Options virtual OdDgFeatureSolidHoleType getHoleType() const = 0; virtual void setHoleType(OdDgFeatureSolidHoleType uType) = 0; virtual OdDgFeatureSolidHoleDrillType getHoleDrillType() const = 0; virtual void setHoleDrillType(OdDgFeatureSolidHoleDrillType uType) = 0; virtual OdDgFeatureSolidHoleCounterType getCounterType() const = 0; virtual void setCounterType(OdDgFeatureSolidHoleCounterType uType) = 0; virtual bool getUseDrillAngleFlag() const = 0; virtual void setUseDrillAngleFlag(bool bSet) = 0; virtual bool getAddThreadFlag() const = 0; virtual void setAddThreadFlag(bool bSet) = 0; virtual bool getThreadDepthFlag() const = 0; virtual void setThreadDepthFlag(bool bSet) = 0; // Markers virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker() const = 0; virtual void setFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidBossNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidBossNode); // Simple parameter access virtual double getDiameter() const = 0; virtual void setDiameter(double dDiameter) = 0; virtual double getDraftAngle() const = 0; virtual void setDraftAngle(double dAngle) = 0; virtual double getHeight() const = 0; virtual void setHeight(double dHeight) = 0; virtual double getBlendRadius() const = 0; virtual void setBlendRadius(double dRadius) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getDiameterVariable() const = 0; virtual void setDiameterVariable(const OdDgFeatureSolidVariable* varDiameter) = 0; virtual OdDgFeatureSolidVariablePtr getDraftAngleVariable() const = 0; virtual void setDraftAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getHeightVariable() const = 0; virtual void setHeightVariable(const OdDgFeatureSolidVariable* varHeight) = 0; virtual OdDgFeatureSolidVariablePtr getBlendRadiusVariable() const = 0; virtual void setBlendRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; // Points virtual OdGePoint3d getBossOrigin() const = 0; virtual void setBossOrigin(const OdGePoint3d& ptOrigin) = 0; // Direction Transformation virtual OdGeMatrix3d getDirectionTransformation() const = 0; virtual void setDirectionTransformation(const OdGeMatrix3d& matTransform) = 0; // Markers virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker() const = 0; virtual void setFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidCutNode : public OdDgFeatureSolidNode { public: enum OdDgFeatureSolidCutMethod { kOutsideProfile = 0, kInsideProfile = 1 }; enum OdDgFeatureSolidCutThroughType { kBlind = 0, kUpToBody = 1, kAllFaces = 2, kNextFace = 3, kSelectedFaces = 4 }; enum OdDgFeatureSolidCutOffsetType { kOffsetBy = 0, kMoveBy = 1 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidCutNode); virtual OdGePoint3d getProfileOrigin() const = 0; virtual void setProfileOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getProfileTransformation() const = 0; virtual void setProfileTransformation(const OdGeMatrix3d& matTransform) = 0; virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile) = 0; // Simple parameter access virtual double getDraftAngle() const = 0; virtual void setDraftAngle(double dAngle) = 0; virtual double getDistance() const = 0; virtual void setDistance(double dDistance) = 0; virtual double getBackDistance() const = 0; virtual void setBackDistance(double dDistance) = 0; virtual double getOffset() const = 0; virtual void setOffset(double dOffset) = 0; virtual double getBackOffset() const = 0; virtual void setBackOffset(double dOffset) = 0; virtual double getThickness() const = 0; virtual void setThickness(double dThickness) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getDraftAngleVariable() const = 0; virtual void setDraftAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getDistanceVariable() const = 0; virtual void setDistanceVariable(const OdDgFeatureSolidVariable* varDistance) = 0; virtual OdDgFeatureSolidVariablePtr getBackDistanceVariable() const = 0; virtual void setBackDistanceVariable(const OdDgFeatureSolidVariable* varDistance) = 0; virtual OdDgFeatureSolidVariablePtr getOffsetVariable() const = 0; virtual void setOffsetVariable(const OdDgFeatureSolidVariable* varOffset) = 0; virtual OdDgFeatureSolidVariablePtr getBackOffsetVariable() const = 0; virtual void setBackOffsetVariable(const OdDgFeatureSolidVariable* varOffset) = 0; virtual OdDgFeatureSolidVariablePtr getThicknessVariable() const = 0; virtual void setThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; // Options virtual bool getBothDirectionFlag() const = 0; virtual void setBothDirectionFlag(bool bSet) = 0; virtual OdDgFeatureSolidCutMethod getCutMethod() const = 0; virtual void setCutMethod(OdDgFeatureSolidCutMethod uCutMetod) = 0; virtual OdDgFeatureSolidCutThroughType getCutThroughType() const = 0; virtual void setCutThroughType(OdDgFeatureSolidCutThroughType uType) = 0; virtual OdDgFeatureSolidCutThroughType getBackCutThroughType() const = 0; virtual void setBackCutThroughType(OdDgFeatureSolidCutThroughType uType) = 0; virtual OdDgFeatureSolidCutOffsetType getOffsetType() const = 0; virtual void setOffsetType(OdDgFeatureSolidCutOffsetType uType) = 0; virtual OdDgFeatureSolidCutOffsetType getBackOffsetType() const = 0; virtual void setBackOffsetType(OdDgFeatureSolidCutOffsetType uType) = 0; // Markers virtual OdUInt32 getFaceMarkerCount() const = 0; virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker(OdUInt32 uIndex) const = 0; virtual void setFaceMarker(OdUInt32 uIndex, OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void addFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void deleteFaceMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidProtrusionNode : public OdDgFeatureSolidNode { public: enum OdDgFeatureSolidProtrusionMethod { kOutsideProfile = 0, kInsideProfile = 1 }; enum OdDgFeatureSolidProtrusionThroughType { kBlind = 0, kUpToBody = 1, kAllFaces = 2, kNextFace = 3, kSelectedFaces = 4 }; enum OdDgFeatureSolidProtrusionOffsetType { kOffsetBy = 0, kMoveBy = 1 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidProtrusionNode); virtual OdGePoint3d getProfileOrigin() const = 0; virtual void setProfileOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getProfileTransformation() const = 0; virtual void setProfileTransformation(const OdGeMatrix3d& matTransform) = 0; virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile) = 0; // Simple parameter access virtual double getDraftAngle() const = 0; virtual void setDraftAngle(double dAngle) = 0; virtual double getDistance() const = 0; virtual void setDistance(double dDistance) = 0; virtual double getBackDistance() const = 0; virtual void setBackDistance(double dDistance) = 0; virtual double getOffset() const = 0; virtual void setOffset(double dOffset) = 0; virtual double getBackOffset() const = 0; virtual void setBackOffset(double dOffset) = 0; virtual double getThickness() const = 0; virtual void setThickness(double dThickness) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getDraftAngleVariable() const = 0; virtual void setDraftAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getDistanceVariable() const = 0; virtual void setDistanceVariable(const OdDgFeatureSolidVariable* varDistance) = 0; virtual OdDgFeatureSolidVariablePtr getBackDistanceVariable() const = 0; virtual void setBackDistanceVariable(const OdDgFeatureSolidVariable* varDistance) = 0; virtual OdDgFeatureSolidVariablePtr getOffsetVariable() const = 0; virtual void setOffsetVariable(const OdDgFeatureSolidVariable* varOffset) = 0; virtual OdDgFeatureSolidVariablePtr getBackOffsetVariable() const = 0; virtual void setBackOffsetVariable(const OdDgFeatureSolidVariable* varOffset) = 0; virtual OdDgFeatureSolidVariablePtr getThicknessVariable() const = 0; virtual void setThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; // Options virtual bool getBothDirectionFlag() const = 0; virtual void setBothDirectionFlag(bool bSet) = 0; virtual OdDgFeatureSolidProtrusionMethod getProtrusionMethod() const = 0; virtual void setProtrusionMethod(OdDgFeatureSolidProtrusionMethod uProtrusionMetod) = 0; virtual OdDgFeatureSolidProtrusionThroughType getProtrusionThroughType() const = 0; virtual void setProtrusionThroughType(OdDgFeatureSolidProtrusionThroughType uType) = 0; virtual OdDgFeatureSolidProtrusionThroughType getBackProtrusionThroughType() const = 0; virtual void setBackProtrusionThroughType(OdDgFeatureSolidProtrusionThroughType uType) = 0; virtual OdDgFeatureSolidProtrusionOffsetType getOffsetType() const = 0; virtual void setOffsetType(OdDgFeatureSolidProtrusionOffsetType uType) = 0; virtual OdDgFeatureSolidProtrusionOffsetType getBackOffsetType() const = 0; virtual void setBackOffsetType(OdDgFeatureSolidProtrusionOffsetType uType) = 0; // Markers virtual OdUInt32 getFaceMarkerCount() const = 0; virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker(OdUInt32 uIndex) const = 0; virtual void setFaceMarker(OdUInt32 uIndex, OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void addFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void deleteFaceMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidSweepEdgeNode : public OdDgFeatureSolidNode { public: enum OdDgFeatureSolidSweepEdgeMode { kCut = 0, kProtrude = 1 }; enum OdDgFeatureSolidSweepEdgeMethod { kCircularEdge = 0, kSelectedEdge = 1, kPoint = 2 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidSweepEdgeNode); virtual OdGePoint3d getProfileOrigin() const = 0; virtual void setProfileOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getProfileTransformation() const = 0; virtual void setProfileTransformation(const OdGeMatrix3d& matTransform) = 0; virtual OdDgElementId getProfileId() const = 0; virtual void setProfileId(const OdDgElementId& idProfile) = 0; // Simple parameter access virtual double getAngle() const = 0; virtual void setAngle(double dAngle) = 0; virtual double getRadius() const = 0; virtual void setRadius(double dRadius) = 0; virtual double getThickness() const = 0; virtual void setThickness(double dThickness) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getAngleVariable() const = 0; virtual void setAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getRadiusVariable() const = 0; virtual void setRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getThicknessVariable() const = 0; virtual void setThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; // Options virtual bool getBothDirectionFlag() const = 0; virtual void setBothDirectionFlag(bool bSet) = 0; virtual OdDgFeatureSolidSweepEdgeMode getMode() const = 0; virtual void setMode(OdDgFeatureSolidSweepEdgeMode uMode) = 0; virtual OdDgFeatureSolidSweepEdgeMethod getMethod() const = 0; virtual void setMethod(OdDgFeatureSolidSweepEdgeMethod uMethod) = 0; virtual bool getAddSmoothEdgesFlag() const = 0; virtual void setAddSmoothEdgesFlag(bool bSet) = 0; // Points virtual OdGeVector3d getDirection() const = 0; virtual void setDirection(const OdGeVector3d& vrDir) = 0; // Markers virtual OdDgFeatureSolidBodyMarkerPtr getBodyMarker() const = 0; virtual void setBodyMarker(const OdDgFeatureSolidBodyMarker* pMarker) = 0; virtual OdUInt32 getEdgeMarkerCount() const = 0; virtual OdDgFeatureSolidEdgeMarkerPtr getEdgeMarker(OdUInt32 uIndex) const = 0; virtual void setEdgeMarker(OdUInt32 uIndex, OdDgFeatureSolidEdgeMarker* pEdgeMarker) = 0; virtual void addEdgeMarker(OdDgFeatureSolidEdgeMarker* pEdgeMarker) = 0; virtual void deleteEdgeMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidRibNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidRibNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual double getDraftAngle() const = 0; virtual void setDraftAngle(double dAngle) = 0; virtual double getTopRadius() const = 0; virtual void setTopRadius(double dRadius) = 0; virtual double getBottomRadius() const = 0; virtual void setBottomRadius(double dRadius) = 0; virtual double getThickness() const = 0; virtual void setThickness(double dThickness) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getDraftAngleVariable() const = 0; virtual void setDraftAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getTopRadiusVariable() const = 0; virtual void setTopRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getBottomRadiusVariable() const = 0; virtual void setBottomRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getThicknessVariable() const = 0; virtual void setThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; // Markers virtual OdDgFeatureSolidEdgeMarkerPtr getEdgeMarker1() const = 0; virtual void setEdgeMarker1(const OdDgFeatureSolidEdgeMarker* pMarker) = 0; virtual OdDgFeatureSolidEdgeMarkerPtr getEdgeMarker2() const = 0; virtual void setEdgeMarker2(const OdDgFeatureSolidEdgeMarker* pMarker) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidThinShellNode : public OdDgFeatureSolidNode { public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidThinShellNode); // Simple parameter access virtual double getShellThickness() const = 0; virtual void setShellThickness(double dThickness) = 0; virtual double getFaceThickness() const = 0; virtual void setFaceThickness(double dThickness) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getShellThicknessVariable() const = 0; virtual void setShellThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; virtual OdDgFeatureSolidVariablePtr getFaceThicknessVariable() const = 0; virtual void setFaceThicknessVariable(const OdDgFeatureSolidVariable* varThickness) = 0; // Options virtual bool getAddSmoothEdgesFlag() const = 0; virtual void setAddSmoothEdgesFlag(bool bSet) = 0; // Markers virtual OdUInt32 getFaceMarkerCount() const = 0; virtual OdDgFeatureSolidFaceMarkerPtr getFaceMarker(OdUInt32 uIndex) const = 0; virtual void setFaceMarker(OdUInt32 uIndex, OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void addFaceMarker(OdDgFeatureSolidFaceMarker* pFaceMarker) = 0; virtual void deleteFaceMarker(OdUInt32 uIndex) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------- class TG_EXPORT OdDgFeatureSolidArrayNode : public OdDgFeatureSolidNode { public: enum OdDgFeatureSolidArrayType { kRectangular = 0, kPolar = 1 }; public: ODRX_DECLARE_MEMBERS(OdDgFeatureSolidArrayNode); virtual OdGePoint3d getOrigin() const = 0; virtual void setOrigin(const OdGePoint3d& ptOrigin) = 0; virtual OdGeMatrix3d getTransformation() const = 0; virtual void setTransformation(const OdGeMatrix3d& matTransform) = 0; // Simple parameter access virtual OdUInt32 getNumCols() const = 0; virtual void setNumCols(OdUInt32 nCols) = 0; virtual OdUInt32 getNumRows() const = 0; virtual void setNumRows(OdUInt32 nRows) = 0; virtual double getColumnDistance() const = 0; virtual void setColumnDistance(double dDistance) = 0; virtual double getRowDistance() const = 0; virtual void setRowDistance(double dDistance) = 0; virtual double getRectangularAngle() const = 0; virtual void setRectangularAngle(double dAngle) = 0; virtual OdUInt32 getPolarNumItems() const = 0; virtual void setPolarNumItems(OdUInt32 nItems) = 0; virtual double getPolarRadius() const = 0; virtual void setPolarRadius(double dRadius) = 0; virtual double getPolarAngle() const = 0; virtual void setPolarAngle(double dAngle) = 0; // Full parameter access virtual OdDgFeatureSolidVariablePtr getNumColsVariable() const = 0; virtual void setNumColsVariable(const OdDgFeatureSolidVariable* varNum) = 0; virtual OdDgFeatureSolidVariablePtr getNumRowsVariable() const = 0; virtual void setNumRowsVariable(const OdDgFeatureSolidVariable* varNum) = 0; virtual OdDgFeatureSolidVariablePtr getColumnDistanceVariable() const = 0; virtual void setColumnDistanceVariable(const OdDgFeatureSolidVariable* varDistance) = 0; virtual OdDgFeatureSolidVariablePtr getRowDistanceVariable() const = 0; virtual void setRowDistanceVariable(const OdDgFeatureSolidVariable* varDistance) = 0; virtual OdDgFeatureSolidVariablePtr getRectangularAngleVariable() const = 0; virtual void setRectangularAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; virtual OdDgFeatureSolidVariablePtr getPolarNumItemsVariable() const = 0; virtual void setPolarNumItemsVariable(const OdDgFeatureSolidVariable* varNumItems) = 0; virtual OdDgFeatureSolidVariablePtr getPolarRadiusVariable() const = 0; virtual void setPolarRadiusVariable(const OdDgFeatureSolidVariable* varRadius) = 0; virtual OdDgFeatureSolidVariablePtr getPolarAngleVariable() const = 0; virtual void setPolarAngleVariable(const OdDgFeatureSolidVariable* varAngle) = 0; // Options virtual bool getIdenticalInstancesFlag() const = 0; virtual void setIdenticalInstancesFlag(bool bSet) = 0; virtual bool getSelectedFeaturesOnlyFlag() const = 0; virtual void setSelectedFeaturesOnlyFlag(bool bSet) = 0; virtual OdDgFeatureSolidArrayType getArrayType() const = 0; virtual void setArrayType(OdDgFeatureSolidArrayType uType) = 0; // Markers virtual OdDgFeatureSolidBodyMarkerPtr getBodyMarker() const = 0; virtual void setBodyMarker(const OdDgFeatureSolidBodyMarker* pMarker) = 0; // Child nodes virtual OdDgElementId getChildNodeId() const = 0; virtual void setChildNodeId(const OdDgElementId& idNode) = 0; }; //------------------------------------------------------------------------------------ #include "TD_PackPop.h" #endif // __DG_FEATURESOLIDNODE_H__