/////////////////////////////////////////////////////////////////////////////// // 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. /////////////////////////////////////////////////////////////////////////////// #include "DgCurveElementProperties.h" #include "DgMaterialTableRecord.h" #include "DgColorTable.h" #include "DgBRepEntityPE.h" #include "DgDetailingSymbol.h" #include "DgComplexShape.h" //----------------------------------------------------------------------------------------------------------------------- // class: OdDgCurveElement2d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: LineStyleScale //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dLineStyleScaleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLineStyleScale(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dLineStyleScaleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setLineStyleScale(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: LineStyleModifiers //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dLineStyleModifiersProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLineStyleModifiers(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dLineStyleModifiersProperty::subChildren(OdArray& children) const { // as far as I understand, subproperties are generated if value type has children and OdRxTypePromotionAttribute // if that is true, generic version of this code may be moved to OdRxProperty::subChildren or even straight to children() children.append(OdRxSubProperty::createObject(L"DashScaleDefined", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"DashScale", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"GapScaleDefined", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"GapScale", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"WidthDataDefined", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"WidthMode", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"StartWidth", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"EndWidth", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"TrueWidth", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"ShiftMode", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"ShiftDistance", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"ShiftFraction", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"CornersMode", OdRxValueType::Desc::value(), this)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dLineStyleModifiersProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setLineStyleModifiers(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Closed //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dClosedProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isClosed(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Periodic //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dPeriodicProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isPeriodic(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: StartParam //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dStartParamProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; double dValue = 0.0; OdResult retVal = pObj->getStartParam(dValue); value = dValue; return retVal; } //----------------------------------------------------------------------------------------------------------------------- // property: EndParam //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dEndParamProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; double dValue = 0.0; OdResult retVal = pObj->getEndParam(dValue); value = dValue; return retVal; } //----------------------------------------------------------------------------------------------------------------------- // property: StartPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dStartPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d ptStart; OdResult retVal = pObj->getStartPoint(ptStart); value = ptStart; return retVal; } //----------------------------------------------------------------------------------------------------------------------- // property: EndPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement2dEndPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement2dPtr pObj = OdDgCurveElement2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d ptEnd; OdResult retVal = pObj->getEndPoint(ptEnd); value = ptEnd; return retVal; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgCurveElement3d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: LineStyleScale //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dLineStyleScaleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLineStyleScale(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dLineStyleScaleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setLineStyleScale(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: LineStyleModifiers //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dLineStyleModifiersProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLineStyleModifiers(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dLineStyleModifiersProperty::subChildren(OdArray& children) const { // as far as I understand, subproperties are generated if value type has children and OdRxTypePromotionAttribute // if that is true, generic version of this code may be moved to OdRxProperty::subChildren or even straight to children() children.append(OdRxSubProperty::createObject(L"DashScaleDefined", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"DashScale", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"GapScaleDefined", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"GapScale", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"WidthDataDefined", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"WidthMode", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"StartWidth", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"EndWidth", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"TrueWidth", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"ShiftMode", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"ShiftDistance", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"ShiftFraction", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"CornersMode", OdRxValueType::Desc::value(), this)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dLineStyleModifiersProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setLineStyleModifiers(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Closed //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dClosedProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isClosed(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Periodic //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dPeriodicProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isPeriodic(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: StartParam //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dStartParamProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; double dValue = 0.0; OdResult retVal = pObj->getStartParam(dValue); value = dValue; return retVal; } //----------------------------------------------------------------------------------------------------------------------- // property: EndParam //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dEndParamProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; double dValue = 0.0; OdResult retVal = pObj->getEndParam(dValue); value = dValue; return retVal; } //----------------------------------------------------------------------------------------------------------------------- // property: StartPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dStartPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d ptStart; OdResult retVal = pObj->getStartPoint(ptStart); value = ptStart; return retVal; } //----------------------------------------------------------------------------------------------------------------------- // property: EndPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgCurveElement3dEndPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgCurveElement3dPtr pObj = OdDgCurveElement3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d ptEnd; OdResult retVal = pObj->getEndPoint(ptEnd); value = ptEnd; return retVal; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgLine2d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: StartPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgLine2dStartPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgLine2dPtr pObj = OdDgLine2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getStartPoint(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgLine2dStartPointProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgLine2dPtr pObj = OdDgLine2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setStartPoint(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: EndPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgLine2dEndPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgLine2dPtr pObj = OdDgLine2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getEndPoint(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgLine2dEndPointProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgLine2dPtr pObj = OdDgLine2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setEndPoint(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgLine3d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: StartPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgLine3dStartPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgLine3dPtr pObj = OdDgLine3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getStartPoint(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgLine3dStartPointProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgLine3dPtr pObj = OdDgLine3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setStartPoint(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: EndPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgLine3dEndPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgLine3dPtr pObj = OdDgLine3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getEndPoint(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgLine3dEndPointProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgLine3dPtr pObj = OdDgLine3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setEndPoint(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgArc2d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: PrimaryAxis //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dPrimaryAxisProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPrimaryAxis(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dPrimaryAxisProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setPrimaryAxis(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: SecondaryAxis //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dSecondaryAxisProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSecondaryAxis(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dSecondaryAxisProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setSecondaryAxis(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: RotationAngle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dRotationAngleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRotationAngle(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dRotationAngleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setRotationAngle(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Origin //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dOriginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getOrigin(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dOriginProperty::subChildren(OdArray& children) const { // as far as I understand, subproperties are generated if value type has children and OdRxTypePromotionAttribute // if that is true, generic version of this code may be moved to OdRxProperty::subChildren or even straight to children() children.append(OdRxSubProperty::createObject(L"X", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"Y", OdRxValueType::Desc::value(), this)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dOriginProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setOrigin(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: StartAngle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dStartAngleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getStartAngle(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dStartAngleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setStartAngle(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: SweepAngle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dSweepAngleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSweepAngle(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc2dSweepAngleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc2dPtr pObj = OdDgArc2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setSweepAngle(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgArc3d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: PrimaryAxis //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dPrimaryAxisProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPrimaryAxis(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dPrimaryAxisProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setPrimaryAxis(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: SecondaryAxis //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dSecondaryAxisProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSecondaryAxis(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dSecondaryAxisProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setSecondaryAxis(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Origin //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dOriginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getOrigin(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dOriginProperty::subChildren(OdArray& children) const { // as far as I understand, subproperties are generated if value type has children and OdRxTypePromotionAttribute // if that is true, generic version of this code may be moved to OdRxProperty::subChildren or even straight to children() children.append(OdRxSubProperty::createObject(L"X", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"Y", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"Z", OdRxValueType::Desc::value(), this)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dOriginProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setOrigin(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: StartAngle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dStartAngleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getStartAngle(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dStartAngleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setStartAngle(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: SweepAngle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dSweepAngleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSweepAngle(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dSweepAngleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setSweepAngle(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Rotation //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dRotationProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRotation(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dRotationProperty::subChildren(OdArray& children) const { // as far as I understand, subproperties are generated if value type has children and OdRxTypePromotionAttribute // if that is true, generic version of this code may be moved to OdRxProperty::subChildren or even straight to children() children.append(OdRxSubProperty::createObject(L"RotationX", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"RotationY", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"RotationZ", OdRxValueType::Desc::value(), this)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dRotationProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGeQuaternion* pValue = rxvalue_cast(&value); if( !pValue ) return eNotThatKindOfClass; pObj->setRotation(*pValue); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Normal //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dNormalProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgArc3dPtr pObj = OdDgArc3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGeQuaternion rotation = pObj->getRotation(); OdGeVector3d vrZAxis = OdGeVector3d::kZAxis; vrZAxis = rotation.rotateOpposite(vrZAxis); value = vrZAxis; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgArc3dNormalProperty::subChildren(OdArray& children) const { // as far as I understand, subproperties are generated if value type has children and OdRxTypePromotionAttribute // if that is true, generic version of this code may be moved to OdRxProperty::subChildren or even straight to children() children.append(OdRxSubProperty::createObject(L"X", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"Y", OdRxValueType::Desc::value(), this)); children.append(OdRxSubProperty::createObject(L"Z", OdRxValueType::Desc::value(), this)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgShape2d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: Vertices //----------------------------------------------------------------------------------------------------------------------- ODDG_DEFINE_RX_VALUE_ARRAY_ITERATOR(OdGePoint2d); OdRxValueIteratorPtr OdDgShape2dVerticesProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgShape2dPtr pShape = OdDgShape2d::cast(pO); if( !pShape.isNull() ) { OdArray arrVertices; for( OdUInt32 i = 0; i < pShape->getVerticesCount(); i++ ) arrVertices.push_back( pShape->getVertexAt(i) ); ((OdRxOdGePoint2dValueIterator*)res.get())->init( arrVertices, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dVerticesProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgShape2dPtr pShape = OdDgShape2d::cast(pO); if (pShape.isNull()) return eNotApplicable; count = pShape->getVerticesCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dVerticesProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgShape2dPtr pShape = OdDgShape2d::cast(pO); if (pShape.isNull()) return eNotApplicable; if( index < 0 || index >= (int)pShape->getVerticesCount() ) return eInvalidIndex; value = pShape->getVertexAt(index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dVerticesProperty::subChildren(OdArray& children) const { // as far as I understand, subproperties are generated if value type has children and OdRxTypePromotionAttribute // if that is true, generic version of this code may be moved to OdRxProperty::subChildren or even straight to children() children.append(OdRxSubPropertyOfIndexedProperty::createObject(L"X", OdRxValueType::Desc::value(), this)); children.append(OdRxSubPropertyOfIndexedProperty::createObject(L"Y", OdRxValueType::Desc::value(), this)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dVerticesProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgShape2dPtr pShape = OdDgShape2d::cast(pO); if (pShape.isNull()) return eNotApplicable; if( index < 0 || index >= (int)pShape->getVerticesCount() ) return eInvalidIndex; pShape->setVertexAt(index, *rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dVerticesProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgShape2dPtr pShape = OdDgShape2d::cast(pO); if (pShape.isNull()) return eNotApplicable; if( index < 0 || index > (int)pShape->getVerticesCount() ) return eInvalidIndex; pShape->insertVertex(index, *rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dVerticesProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgShape2dPtr pShape = OdDgShape2d::cast(pO); if (pShape.isNull()) return eNotApplicable; if( index < 0 || index >= (int)pShape->getVerticesCount() ) return eInvalidIndex; pShape->removeVertexAt(index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Material //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dMaterialProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgShape2dPtr pObj = OdDgShape2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getMaterial(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dMaterialProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgShape2dPtr pObj = OdDgShape2d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgElementId* pId = rxvalue_cast(&value); pObj->setMaterial(*pId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: MaterialName //----------------------------------------------------------------------------------------------------------------------- /* OdResult OdDgShape2dMaterialNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgShape2dPtr pObj = OdDgShape2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdString strName = OdString::kEmpty; OdDgElementId idMaterial = pObj->getMaterial(); if( !idMaterial.isNull() ) { OdDgMaterialTableRecordPtr pMat = idMaterial.openObject(OdDg::kForRead); strName = pMat->getName(); } value = strName; return eOk; } */ //----------------------------------------------------------------------------------------------------------------------- /* OdResult OdDgShape2dMaterialNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgShape2dPtr pObj = OdDgShape2d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if( pValue && pValue->isEmpty() ) pObj->setMaterial(OdString::kEmpty); else pObj->setMaterial(*pValue); return eOk; } */ //----------------------------------------------------------------------------------------------------------------------- // property: Fill //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dFillProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgShape2dPtr pObj = OdDgShape2d::cast(pO); if (pObj.isNull()) return eNotApplicable; switch( pObj->getFillType() ) { case OdDg::kFillColor: { OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getFillColorIndex(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; } break; case OdDg::kGradientFill: { value = pObj->getGradientFill(); } break; case OdDg::kNoFill: { return eEmptySet; } break; } return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dFillProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgShape2dPtr pObj = OdDgShape2d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColorIndex = rxvalue_cast(&value); const OdDgGradientFill* pGradient = rxvalue_cast(&value); if( pColorIndex ) { OdUInt32 uColorIndex = 0; switch (pColorIndex->colorMethod()) { case OdCmEntityColor::kByLayer: uColorIndex = OdDg::kColorByLevel; break; case OdCmEntityColor::kByBlock: uColorIndex = OdDg::kColorByCell; break; case OdCmEntityColor::kByColor: { uColorIndex = OdDgColorTable::getColorIndexByRGB(pObj->database(), ODRGB(pColorIndex->red(), pColorIndex->green(), pColorIndex->blue())); } break; case OdCmEntityColor::kByDgnIndex: case OdCmEntityColor::kByACI: case OdCmEntityColor::kByPen: { uColorIndex = pColorIndex->colorIndex(); } break; } pObj->setFillColor(uColorIndex); } else if( pGradient ) pObj->setGradientFill(*pGradient); else pObj->setFillType(OdDg::kNoFill); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HatchPattern //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dHatchPatternProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgShape2dPtr pObj = OdDgShape2d::cast(pO); if (pObj.isNull()) return eNotApplicable; if( pObj->getHatchPattern().isNull() ) return eEmptySet; OdDgHatchPatternPtr pHatch = pObj->getHatchPattern(false); OdRxObjectPtr pHatchObj = pHatch; value = pHatchObj; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape2dHatchPatternProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgShape2dPtr pObj = OdDgShape2d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdRxObjectPtr* pHatch = rxvalue_cast(&value); if( (*pHatch).isNull() || !(*pHatch)->isKindOf( OdDgHatchPattern::desc()) ) pObj->setHatchPattern( OdDgHatchPatternPtr() ); else { OdDgHatchPatternPtr pHatchData = *pHatch; pObj->setHatchPattern(pHatchData); } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgShape3d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: Vertices //----------------------------------------------------------------------------------------------------------------------- ODDG_DEFINE_RX_VALUE_ARRAY_ITERATOR(OdGePoint3d); OdRxValueIteratorPtr OdDgShape3dVerticesProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgShape3dPtr pShape = OdDgShape3d::cast(pO); if( !pShape.isNull() ) { OdArray arrVertices; for( OdUInt32 i = 0; i < pShape->getVerticesCount(); i++ ) arrVertices.push_back( pShape->getVertexAt(i) ); ((OdRxOdGePoint3dValueIterator*)res.get())->init( arrVertices, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dVerticesProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgShape3dPtr pShape = OdDgShape3d::cast(pO); if (pShape.isNull()) return eNotApplicable; count = pShape->getVerticesCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dVerticesProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgShape3dPtr pShape = OdDgShape3d::cast(pO); if (pShape.isNull()) return eNotApplicable; if( index < 0 || index >= (int)pShape->getVerticesCount() ) return eInvalidIndex; value = pShape->getVertexAt(index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dVerticesProperty::subChildren(OdArray& children) const { // as far as I understand, subproperties are generated if value type has children and OdRxTypePromotionAttribute // if that is true, generic version of this code may be moved to OdRxProperty::subChildren or even straight to children() children.append(OdRxSubPropertyOfIndexedProperty::createObject(L"X", OdRxValueType::Desc::value(), this)); children.append(OdRxSubPropertyOfIndexedProperty::createObject(L"Y", OdRxValueType::Desc::value(), this)); children.append(OdRxSubPropertyOfIndexedProperty::createObject(L"Z", OdRxValueType::Desc::value(), this)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dVerticesProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgShape3dPtr pShape = OdDgShape3d::cast(pO); if (pShape.isNull()) return eNotApplicable; if( index < 0 || index >= (int)pShape->getVerticesCount() ) return eInvalidIndex; pShape->setVertexAt(index, *rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dVerticesProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgShape3dPtr pShape = OdDgShape3d::cast(pO); if (pShape.isNull()) return eNotApplicable; if( index < 0 || index >= (int)pShape->getVerticesCount() ) return eInvalidIndex; pShape->insertVertex(index, *rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dVerticesProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgShape3dPtr pShape = OdDgShape3d::cast(pO); if (pShape.isNull()) return eNotApplicable; if( index < 0 || index >= (int)pShape->getVerticesCount() ) return eInvalidIndex; pShape->removeVertexAt(index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Material //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dMaterialProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgShape3dPtr pObj = OdDgShape3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getMaterial(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dMaterialProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgShape3dPtr pObj = OdDgShape3d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgElementId* pId = rxvalue_cast(&value); pObj->setMaterial(*pId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: MaterialName //----------------------------------------------------------------------------------------------------------------------- /* OdResult OdDgShape3dMaterialNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgShape3dPtr pObj = OdDgShape3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdString strName = OdString::kEmpty; OdDgElementId idMaterial = pObj->getMaterial(); if( !idMaterial.isNull() ) { OdDgMaterialTableRecordPtr pMat = idMaterial.openObject(OdDg::kForRead); strName = pMat->getName(); } value = strName; return eOk; } */ //----------------------------------------------------------------------------------------------------------------------- /* OdResult OdDgShape3dMaterialNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgShape3dPtr pObj = OdDgShape3d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if( pValue && pValue->isEmpty() ) pObj->setMaterial(OdString::kEmpty); else pObj->setMaterial(*pValue); return eOk; } */ //----------------------------------------------------------------------------------------------------------------------- // property: Fill //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dFillProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgShape3dPtr pObj = OdDgShape3d::cast(pO); if (pObj.isNull()) return eNotApplicable; switch( pObj->getFillType() ) { case OdDg::kFillColor: { OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getFillColorIndex(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; } break; case OdDg::kGradientFill: { value = pObj->getGradientFill(); } break; case OdDg::kNoFill: { return eEmptySet; } break; } return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dFillProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgShape3dPtr pObj = OdDgShape3d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColor = rxvalue_cast(&value); const OdDgGradientFill* pGradient = rxvalue_cast(&value); if( pColor ) { OdUInt32 uColorIndex = 0; switch( pColor->colorMethod() ) { case OdCmEntityColor::kByLayer: uColorIndex = OdDg::kColorByLevel; break; case OdCmEntityColor::kByBlock: uColorIndex = OdDg::kColorByCell; break; case OdCmEntityColor::kByColor: { uColorIndex = OdDgColorTable::getColorIndexByRGB( pObj->database(), ODRGB( pColor->red(), pColor->green(), pColor->blue() )); } break; case OdCmEntityColor::kByDgnIndex: case OdCmEntityColor::kByACI: case OdCmEntityColor::kByPen: { uColorIndex = pColor->colorIndex(); } break; } pObj->setFillColor(uColorIndex); } else if( pGradient ) pObj->setGradientFill(*pGradient); else pObj->setFillType(OdDg::kNoFill); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HatchPattern //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dHatchPatternProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgShape3dPtr pObj = OdDgShape3d::cast(pO); if (pObj.isNull()) return eNotApplicable; if( pObj->getHatchPattern().isNull() ) return eEmptySet; OdDgHatchPatternPtr pHatch = pObj->getHatchPattern(false); OdRxObjectPtr pHatchObj = pHatch; value = pHatchObj; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgShape3dHatchPatternProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgShape3dPtr pObj = OdDgShape3d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdRxObjectPtr* pHatch = rxvalue_cast(&value); if( !pHatch || (*pHatch).isNull() || !(*pHatch)->isKindOf( OdDgHatchPattern::desc()) ) pObj->setHatchPattern( OdDgHatchPatternPtr() ); else { OdDgHatchPatternPtr pHatchData = *pHatch; OdDgHatchPatternPtr pNewPattern = pHatchData->copy(); pObj->setHatchPattern(pNewPattern); } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgComplexShape //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: HoleFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgComplexShapeHoleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgComplexShapePtr pObj = OdDgComplexShape::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHoleFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgComplexShapeHoleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgComplexShapePtr pObj = OdDgComplexShape::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setHoleFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //----------------------------------------------------------------------------------------------------------------------- // property: Material //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgComplexShapeMaterialProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgComplexShapePtr pObj = OdDgComplexShape::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getMaterial(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgComplexShapeMaterialProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgComplexShapePtr pObj = OdDgComplexShape::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgElementId* pId = rxvalue_cast(&value); pObj->setMaterial(*pId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Fill //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgComplexShapeFillProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgComplexShapePtr pObj = OdDgComplexShape::cast(pO); if (pObj.isNull()) return eNotApplicable; switch (pObj->getFillType()) { case OdDg::kFillColor: { OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getFillColorIndex(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; } break; case OdDg::kGradientFill: { value = pObj->getGradientFill(); } break; case OdDg::kNoFill: { return eEmptySet; } break; } return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgComplexShapeFillProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgComplexShapePtr pObj = OdDgComplexShape::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColor = rxvalue_cast(&value); const OdDgGradientFill* pGradient = rxvalue_cast(&value); if (pColor) { OdUInt32 uColorIndex = 0; switch (pColor->colorMethod()) { case OdCmEntityColor::kByLayer: uColorIndex = OdDg::kColorByLevel; break; case OdCmEntityColor::kByBlock: uColorIndex = OdDg::kColorByCell; break; case OdCmEntityColor::kByColor: { uColorIndex = OdDgColorTable::getColorIndexByRGB(pObj->database(), ODRGB(pColor->red(), pColor->green(), pColor->blue())); } break; case OdCmEntityColor::kByDgnIndex: case OdCmEntityColor::kByACI: case OdCmEntityColor::kByPen: { uColorIndex = pColor->colorIndex(); } break; } pObj->setFillColor(uColorIndex); } else if (pGradient) pObj->setGradientFill(*pGradient); else pObj->setFillType(OdDg::kNoFill); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HatchPattern //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgComplexShapeHatchPatternProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgComplexShapePtr pObj = OdDgComplexShape::cast(pO); if (pObj.isNull()) return eNotApplicable; if (pObj->getHatchPattern().isNull()) return eEmptySet; OdDgHatchPatternPtr pHatch = pObj->getHatchPattern(false); OdRxObjectPtr pHatchObj = pHatch; value = pHatchObj; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgComplexShapeHatchPatternProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgComplexShapePtr pObj = OdDgComplexShape::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdRxObjectPtr* pHatch = rxvalue_cast(&value); if (!pHatch || (*pHatch).isNull() || !(*pHatch)->isKindOf(OdDgHatchPattern::desc())) pObj->setHatchPattern(OdDgHatchPatternPtr()); else { OdDgHatchPatternPtr pHatchData = *pHatch; OdDgHatchPatternPtr pNewPattern = pHatchData->copy(); pObj->setHatchPattern(pNewPattern); } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgComplexCurve //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: Elements //----------------------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgComplexCurveElementsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; OdDgComplexCurvePtr pObj = OdDgComplexCurve::cast(pO); if (!pObj.isNull()) { res = OdRxObjectImpl::createObject(); ((OdDgElementIdValueIterator*)res.get())->m_pIter = pObj->createIterator(); ((OdDgElementIdValueIterator*)res.get())->m_bAllowNull = false; } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgComplexCurveElementsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdRxValueIteratorPtr res; const OdDgComplexCurvePtr pObj = OdDgComplexCurve::cast(pO); if (pObj.isNull()) return eNotApplicable; int N = 0; for (OdDgElementIteratorPtr it = pObj->createIterator(); !it->done(); it->step()) ++N; count = N; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgSharedCellReference //----------------------------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------------- // Property: DefinitionName //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceDefinitionNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDefinitionName(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceDefinitionNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDefinitionName(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: Transformation //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceTransformationProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTransformation(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceTransformationProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGeMatrix3d* pValue = rxvalue_cast(&value); if (pValue) { pObj->setTransformation(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: Origin //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceOriginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getOrigin(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceOriginProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGePoint3d* pValue = rxvalue_cast(&value); if (pValue) { pObj->setOrigin(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ClassMap //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceClassMapProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getClassMap(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceClassMapProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdUInt16* pValue = rxvalue_cast(&value); if (pValue) { pObj->setClassMap(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LevelOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceLevelOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLevelOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceLevelOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLevelOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: RelativeOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceRelativeOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRelativeOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceRelativeOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setRelativeOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ClassOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceClassOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getClassOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceClassOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setClassOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ColorOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceColorOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getColorOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceColorOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setColorOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: WeightOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceWeightOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getWeightOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceWeightOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setWeightOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: StyleOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceStyleOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getStyleOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceStyleOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setStyleOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: AssociativePointOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceAssociativePointOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getAssociativePointOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceAssociativePointOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setAssociativePointOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: UseAnnotationScaleFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceUseAnnotationScaleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getUseAnnotationScaleFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceUseAnnotationScaleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setUseAnnotationScaleFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: AnnotationScale //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceAnnotationScaleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getAnnotationScale(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceAnnotationScaleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const double* pValue = rxvalue_cast(&value); if (pValue) { pObj->setAnnotationScale(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LineStyleModifiers //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceLineStyleModifiersProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLineStyleModifiers(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceLineStyleModifiersProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGiDgLinetypeModifiers* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLineStyleModifiers(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LineStyleScale //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceLineStyleScaleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLineStyleScale(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceLineStyleScaleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const double* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLineStyleScale(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: UseClipBoundaryFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceUseClipBoundaryFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGiClipBoundary clipBoundary; value = pObj->getClipBoundary(clipBoundary); return eOk; } //------------------------------------------------------------------------------------------------------- // Property: ClipBoundary //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceClipBoundaryProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGiClipBoundary clipBoundary; pObj->getClipBoundary(clipBoundary); value = clipBoundary; return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceClipBoundaryProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGiClipBoundary* pValue = rxvalue_cast(&value); if (pValue) { pObj->setClipBoundary(*pValue); return eOk; } return eNotThatKindOfClass; } //----------------------------------------------------------------------------------------------------------------------- // property: BlockDefinition //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceBlockDefinitionProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgElementId idRet; OdDgSharedCellDefinitionPtr pDef = pObj->findDefinition(); if (!pDef.isNull()) idRet = pDef->elementId(); value = idRet; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgSharedCellReferenceBlockDefinitionProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgSharedCellReferencePtr pObj = OdDgSharedCellReference::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgElementId* pId = rxvalue_cast(&value); if (!pId) return eNotThatKindOfClass; OdDgElementPtr pElm = pId->openObject(OdDg::kForRead, true); if( !pElm.isNull() && pElm->isKindOf(OdDgSharedCellDefinition::desc()) ) { OdDgSharedCellDefinitionPtr pDef = pElm; pObj->setDefinitionName(pDef->getName()); return eOk; } return eNotThatKindOfClass; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgReferenceAttachmentHeader //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: ReferencedModel //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderReferencedModelProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgElementId idRet; OdDgReferenceAttachCDAPE* pXRefCDAPE = OdDgReferenceAttachCDAPE::cast(pObj); if (pXRefCDAPE) idRet = pXRefCDAPE->getModelIdForPropertyCollections(pObj); value = idRet; return eOk; } //------------------------------------------------------------------------------------------------------- // Property: FileName //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderFileNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getFileName(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderFileNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setFileName(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: FullFileName //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderFullFileNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getFullFileName(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderFullFileNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setFullFileName(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ModelName //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderModelNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getModelName(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderModelNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setModelName(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LogicalName //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLogicalNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLogicalName(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLogicalNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLogicalName(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: Description //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDescriptionProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDescription(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDescriptionProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDescription(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: RevisionName //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderRevisionNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRevisionName(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderRevisionNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setRevisionName(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ExtractionModelName //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderExtractionModelNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getExtractionModelName(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderExtractionModelNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setExtractionModelName(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: NamedGroupName //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderNamedGroupNameProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getNamedGroupName(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderNamedGroupNameProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setNamedGroupName(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: FileNumber //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderFileNumberProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getFileNumber(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderFileNumberProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdUInt32* pValue = rxvalue_cast(&value); if (pValue) { pObj->setFileNumber(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: Priority //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPriorityProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPriority(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPriorityProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdUInt32* pValue = rxvalue_cast(&value); if (pValue) { pObj->setPriority(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: BaseNestDepth //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderBaseNestDepthProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getBaseNestDepth(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderBaseNestDepthProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdUInt16* pValue = rxvalue_cast(&value); if (pValue) { pObj->setBaseNestDepth(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: NestDepth //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderNestDepthProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getNestDepth(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderNestDepthProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdUInt16* pValue = rxvalue_cast(&value); if (pValue) { pObj->setNestDepth(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ReferenceOrigin //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderReferenceOriginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getReferenceOrigin(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderReferenceOriginProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGePoint3d* pValue = rxvalue_cast(&value); if (pValue) { pObj->setReferenceOrigin(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: MasterOrigin //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderMasterOriginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getMasterOrigin(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderMasterOriginProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGePoint3d* pValue = rxvalue_cast(&value); if (pValue) { pObj->setMasterOrigin(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: Transformation //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderTransformationProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTransformation(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderTransformationProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGeMatrix3d* pValue = rxvalue_cast(&value); if (pValue) { pObj->setTransformation(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: Scale //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderScaleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getScale(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderScaleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const double* pValue = rxvalue_cast(&value); if (pValue) { pObj->setScale(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: EntireScale //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderEntireScaleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getEntireScale(); return eOk; } //------------------------------------------------------------------------------------------------------- // Property: ZFront //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderZFrontProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getZFront(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderZFrontProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const double* pValue = rxvalue_cast(&value); if (pValue) { pObj->setZFront(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ZBack //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderZBackProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getZBack(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderZBackProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const double* pValue = rxvalue_cast(&value); if (pValue) { pObj->setZBack(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: CameraPosition //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCameraPositionProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCameraPosition(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCameraPositionProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGePoint3d* pValue = rxvalue_cast(&value); if (pValue) { pObj->setCameraPosition(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: CameraFocalLength //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCameraFocalLengthProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCameraFocalLength(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCameraFocalLengthProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const double* pValue = rxvalue_cast(&value); if (pValue) { pObj->setCameraFocalLength(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ClipPoints //------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgReferenceAttachmentHeaderClipPointsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (!pObj.isNull()) { OdArray arrValues; for (OdUInt32 i = 0; i < pObj->getClipPointsCount(); i++) arrValues.push_back(pObj->getClipPoint(i)); ((OdRxOdGePoint2dValueIterator *)res.get())->init(arrValues, 0); } return res; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipPointsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->getClipPointsCount(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipPointsProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || index >= (int)pObj->getClipPointsCount()) return eInvalidIndex; value = pObj->getClipPoint(index); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipPointsProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || index >= (int)pObj->getClipPointsCount()) return eInvalidIndex; const OdGePoint2d* pValue = rxvalue_cast(&value); if (pValue) { pObj->setClipPoint(index, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipPointsProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGePoint2d* pValue = rxvalue_cast(&value); if (pValue) { pObj->addClipPoint(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipPointsProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || index >= (int)pObj->getClipPointsCount()) return eInvalidIndex; pObj->deleteClipPoint(index); return eOk; } //------------------------------------------------------------------------------------------------------- // Property: ClipRotationMatrix //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipRotationMatrixProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGeMatrix3d matRot; pObj->getClipRotationMatrix(matRot); value = matRot; return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipRotationMatrixProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdGeMatrix3d* pValue = rxvalue_cast(&value); if (pValue) { pObj->setClipRotationMatrix(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: CoincidentFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCoincidentFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCoincidentFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCoincidentFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setCoincidentFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: SnapLockFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderSnapLockFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSnapLockFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderSnapLockFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setSnapLockFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LocateLockFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLocateLockFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLocateLockFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLocateLockFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLocateLockFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: CompletePathInV7Flag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCompletePathInV7FlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCompletePathInV7Flag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCompletePathInV7FlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setCompletePathInV7Flag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: AnonymousFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderAnonymousFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getAnonymousFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderAnonymousFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setAnonymousFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ManipulateAsElementFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderManipulateAsElementFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getManipulateAsElementFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderManipulateAsElementFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setManipulateAsElementFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: InactiveFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderInactiveFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getInactiveFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderInactiveFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setInactiveFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: MissingFileFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderMissingFileFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getMissingFileFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderMissingFileFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setMissingFileFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LevelOverride //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLevelOverrideProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLevelOverride(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLevelOverrideProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdUInt32* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLevelOverride(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: DontDetachOnAllFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDontDetachOnAllFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDontDetachOnAllFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDontDetachOnAllFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDontDetachOnAllFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: MetadataOnlyFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderMetadataOnlyFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getMetadataOnlyFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderMetadataOnlyFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setMetadataOnlyFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: DisplayFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDisplayFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDisplayFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDisplayFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDisplayFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LineStyleScaleFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLineStyleScaleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLineStyleScaleFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLineStyleScaleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLineStyleScaleFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: HiddenLineFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderHiddenLineFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHiddenLineFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderHiddenLineFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setHiddenLineFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: DisplayHiddenLinesFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDisplayHiddenLinesFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDisplayHiddenLinesFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDisplayHiddenLinesFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDisplayHiddenLinesFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: RotateClippingFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderRotateClippingFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRotateClippingFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderRotateClippingFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setRotateClippingFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ExtendedRefFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderExtendedRefFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getExtendedRefFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderExtendedRefFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setExtendedRefFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ClipBackFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipBackFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getClipBackFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipBackFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setClipBackFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ClipFrontFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipFrontFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getClipFrontFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderClipFrontFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setClipFrontFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: CameraOnFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCameraOnFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCameraOnFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCameraOnFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setCameraOnFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: TrueScaleFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderTrueScaleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTrueScaleFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderTrueScaleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setTrueScaleFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: DisplayBoundaryFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDisplayBoundaryFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDisplayBoundaryFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDisplayBoundaryFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDisplayBoundaryFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LibraryRefFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLibraryRefFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLibraryRefFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLibraryRefFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLibraryRefFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: DisplayRasterRefsFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDisplayRasterRefsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDisplayRasterRefsFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDisplayRasterRefsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDisplayRasterRefsFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: UseAlternateFileFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseAlternateFileFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getUseAlternateFileFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseAlternateFileFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setUseAlternateFileFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: UseLightsFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseLightsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getUseLightsFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseLightsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setUseLightsFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: DoNotDisplayAsNestedFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDoNotDisplayAsNestedFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDoNotDisplayAsNestedFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderDoNotDisplayAsNestedFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDoNotDisplayAsNestedFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ColorTableUsage //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderColorTableUsageProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getColorTableUsage(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderColorTableUsageProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdUInt32* pValue = rxvalue_cast(&value); if (pValue) { pObj->setColorTableUsage(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ViewportFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewportFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getViewportFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewportFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setViewportFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ScaleByStorageUnitsFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderScaleByStorageUnitsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getScaleByStorageUnitsFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderScaleByStorageUnitsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setScaleByStorageUnitsFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: PrintColorAdjustmentFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPrintColorAdjustmentFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPrintColorAdjustmentFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPrintColorAdjustmentFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setPrintColorAdjustmentFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: UseViewFlagsFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseViewFlagsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getUseViewFlagsFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseViewFlagsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setUseViewFlagsFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: UseLevelFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseLevelFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getUseLevelFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseLevelFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setUseLevelFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: UseAnnotationScaleFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseAnnotationScaleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getUseAnnotationScaleFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderUseAnnotationScaleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setUseAnnotationScaleFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: NewLevelDisplayMode //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderNewLevelDisplayModeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getNewLevelDisplayMode(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderNewLevelDisplayModeProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentHeader::OdDgNewLevelDisplyMode* pValue = rxvalue_cast(&value); if (pValue) { pObj->setNewLevelDisplayMode(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ViewFlags1 //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags1Property::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getViewFlags(0); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags1Property::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentViewFlags* pValue = rxvalue_cast(&value); if (pValue) { pObj->setViewFlags(0, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ViewFlags2 //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags2Property::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getViewFlags(1); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags2Property::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentViewFlags* pValue = rxvalue_cast(&value); if (pValue) { pObj->setViewFlags(1, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ViewFlags3 //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags3Property::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getViewFlags(2); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags3Property::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentViewFlags* pValue = rxvalue_cast(&value); if (pValue) { pObj->setViewFlags(2, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ViewFlags4 //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags4Property::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getViewFlags(3); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags4Property::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentViewFlags* pValue = rxvalue_cast(&value); if (pValue) { pObj->setViewFlags(3, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ViewFlags5 //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags5Property::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getViewFlags(4); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags5Property::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentViewFlags* pValue = rxvalue_cast(&value); if (pValue) { pObj->setViewFlags(4, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ViewFlags6 //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags6Property::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getViewFlags(5); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags6Property::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentViewFlags* pValue = rxvalue_cast(&value); if (pValue) { pObj->setViewFlags(5, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ViewFlags7 //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags7Property::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getViewFlags(6); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags7Property::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentViewFlags* pValue = rxvalue_cast(&value); if (pValue) { pObj->setViewFlags(6, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ViewFlags8 //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags8Property::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getViewFlags(7); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderViewFlags8Property::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentViewFlags* pValue = rxvalue_cast(&value); if (pValue) { pObj->setViewFlags(7, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ReferencedDatabase //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderReferencedDatabaseProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getReferencedDatabase(); return eOk; } //------------------------------------------------------------------------------------------------------- // Property: Items //------------------------------------------------------------------------------------------------------- ODDG_DEFINE_RX_VALUE_ARRAY_ITERATOR(OdDgElementId); OdRxValueIteratorPtr OdDgReferenceAttachmentHeaderItemsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (!pObj.isNull()) { res = OdRxObjectImpl::createObject(); ((OdDgElementIdValueIterator*)res.get())->m_pIter = pObj->createIterator(); ((OdDgElementIdValueIterator*)res.get())->m_bAllowNull = true; } return res; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderItemsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; int N = 0; for (OdDgElementIteratorPtr it = pObj->createIterator(); !it->done(); it->step()) ++N; count = N; return eOk; } //------------------------------------------------------------------------------------------------------- // Property: ForeignUnits //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderForeignUnitsProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getForeignUnits(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderForeignUnitsProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentHeader::OdDgReferenceForeignUnits* pValue = rxvalue_cast(&value); if (pValue) { pObj->setForeignUnits(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LineStyleScaleMode //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLineStyleScaleModeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLineStyleScaleMode(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLineStyleScaleModeProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentHeader::OdDgLineStyleScaleMode* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLineStyleScaleMode(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LevelId //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLevelIdProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLevelId(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLevelIdProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgElementId* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLevelId(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: isSelfReference //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderisSelfReferenceProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isSelfReference(); return eOk; } //------------------------------------------------------------------------------------------------------- // Property: isRaster //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderisRasterProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isRaster(); return eOk; } //------------------------------------------------------------------------------------------------------- // Property: Transparency //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderTransparencyProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTransparency(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderTransparencyProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmTransparency* pValue = rxvalue_cast(&value); if (pValue) { pObj->setTransparency(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: PaletteModificationMode //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPaletteModificationModeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPaletteModificationMode(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPaletteModificationModeProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgReferenceAttachmentHeader::OdDgXRefPaletteModificationMode* pValue = rxvalue_cast(&value); if (pValue) { pObj->setPaletteModificationMode(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: PaletteValue //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPaletteValueProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPaletteValue(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPaletteValueProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const double* pValue = rxvalue_cast(&value); if (pValue) { pObj->setPaletteValue(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: PaletteSaturation //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPaletteSaturationProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPaletteSaturation(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPaletteSaturationProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const double* pValue = rxvalue_cast(&value); if (pValue) { pObj->setPaletteSaturation(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: PaletteHue //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPaletteHueProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPaletteHue(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPaletteHueProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const double* pValue = rxvalue_cast(&value); if (pValue) { pObj->setPaletteHue(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: HueFixForAllColorsFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderHueFixForAllColorsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHueFixForAllColorsFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderHueFixForAllColorsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setHueFixForAllColorsFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: PrintAdjustedColorsFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPrintAdjustedColorsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPrintAdjustedColorsFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPrintAdjustedColorsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setPrintAdjustedColorsFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LevelTable //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderLevelTableProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgElementId idElm; OdDgLevelTablePtr pLevelTable = pObj->getLevelTable(); if (!pLevelTable.isNull()) idElm = pLevelTable->elementId(); value = idElm; return eOk; } //------------------------------------------------------------------------------------------------------- // Property: PresentationDisplayStyle //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPresentationDisplayStyleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPresentationDisplayStyleEntryId(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderPresentationDisplayStyleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdInt32* pValue = rxvalue_cast(&value); if (pValue) { pObj->setPresentationDisplayStyleEntryId(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: BindedViewPurpose //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderBindedViewPurposeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getBindedViewPurpose(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderBindedViewPurposeProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setBindedViewPurpose(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: BindedViewDiscipline //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderBindedViewDisciplineProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getBindedViewDiscipline(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderBindedViewDisciplineProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdString* pValue = rxvalue_cast(&value); if (pValue) { pObj->setBindedViewDiscipline(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: HasVolumeClip //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderHasVolumeClipProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getApplyVolumeClipFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderHasVolumeClipProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setApplyVolumeClipFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: VolumeClipElementId //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderVolumeClipElementIdProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getVolumeClipElementId(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderVolumeClipElementIdProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgElementId* pValue = rxvalue_cast(&value); if (pValue) { pObj->setVolumeClipElementId(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: VolumeClipMaskElementId //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderVolumeClipMaskElementIdProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getVolumeClipMaskElementId(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderVolumeClipMaskElementIdProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgElementId* pValue = rxvalue_cast(&value); if (pValue) { pObj->setVolumeClipMaskElementId(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ForwardVolumeClip //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderForwardVolumeClipProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getForwardVolumeClipSettings(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderForwardVolumeClipProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgVolumeClipSettings* pValue = rxvalue_cast(&value); if (pValue) { pObj->setForwardVolumeClipSettings(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: BackVolumeClip //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderBackVolumeClipProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getBackVolumeClipSettings(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderBackVolumeClipProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgVolumeClipSettings* pValue = rxvalue_cast(&value); if (pValue) { pObj->setBackVolumeClipSettings(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: CutVolumeClip //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCutVolumeClipProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCutVolumeClipSettings(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderCutVolumeClipProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgVolumeClipSettings* pValue = rxvalue_cast(&value); if (pValue) { pObj->setCutVolumeClipSettings(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: OutsideVolumeClip //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderOutsideVolumeClipProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getOutsideVolumeClipSettings(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceAttachmentHeaderOutsideVolumeClipProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceAttachmentHeaderPtr pObj = OdDgReferenceAttachmentHeader::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdDgVolumeClipSettings* pValue = rxvalue_cast(&value); if (pValue) { pObj->setOutsideVolumeClipSettings(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // OdDgReferenceOverride //------------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------------- // Property: DisplayFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideDisplayFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDisplayFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideDisplayFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDisplayFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: DisplayOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideDisplayOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDisplayOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideDisplayOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setDisplayOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: SnapFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideSnapFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSnapFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideSnapFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setSnapFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: SnapOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideSnapOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSnapOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideSnapOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setSnapOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LocateFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideLocateFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLocateFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideLocateFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLocateFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: LocateOverrideFlag //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideLocateOverrideFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLocateOverrideFlag(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideLocateOverrideFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; const bool* pValue = rxvalue_cast(&value); if (pValue) { pObj->setLocateOverrideFlag(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: PathOfXRef //------------------------------------------------------------------------------------------------------- ODDG_DEFINE_RX_VALUE_ARRAY_ITERATOR(OdUInt64); OdRxValueIteratorPtr OdDgReferenceOverridePathOfXRefProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (!pObj.isNull()) { OdUInt64Array arrValuesToInit; pObj->getPathOfXRef(arrValuesToInit); OdArray arrValues; arrValues.resize(arrValuesToInit.size()); memcpy(arrValues.asArrayPtr(), arrValuesToInit.asArrayPtr(), arrValuesToInit.size() * sizeof(OdUInt64)); ((OdRxOdUInt64ValueIterator *)res.get())->init(arrValues, 0); } return res; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverridePathOfXRefProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; OdUInt64Array arrValues; pObj->getPathOfXRef(arrValues); count = arrValues.size(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverridePathOfXRefProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; OdUInt64Array arrValues; pObj->getPathOfXRef(arrValues); if (index < 0 || index >= (int)arrValues.size()) return eInvalidIndex; value = arrValues[index]; return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverridePathOfXRefProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; OdUInt64Array arrValues; pObj->getPathOfXRef(arrValues); if (index < 0 || index >= (int)arrValues.size()) return eInvalidIndex; const OdUInt64* pValue = rxvalue_cast(&value); if (pValue) { arrValues[index] = *pValue; pObj->setPathOfXRef(arrValues); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverridePathOfXRefProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; OdUInt64Array arrValues; pObj->getPathOfXRef(arrValues); if (index < 0 || index >= (int)arrValues.size()) return eInvalidIndex; const OdUInt64* pValue = rxvalue_cast(&value); if (pValue) { arrValues.insert(arrValues.begin() + index, *pValue); pObj->setPathOfXRef(arrValues); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverridePathOfXRefProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; OdUInt64Array arrValues; pObj->getPathOfXRef(arrValues); if (index < 0 || index >= (int)arrValues.size()) return eInvalidIndex; arrValues.removeAt(index); pObj->setPathOfXRef(arrValues); return eOk; } //------------------------------------------------------------------------------------------------------- // Property: Items //------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgReferenceOverrideItemsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (!pObj.isNull()) { res = OdRxObjectImpl::createObject(); ((OdDgElementIdValueIterator*)res.get())->m_pIter = pObj->createIterator(); ((OdDgElementIdValueIterator*)res.get())->m_bAllowNull = true; } return res; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideItemsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; int N = 0; for (OdDgElementIteratorPtr it = pObj->createIterator(); !it->done(); it->step()) ++N; count = N; return eOk; } //------------------------------------------------------------------------------------------------------- // Property: LevelTable //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOverrideLevelTableProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceOverridePtr pObj = OdDgReferenceOverride::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgElementId idElm; OdDgLevelTablePtr pLevelTable = pObj->getLevelTable(); if (!pLevelTable.isNull()) idElm = pLevelTable->elementId(); value = idElm; return eOk; } //------------------------------------------------------------------------------------------------------- // OdDgReferenceOrder //------------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------------- // Property: Flags //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOrderFlagsProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgReferenceOrderPtr pObj = OdDgReferenceOrder::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getFlags(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOrderFlagsProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgReferenceOrderPtr pObj = OdDgReferenceOrder::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdUInt32* pValue = rxvalue_cast(&value); if (pValue) { pObj->setFlags(*pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- // Property: ReferenceId //------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgReferenceOrderReferenceIdProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgReferenceOrderPtr pObj = OdDgReferenceOrder::cast(pO); if (!pObj.isNull()) { OdArray arrValues; for (OdUInt32 i = 0; i < pObj->getNumberOfReferences(); i++) arrValues.push_back(pObj->getReferenceId(i)); ((OdRxOdUInt64ValueIterator *)res.get())->init(arrValues, 0); } return res; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOrderReferenceIdProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgReferenceOrderPtr pObj = OdDgReferenceOrder::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->getNumberOfReferences(); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOrderReferenceIdProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgReferenceOrderPtr pObj = OdDgReferenceOrder::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || index >= (int)pObj->getNumberOfReferences()) return eInvalidIndex; value = pObj->getReferenceId(index); return eOk; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOrderReferenceIdProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgReferenceOrderPtr pObj = OdDgReferenceOrder::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || index >= (int)pObj->getNumberOfReferences()) return eInvalidIndex; const OdUInt64* pValue = rxvalue_cast(&value); if (pValue) { pObj->setReferenceId(index, *pValue); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOrderReferenceIdProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgReferenceOrderPtr pObj = OdDgReferenceOrder::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || index >= (int)pObj->getNumberOfReferences()) return eInvalidIndex; const OdUInt64* pValue = rxvalue_cast(&value); if (pValue) { pObj->addReferenceId(*pValue, index); return eOk; } return eNotThatKindOfClass; } //------------------------------------------------------------------------------------------------------- OdResult OdDgReferenceOrderReferenceIdProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgReferenceOrderPtr pObj = OdDgReferenceOrder::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || index >= (int)pObj->getNumberOfReferences()) return eInvalidIndex; pObj->deleteReferenceId(index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgBSplineCurve2d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: CurveDisplayFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dCurveDisplayFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCurveDisplayFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dCurveDisplayFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setCurveDisplayFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: PolygonDisplayFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dPolygonDisplayFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPolygonDisplayFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dPolygonDisplayFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setPolygonDisplayFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HoleFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dHoleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHoleFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dHoleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setHoleFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ClosedFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dClosedFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getClosedFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dClosedFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setClosedFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: IsPeriodic //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dIsPeriodicProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isPeriodic(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: IsRational //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dIsRationalProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isRational(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Order //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dOrderProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getOrder(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: NaturalTangentsFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dNaturalTangentsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getNaturalTangentsFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dNaturalTangentsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setNaturalTangentsFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ChordLenTangentsFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dChordLenTangentsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getChordLenTangentsFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dChordLenTangentsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setChordLenTangentsFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ColinearTangentsFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dColinearTangentsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getColinearTangentsFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dColinearTangentsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setColinearTangentsFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HasFitData //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dHasFitDataProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->hasFitData(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: StartParam //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dStartParamProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; double startParam = 0; pObj->getStartParam(startParam); value = startParam; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: EndParam //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dEndParamProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; double endParam = 0; pObj->getEndParam(endParam); value = endParam; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: StartPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dStartPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d startPoint = OdGePoint2d(); pObj->getStartPoint(startPoint); value = startPoint; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: EndPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dEndPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d endPoint = OdGePoint2d(); pObj->getEndPoint(endPoint); value = endPoint; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Area //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dAreaProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; double area = 0; pObj->getArea(area); value = area; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: IsNull //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dIsNullProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isNull(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ControlPoints //----------------------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgBSplineCurve2dControlPointsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (!pObj.isNull()) { OdArray arrObjects; const OdUInt32 objCount = pObj->numControlPoints(); for (OdUInt32 i = 0; i < objCount; i++) { OdGePoint2d controlPoint = OdGePoint2d(); pObj->getControlPointAt(i, controlPoint); arrObjects.push_back(controlPoint); } ((OdRxOdGePoint2dValueIterator*)res.get())->init(arrObjects, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dControlPointsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->numControlPoints(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dControlPointsProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d controlPoint = OdGePoint2d(); pObj->getControlPointAt((OdUInt32)index, controlPoint); value = controlPoint; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dControlPointsProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d controlPoint = *rxvalue_cast(&value); pObj->setControlPointAt((OdUInt32)index, controlPoint); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dControlPointsProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d controlPoint = *rxvalue_cast(&value); pObj->insertControlPointAt((double)index, controlPoint); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dControlPointsProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->removeControlPointAt(index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: FitPoints //----------------------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgBSplineCurve2dFitPointsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (!pObj.isNull()) { OdArray arrObjects; const OdUInt32 objCount = pObj->numFitPoints(); for (OdUInt32 i = 0; i < objCount; i++) { OdGePoint2d controlPoint = OdGePoint2d(); pObj->getFitPointAt(i, controlPoint); arrObjects.push_back(controlPoint); } ((OdRxOdGePoint2dValueIterator*)res.get())->init(arrObjects, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dFitPointsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->numFitPoints(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dFitPointsProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d controlPoint = OdGePoint2d(); pObj->getFitPointAt((OdUInt32)index, controlPoint); value = controlPoint; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dFitPointsProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d controlPoint = *rxvalue_cast(&value); pObj->setFitPointAt((OdUInt32)index, controlPoint); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dFitPointsProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint2d controlPoint = *rxvalue_cast(&value); pObj->insertFitPointAt((OdInt32)index, controlPoint); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dFitPointsProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->removeFitPointAt((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Fill //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dFillProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; switch (pObj->getFillType()) { case OdDg::kFillColor: { OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getFillColorIndex(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; } break; case OdDg::kGradientFill: { value = pObj->getGradientFill(); } break; case OdDg::kNoFill: { return eEmptySet; } break; } return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dFillProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColorIndex = rxvalue_cast(&value); const OdDgGradientFill* pGradient = rxvalue_cast(&value); if (pColorIndex) { OdUInt32 uColorIndex = 0; switch (pColorIndex->colorMethod()) { case OdCmEntityColor::kByLayer: uColorIndex = OdDg::kColorByLevel; break; case OdCmEntityColor::kByBlock: uColorIndex = OdDg::kColorByCell; break; case OdCmEntityColor::kByColor: { uColorIndex = OdDgColorTable::getColorIndexByRGB(pObj->database(), ODRGB(pColorIndex->red(), pColorIndex->green(), pColorIndex->blue())); } break; case OdCmEntityColor::kByDgnIndex: case OdCmEntityColor::kByACI: case OdCmEntityColor::kByPen: { uColorIndex = pColorIndex->colorIndex(); } break; } pObj->setFillColor(uColorIndex); } else if (pGradient) pObj->setGradientFill(*pGradient); else pObj->setFillType(OdDg::kNoFill); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HatchPattern //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dHatchPatternProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; if (pObj->getHatchPattern().isNull()) return eEmptySet; OdDgHatchPatternPtr pHatch = pObj->getHatchPattern(false); OdRxObjectPtr pHatchObj = pHatch; value = pHatchObj; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve2dHatchPatternProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve2dPtr pObj = OdDgBSplineCurve2d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdRxObjectPtr* pHatch = rxvalue_cast(&value); if ((*pHatch).isNull() || !(*pHatch)->isKindOf(OdDgHatchPattern::desc())) pObj->setHatchPattern(OdDgHatchPatternPtr()); else { OdDgHatchPatternPtr pHatchData = *pHatch; pObj->setHatchPattern(pHatchData); } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgBSplineCurve3d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: CurveDisplayFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dCurveDisplayFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCurveDisplayFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dCurveDisplayFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setCurveDisplayFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: PolygonDisplayFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dPolygonDisplayFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPolygonDisplayFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dPolygonDisplayFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setPolygonDisplayFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HoleFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dHoleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHoleFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dHoleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setHoleFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ClosedFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dClosedFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getClosedFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dClosedFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setClosedFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: IsPeriodic //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dIsPeriodicProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isPeriodic(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: IsRational //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dIsRationalProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isRational(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Order //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dOrderProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getOrder(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: NaturalTangentsFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dNaturalTangentsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getNaturalTangentsFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dNaturalTangentsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setNaturalTangentsFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ChordLenTangentsFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dChordLenTangentsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getChordLenTangentsFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dChordLenTangentsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setChordLenTangentsFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ColinearTangentsFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dColinearTangentsFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getColinearTangentsFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dColinearTangentsFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setColinearTangentsFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HasFitData //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dHasFitDataProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->hasFitData(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: StartParam //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dStartParamProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; double startParam = 0; pObj->getStartParam(startParam); value = startParam; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: EndParam //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dEndParamProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; double endParam = 0; pObj->getEndParam(endParam); value = endParam; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: StartPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dStartPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d startPoint = OdGePoint3d(); pObj->getStartPoint(startPoint); value = startPoint; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: EndPoint //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dEndPointProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d endPoint = OdGePoint3d(); pObj->getEndPoint(endPoint); value = endPoint; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Area //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dAreaProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; double area = 0; pObj->getArea(area); value = area; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: IsNull //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dIsNullProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isNull(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ControlPoints //----------------------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgBSplineCurve3dControlPointsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (!pObj.isNull()) { OdArray arrObjects; const OdUInt32 objCount = pObj->numControlPoints(); for (OdUInt32 i = 0; i < objCount; i++) { OdGePoint3d controlPoint = OdGePoint3d(); pObj->getControlPointAt(i, controlPoint); arrObjects.push_back(controlPoint); } ((OdRxOdGePoint3dValueIterator*)res.get())->init(arrObjects, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dControlPointsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->numControlPoints(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dControlPointsProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d controlPoint = OdGePoint3d(); pObj->getControlPointAt((OdUInt32)index, controlPoint); value = controlPoint; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dControlPointsProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d controlPoint = *rxvalue_cast(&value); pObj->setControlPointAt((OdUInt32)index, controlPoint); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dControlPointsProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d controlPoint = *rxvalue_cast(&value); pObj->insertControlPointAt((double)index, controlPoint); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dControlPointsProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->removeControlPointAt(index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: FitPoints //----------------------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgBSplineCurve3dFitPointsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (!pObj.isNull()) { OdArray arrObjects; const OdUInt32 objCount = pObj->numFitPoints(); for (OdUInt32 i = 0; i < objCount; i++) { OdGePoint3d controlPoint = OdGePoint3d(); pObj->getFitPointAt(i, controlPoint); arrObjects.push_back(controlPoint); } ((OdRxOdGePoint3dValueIterator*)res.get())->init(arrObjects, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dFitPointsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->numFitPoints(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dFitPointsProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d controlPoint = OdGePoint3d(); pObj->getFitPointAt((OdUInt32)index, controlPoint); value = controlPoint; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dFitPointsProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d controlPoint = *rxvalue_cast(&value); pObj->setFitPointAt((OdUInt32)index, controlPoint); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dFitPointsProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d controlPoint = *rxvalue_cast(&value); pObj->insertFitPointAt((OdInt32)index, controlPoint); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dFitPointsProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->removeFitPointAt((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Fill //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dFillProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; switch (pObj->getFillType()) { case OdDg::kFillColor: { OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getFillColorIndex(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; } break; case OdDg::kGradientFill: { value = pObj->getGradientFill(); } break; case OdDg::kNoFill: { return eEmptySet; } break; } return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dFillProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColorIndex = rxvalue_cast(&value); const OdDgGradientFill* pGradient = rxvalue_cast(&value); if (pColorIndex) { OdUInt32 uColorIndex = 0; switch (pColorIndex->colorMethod()) { case OdCmEntityColor::kByLayer: uColorIndex = OdDg::kColorByLevel; break; case OdCmEntityColor::kByBlock: uColorIndex = OdDg::kColorByCell; break; case OdCmEntityColor::kByColor: { uColorIndex = OdDgColorTable::getColorIndexByRGB(pObj->database(), ODRGB(pColorIndex->red(), pColorIndex->green(), pColorIndex->blue())); } break; case OdCmEntityColor::kByDgnIndex: case OdCmEntityColor::kByACI: case OdCmEntityColor::kByPen: { uColorIndex = pColorIndex->colorIndex(); } break; } pObj->setFillColor(uColorIndex); } else if (pGradient) pObj->setGradientFill(*pGradient); else pObj->setFillType(OdDg::kNoFill); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HatchPattern //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dHatchPatternProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; if (pObj->getHatchPattern().isNull()) return eEmptySet; OdDgHatchPatternPtr pHatch = pObj->getHatchPattern(false); OdRxObjectPtr pHatchObj = pHatch; value = pHatchObj; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgBSplineCurve3dHatchPatternProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgBSplineCurve3dPtr pObj = OdDgBSplineCurve3d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdRxObjectPtr* pHatch = rxvalue_cast(&value); if ((*pHatch).isNull() || !(*pHatch)->isKindOf(OdDgHatchPattern::desc())) pObj->setHatchPattern(OdDgHatchPatternPtr()); else { OdDgHatchPatternPtr pHatchData = *pHatch; pObj->setHatchPattern(pHatchData); } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgEllipse2d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: PrimaryAxis //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dPrimaryAxisProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPrimaryAxis(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dPrimaryAxisProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setPrimaryAxis(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: SecondaryAxis //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dSecondaryAxisProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSecondaryAxis(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dSecondaryAxisProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setSecondaryAxis(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: RotationAngle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dRotationAngleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRotationAngle(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dRotationAngleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setRotationAngle(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Origin //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dOriginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getOrigin(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dOriginProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setOrigin(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HoleFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dHoleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHoleFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dHoleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setHoleFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Fill //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dFillProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; switch (pObj->getFillType()) { case OdDg::kFillColor: { OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getFillColorIndex(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; } break; case OdDg::kGradientFill: { value = pObj->getGradientFill(); } break; case OdDg::kNoFill: { return eEmptySet; } break; } return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dFillProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColorIndex = rxvalue_cast(&value); const OdDgGradientFill* pGradient = rxvalue_cast(&value); if (pColorIndex) { OdUInt32 uColorIndex = 0; switch (pColorIndex->colorMethod()) { case OdCmEntityColor::kByLayer: uColorIndex = OdDg::kColorByLevel; break; case OdCmEntityColor::kByBlock: uColorIndex = OdDg::kColorByCell; break; case OdCmEntityColor::kByColor: { uColorIndex = OdDgColorTable::getColorIndexByRGB(pObj->database(), ODRGB(pColorIndex->red(), pColorIndex->green(), pColorIndex->blue())); } break; case OdCmEntityColor::kByDgnIndex: case OdCmEntityColor::kByACI: case OdCmEntityColor::kByPen: { uColorIndex = pColorIndex->colorIndex(); } break; } pObj->setFillColor(uColorIndex); } else if (pGradient) pObj->setGradientFill(*pGradient); else pObj->setFillType(OdDg::kNoFill); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HatchPattern //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dHatchPatternProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; if (pObj->getHatchPattern().isNull()) return eEmptySet; OdDgHatchPatternPtr pHatch = pObj->getHatchPattern(false); OdRxObjectPtr pHatchObj = pHatch; value = pHatchObj; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse2dHatchPatternProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse2dPtr pObj = OdDgEllipse2d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdRxObjectPtr* pHatch = rxvalue_cast(&value); if ((*pHatch).isNull() || !(*pHatch)->isKindOf(OdDgHatchPattern::desc())) pObj->setHatchPattern(OdDgHatchPatternPtr()); else { OdDgHatchPatternPtr pHatchData = *pHatch; pObj->setHatchPattern(pHatchData); } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgEllipse3d //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: PrimaryAxis //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dPrimaryAxisProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getPrimaryAxis(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dPrimaryAxisProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setPrimaryAxis(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: SecondaryAxis //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dSecondaryAxisProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSecondaryAxis(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dSecondaryAxisProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setSecondaryAxis(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: RotationAngle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dRotationProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRotation(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dRotationProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setRotation(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Origin //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dOriginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; OdGePoint3d origin = OdGePoint3d(); pObj->getOrigin(origin); value = origin; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dOriginProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setOrigin(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HoleFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dHoleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHoleFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dHoleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setHoleFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Fill //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dFillProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; switch (pObj->getFillType()) { case OdDg::kFillColor: { OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getFillColorIndex(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; } break; case OdDg::kGradientFill: { value = pObj->getGradientFill(); } break; case OdDg::kNoFill: { return eEmptySet; } break; } return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dFillProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColorIndex = rxvalue_cast(&value); const OdDgGradientFill* pGradient = rxvalue_cast(&value); if (pColorIndex) { OdUInt32 uColorIndex = 0; switch (pColorIndex->colorMethod()) { case OdCmEntityColor::kByLayer: uColorIndex = OdDg::kColorByLevel; break; case OdCmEntityColor::kByBlock: uColorIndex = OdDg::kColorByCell; break; case OdCmEntityColor::kByColor: { uColorIndex = OdDgColorTable::getColorIndexByRGB(pObj->database(), ODRGB(pColorIndex->red(), pColorIndex->green(), pColorIndex->blue())); } break; case OdCmEntityColor::kByDgnIndex: case OdCmEntityColor::kByACI: case OdCmEntityColor::kByPen: { uColorIndex = pColorIndex->colorIndex(); } break; } pObj->setFillColor(uColorIndex); } else if (pGradient) pObj->setGradientFill(*pGradient); else pObj->setFillType(OdDg::kNoFill); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HatchPattern //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dHatchPatternProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; if (pObj->getHatchPattern().isNull()) return eEmptySet; OdDgHatchPatternPtr pHatch = pObj->getHatchPattern(false); OdRxObjectPtr pHatchObj = pHatch; value = pHatchObj; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgEllipse3dHatchPatternProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgEllipse3dPtr pObj = OdDgEllipse3d::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdRxObjectPtr* pHatch = rxvalue_cast(&value); if ((*pHatch).isNull() || !(*pHatch)->isKindOf(OdDgHatchPattern::desc())) pObj->setHatchPattern(OdDgHatchPatternPtr()); else { OdDgHatchPatternPtr pHatchData = *pHatch; pObj->setHatchPattern(pHatchData); } return eOk; } //-----------------------------------------------------------------------------------------------------------------------