Acad::ErrorStatus PDEcone::subGetGeomExtents(AcDbExtents& extents) const #else Acad::ErrorStatus PDEcone::getGeomExtents(AcDbExtents& extents) const #endif { assertReadEnabled(); extents.set(m_ptStart, m_ptStart); AcGePoint3dArray pArray; AcGeIntArray stdIdx; int actPrecision; getVertices(m_dDividPrecision, pArray, stdIdx, actPrecision); int i; for(i = 0; i < actPrecision; ++i) { extents.addPoint(pArray[i]); extents.addPoint(pArray[i + actPrecision + 1]); } return Acad::eOk; }
Acad::ErrorStatus AsdkMkrObject::dxfOutFields(AcDbDxfFiler* filer) const { assertReadEnabled(); Acad::ErrorStatus es; es = AcDbObject::dxfOutFields(filer); assert(es == Acad::eOk); // TODO: add the functions for your own entity in the following way: // es = filer->writeItem(AcDb::kDxfXCoord, mCenter); // assert(es == Acad::eOk); es = filer->writeItem(AcDb::kDxfSubclass, /*NOXLATE*/"AsdkMkrObject"); assert(es == Acad::eOk); // end of dxfOutFields return es; }
// 取得合适的剖分精度,如果实体较小,则剖分精度就会低,如果实体较大,则剖分 // 精度不大于实体限定的剖分精度m_dDividPrecision。 int PDEcone::getMaxPrecision(AcGiWorldDraw *mode) const { assertReadEnabled(); if(!getCalMaxPrecision()) return m_dDividPrecision; double dia; if(m_dDiameter1 > m_dDiameter2) dia = m_dDiameter1; else dia = m_dDiameter2; int pre = (int)(PI / acos(1.0 - mode->deviation(kAcGiMaxDevForCircle, m_ptStart) * 2.0 / dia)); if(pre > m_dDividPrecision) return m_dDividPrecision; else if(pre > 8) return pre; else return 8; }
void AsdkSmiley::list() const { assertReadEnabled(); AcGePoint3d cen( center() ); double rad = radius(); AcDbEntity::list(); acutPrintf( "%12scenter point, X=%9.16q0 Y=%9.16q0 Z=%9.16q0\n" "%11s radius %9.16q0\n" "%7s eye radius %9.16q0\n" "%7s eye height %9.16q0\n" "%7s eyes apart %9.16q0\n", "", cen[X], cen[Y], cen[Z], "", rad, "", meyesize, "", meyesheight, "", meyesapart ); }
Acad::ErrorStatus PDSphere::dwgOutFields(AcDbDwgFiler* filer)const { assertReadEnabled(); Acad::ErrorStatus es=Acad::eOk; // Call dwgOutFields from father class: PDPrimary3D if((es=PDPrimary3D::dwgOutFields(filer))!=Acad::eOk) { return es; } // Write version number. filer->writeItem((Adesk::UInt16) VERSION_PDSPHERE); // Write the data members. filer->writeItem(m_ptCenter); filer->writeItem(m_dRadius); filer->writeItem(m_nprecision); return filer->filerStatus(); }
Acad::ErrorStatus DoubleTunnelDraw::subGetGripPoints ( AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds ) const { assertReadEnabled () ; gripPoints.append( m_startPt ); if( m_startPt == m_endPt ) { AcGePoint3d pt( m_startPt ); pt.x = pt.x + m_width * 0.3; gripPoints.append( pt ); } else { gripPoints.append( m_endPt ); } return Acad::eOk; }
Acad::ErrorStatus AsdkSmiley::dwgOutFields(AcDbDwgFiler *filer) const { assertReadEnabled(); AcDbEntity::dwgOutFields( filer ); // Write version number filer->writeItem( kCurrentVersionNumber ); filer->writeItem( center() ); filer->writeItem( radius() ); filer->writeItem( mnormal ); filer->writeItem( meyesapart ); filer->writeItem( meyesheight ); filer->writeItem( meyesize ); filer->writeItem( mouthLeft() ); filer->writeItem( mouthBottom() ); filer->writeItem( mouthRight() ); return filer->filerStatus(); }
Acad::ErrorStatus PDEcone::getgrippoints(AcGePoint3dArray& gripArray) const { assertReadEnabled(); gripArray.append(m_ptStart); gripArray.append(m_ptEnd); AcGePoint3dArray pArray; AcGeIntArray stdIdx; int actPrecision; getVertices(m_dDividPrecision, pArray, stdIdx, actPrecision); int actPrecision__1 = actPrecision + 1; int stdIdxLen_1 = stdIdx.length() - 1; for(int i = 0; i < stdIdxLen_1; i++) { gripArray.append(pArray[stdIdx[i]]); gripArray.append(pArray[stdIdx[i] + actPrecision__1]); } return Acad::eOk; }
//- Dxf Filing protocol Acad::ErrorStatus DbValve::dxfOutFields (AcDbDxfFiler *pFiler) const { assertReadEnabled () ; //----- Save parent class information first. Acad::ErrorStatus es =AcDbPolyline::dxfOutFields (pFiler) ; if ( es != Acad::eOk ) return (es) ; es =pFiler->writeItem (AcDb::kDxfSubclass, _RXST("DbValve")) ; if ( es != Acad::eOk ) return (es) ; //----- Object version number needs to be saved first if ( (es =pFiler->writeUInt32 (kDxfInt32, DbValve::kCurrentVersionNumber)) != Acad::eOk ) return (es) ; //----- Output params //..... if ( (es =pFiler->writePoint2d(kDxfXCoord, DbValve::m_center)) != Acad::eOk ) return (es); if ( (es =pFiler->writeInt16(kDxfInt16, DbValve::m_index)) != Acad::eOk ) return (es); return (pFiler->filerStatus ()) ; }
//- Osnap points protocol Acad::ErrorStatus SimpleWallDraw::subGetOsnapPoints ( AcDb::OsnapMode osnapMode, int gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds ) const { assertReadEnabled () ; // 只捕捉1种类型的点:中点 if( osnapMode != AcDb::kOsModeCen ) return Acad::eOk; if( osnapMode == AcDb::kOsModeCen ) { snapPoints.append( m_insertPt ); } return Acad::eOk; }
Acad::ErrorStatus GasPumpGEDraw::subGetOsnapPoints ( AcDb::OsnapMode osnapMode, Adesk::GsMarker gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds ) const { assertReadEnabled () ; if( osnapMode != AcDb::kOsModeCen ) return Acad::eOk; Acad::ErrorStatus es = Acad::eOk; if( osnapMode == AcDb::kOsModeCen ) { snapPoints.append( m_startPt ); } return es; }
//- Dxf Filing protocol Acad::ErrorStatus CPipeAttribute::dxfOutFields (AcDbDxfFiler *pFiler) const { // 检查对象处于正确的打开状态 assertReadEnabled () ; //父类数据的重载 Acad::ErrorStatus es =AcDbObject::dxfOutFields (pFiler) ; if ( es != Acad::eOk ) return (es) ; es =pFiler->writeItem (AcDb::kDxfSubclass, _RXST("CPipeAttribute")) ; if ( es != Acad::eOk ) return (es) ; //----- Object version number needs to be saved first if ( (es =pFiler->writeUInt32 (kDxfInt32, CPipeAttribute::kCurrentVersionNumber)) != Acad::eOk ) return (es) ; ////写入数据开始 pFiler->writeItem(AcDb::kDxfReal , m_dRadius); pFiler->writeItem(AcDb::kDxfReal+1 , m_dThickness); pFiler->writeItem(AcDb::kDxfReal+2 , m_dDeep); pFiler->writeItem(AcDb::kDxfText ,m_cMaterial); ////写入数据结束 return (pFiler->filerStatus ()) ; }
/////////////////////////////////////////////////////////////////////////////// /// public overloaded constant getVertices /// <TODO: insert function description here> /// /// @param Precision int /// @param vertexArray AcGePoint3dArray & /// /// @return Acad::ErrorStatus /// /// @remarks /// /// @see /// /// @author BeJing ZhongKe Fulong, shinf @date 2007-1-5 /// 北京中科辅龙计算机技术有限公司,PDSOFT产品事业部--研发 /////////////////////////////////////////////////////////////////////////////// Acad::ErrorStatus PDEcone::getVertices(int Precision, AcGePoint3dArray& vertexArray) const { assertReadEnabled(); int actPrecision__1 = Precision + 1; vertexArray.setLogicalLength(actPrecision__1 * 2); AcGeVector3d vect = getFaceVect(); AcGeVector3d Wy(0, 1, 0), Wz(0, 0, 1), Ax;// Ay; if (fabs(vect[X]) <1.0/64 && fabs(vect[Y])<1.0/64) Ax = Wy.crossProduct(vect); else Ax = Wz.crossProduct(vect); Ax.normalize(); //Ay = vect.crossProduct(Ax); //Ay.normalize(); AcGeVector3d AxE = Ax * m_dDiameter2 / 2.0; Ax *= m_dDiameter1 / 2.0; double rotateAngPre = PI * 2.0 / Precision; vertexArray[0] = m_ptStart + Ax; vertexArray[actPrecision__1] = m_ptEnd + AxE; AcGeVector3d VecSTemp, VecETemp; int i; VecSTemp = Ax; VecETemp = AxE; for(i = 1; i < Precision; ++i) { VecSTemp.rotateBy(rotateAngPre , vect); VecETemp.rotateBy(rotateAngPre, vect); vertexArray[i] = m_ptStart + VecSTemp; vertexArray[i + actPrecision__1] = m_ptEnd + VecETemp; } vertexArray[Precision] = vertexArray[0]; vertexArray[Precision + actPrecision__1] = vertexArray[actPrecision__1]; return Acad::eOk; }
Adesk::Boolean PolyLineDirectionDraw::subWorldDraw( AcGiWorldDraw* mode ) { assertReadEnabled () ; // 绘制箭头主干 //DrawLine( mode, m_insertPt, m_angle, m_length ); //DrawLine( mode, m_insertPt, m_angle + PI, m_length ); // 绘制箭头 AcGeVector3d v( AcGeVector3d::kXAxis ); v.rotateBy( m_angle, AcGeVector3d::kZAxis ); DrawArrow( mode, m_insertPt/* + v * m_length*/, m_angle, m_arrow_width, m_arrow_length ); // 绘制污风标记 if( m_vt == 1 ) { v.rotateBy( PI, AcGeVector3d::kZAxis ); DrawSin( mode, m_insertPt + v * m_length, m_angle, m_radius );; } return Adesk::kTrue; }
Acad::ErrorStatus asdkBolt::dwgOutFields(AcDbDwgFiler* pFiler) const { assertReadEnabled(); Acad::ErrorStatus es; // Call dwgOutFields from AcDbEntity if ((es = AcDbEntity::dwgOutFields(pFiler)) != Acad::eOk) { return es; } // Write version number. pFiler->writeItem((Adesk::UInt16) VERSION_ASDKBOLT); // Write the data members. pFiler->writeItem(headDiameter); pFiler->writeItem(headHeight); pFiler->writeInt32(headSides); pFiler->writeItem(shaftDiameter); pFiler->writeItem(shaftLength); pFiler->writeItem(threadLength); pFiler->writeItem(threadWidth); pFiler->writeBytes(transformation.entry,128); pFiler->writeItem(alignment); pFiler->writeItem(position); pHead->dwgOutFields(pFiler); pShaft->dwgOutFields(pFiler); if(visibility()==AcDb::kVisible) int j=1; char *layername; layername=layer(); int color=colorIndex(); color=pHead->colorIndex(); color=pShaft->colorIndex(); return pFiler->filerStatus(); }
Acad::ErrorStatus AsdkEmployee::dxfOutFields(AcDbDxfFiler* pFiler) const { assertReadEnabled(); Acad::ErrorStatus es; if ((es = AcDbEllipse::dxfOutFields(pFiler)) != Acad::eOk) return es; // Write version number. pFiler->writeItem(AcDb::kDxfInt16, (Adesk::UInt16) VERSION_ASDKEMPLOYEE); pFiler->writeItem(AcDb::kDxfSubclass, "AsdkEmployee"); pFiler->writeItem(AcDb::kDxfXTextString, m_lastName); pFiler->writeItem(AcDb::kDxfXTextString + 1, m_firstName); pFiler->writeItem(AcDb::kDxfInt32, m_cube); pFiler->writeItem(AcDb::kDxfInt32 + 1, m_ID); // TODO: here you can file datamembers not // created by the ObjectARX Add-In. return es; }
// [9/5/2007 suzhiyong] Acad::ErrorStatus PDSphere::explodeTo3DSolid(AcDb3dSolid* &p3dSolid) const { assertReadEnabled(); AcDb3dSolid *pBody; pBody = new AcDb3dSolid; if(pBody->createSphere(m_dRadius) != Acad::eOk) { delete pBody; return Acad::eNotApplicable; } AcGeMatrix3d mat; mat.setTranslation(m_ptCenter.asVector()); pBody->transformBy(mat); pBody->setPropertiesFrom(this); p3dSolid = pBody; return Acad::eOk; }
Adesk::Boolean TailraceGEDraw::subWorldDraw( AcGiWorldDraw* mode ) { assertReadEnabled () ; AcGeVector3d v( AcGeVector3d::kXAxis ); v.rotateBy( m_angle, AcGeVector3d::kZAxis ); if( v.x < 0 ) v.negate(); m_angle = v.angleTo( AcGeVector3d::kXAxis, -AcGeVector3d::kZAxis ); caculPts(); DrawLine(mode,m_insertPt,m_pt0); DrawLine(mode,m_pt2,m_pt3); DrawLine(mode,m_pt3,m_pt5); DrawLine(mode,m_pt5,m_pt8); DrawLine(mode,m_pt2,m_pt15); DrawLine(mode,m_pt14,m_pt15); DrawLine(mode,m_pt13,m_pt14); DrawLine(mode,m_pt13,m_pt12); DrawLine(mode,m_pt7,m_pt10); DrawLine(mode,m_pt6,m_pt11); DrawArc(mode,m_pt2,m_pt0,m_pt3,false); AcGePoint3dArray pts; pts.append(m_pt4); pts.append(m_pt9); pts.append(m_pt15); pts.append(m_pt14); pts.append(m_pt13); pts.append(m_pt12); pts.append(m_pt8); pts.append(m_pt7); pts.append(m_pt5); DrawBackGround(mode,pts,7); return Adesk::kTrue; }
Acad::ErrorStatus PDEcone::dwgOutFields(AcDbDwgFiler* filer) const { assertReadEnabled(); Acad::ErrorStatus es=Acad::eOk; // Call dwgOutFields from father class: PDPrimary3D if((es=PDPrimary3D::dwgOutFields(filer))!=Acad::eOk) { return es; } // Write version number. filer->writeItem((Adesk::UInt16) VERSION_PDECONE); // Write the data members. filer->writeItem(m_ptStart); filer->writeItem(m_ptEnd); filer->writeItem(m_dDiameter1); filer->writeItem(m_dDiameter2); filer->writeItem(m_vect); return filer->filerStatus(); }
Acad::ErrorStatus SphereNitrogenPipeDraw::subGetOsnapPoints ( AcDb::OsnapMode osnapMode, int gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds ) const { assertReadEnabled () ; // 捕捉2种类型的点:端点和中心点 if( osnapMode != AcDb::kOsModeCen ) return Acad::eOk; Acad::ErrorStatus es = Acad::eOk; if( osnapMode == AcDb::kOsModeCen ) { snapPoints.append( m_pt ); } return es; }
Acad::ErrorStatus AsdkSmiley::explode(AcDbVoidPtrArray& entities) const { assertReadEnabled(); AcDbCircle *pCircle = new AcDbCircle( center(), mnormal, radius() ); entities.append( pCircle ); // Create eyes // AcGePoint3dArray eyearray; eyes( eyearray ); for( int i = 0; i < eyearray.length(); i++ ){ AcDbCircle *pCircle = new AcDbCircle( eyearray.at(i), mnormal, meyesize ); entities.append( pCircle ); } // Create smile arc // AcGePoint3d smilecen( mouthCenter() ), startpt( mouthLeft() ), endpt( mouthRight() ); AcGeVector3d normvec( 1, 0, 0 ), startvec = startpt - smilecen, endvec = endpt - smilecen; double startang = 2 * kPi - startvec.angleTo( normvec ), endang = 2 * kPi - endvec.angleTo( normvec ); AcDbArc *pArc = new AcDbArc( smilecen, mnormal, mouthRadius(), startang, endang ); entities.append( pArc ); // Create smile arc chord // AcDbLine *pLine = new AcDbLine( startpt, endpt ); entities.append( pLine ); return Acad::eOk; }
Acad::ErrorStatus SimpleChimneyDraw::subGetOsnapPoints ( AcDb::OsnapMode osnapMode, int gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds ) const { assertReadEnabled () ; // 只捕捉1种类型的点:端点 if( osnapMode != AcDb::kOsMaskEnd ) return Acad::eOk; if( osnapMode == AcDb::kOsMaskEnd ) { int len = m_pts.length(); for( int i = 0; i < len; i++ ) { snapPoints.append( m_pts[i] ); } } return Acad::eOk; }
Acad::ErrorStatus PDSphere::dxfOutFields(AcDbDxfFiler* filer) const { assertReadEnabled(); Acad::ErrorStatus es; if ((es = PDPrimary3D::dxfOutFields(filer)) != Acad::eOk) { return es; } // Write subclass marker. filer->writeItem(AcDb::kDxfSubclass, _T("PDSphere")); // Write version number. filer->writeItem(AcDb::kDxfInt16, (Adesk::UInt16) VERSION_PDSPHERE); // Write data members. filer->writeItem(AcDb::kDxfXCoord, m_ptCenter); filer->writeItem(AcDb::kDxfReal,m_dRadius); filer->writeItem(AcDb::kDxfInt32,m_nprecision); return filer->filerStatus(); }
Acad::ErrorStatus DoubleTunnelDraw::subGetOsnapPoints ( AcDb::OsnapMode osnapMode, int gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds ) const { assertReadEnabled () ; // 只捕捉端点 if ( osnapMode == AcDb::kOsModeEnd ) { snapPoints.append( m_startPt ); snapPoints.append( m_endPt ); //snapPoints.append(m_leftStartPt); //snapPoints.append(m_leftEndPt); //snapPoints.append(m_rightStartPt); //snapPoints.append(m_rightEndPt); } return Acad::eOk; }
Acad::ErrorStatus AsdkEmployee::dwgOutFields(AcDbDwgFiler* pFiler) const { assertReadEnabled(); Acad::ErrorStatus es; // Call dwgOutFields from AcDbEllipse if ((es = AcDbEllipse::dwgOutFields(pFiler)) != Acad::eOk) { return es; } // Write version number. pFiler->writeItem((Adesk::UInt16) VERSION_ASDKEMPLOYEE); // Write the data members. pFiler->writeItem(m_lastName); pFiler->writeItem(m_firstName); pFiler->writeItem(m_cube); pFiler->writeItem(m_ID); // TODO: here you can file datamembers not // created by the ObjectARX Add-In. return pFiler->filerStatus(); }
Acad::ErrorStatus AcRectangle::getGripPoints(AcDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d& curViewDir, const int bitflags) const { assertReadEnabled(); #define MODULE_ID ACCMENTITYCOLOR_CPP_ Adesk::UInt32 r(0); Adesk::UInt32 g(0); Adesk::UInt32 b(0); r =AcCmEntityColor::mLUT[1][0]; g =AcCmEntityColor::mLUT[1][1]; b =AcCmEntityColor::mLUT[1][2]; AppData *appData0 = new AppData(0); AppData *appData1 = new AppData(1); AppData *appData2 = new AppData(2); AppData *appData3 = new AppData(3); AppData *appData4 = new AppData(4); AcGePoint3d pts[5]; AcGeVector3d vertDir = mNormal.crossProduct(mHorizDir); pts[0] = mCenter; pts[1] = mCenter + 0.5 * mWidth * mHorizDir + 0.5 * mHeight * vertDir; pts[2] = mCenter - 0.5 * mWidth * mHorizDir + 0.5 * mHeight * vertDir; pts[3] = mCenter - 0.5 * mWidth * mHorizDir - 0.5 * mHeight * vertDir; pts[4] = mCenter + 0.5 * mWidth * mHorizDir - 0.5 * mHeight * vertDir; // Setting for the center grip point AcDbGripData *pGripData0 = new AcDbGripData(); pGripData0->setGripPoint(pts[0]); pGripData0->setAppData(appData0); //pGripData0->setHoverDimensionFunc(hoverDimensionCbackFunc); //pGripData0->setHotGripDimensionFunc(hotGripDimensionCbackFunc); grips.append(pGripData0); // Setting for the top-right grip point AcDbGripData *pGripData1 = new AcDbGripData(); pGripData1->setGripPoint(pts[1]); pGripData1->setAppData(appData1); pGripData1->setHoverDimensionFunc(hoverDimensionCbackFunc); pGripData1->setHotGripDimensionFunc(hotGripDimensionCbackFunc); pGripData1->setViewportDraw(GripViewportDrawfunc); pGripData1->setDrawAtDragImageGripPoint(true); grips.append(pGripData1); // Setting for the top-left grip point AcDbGripData *pGripData2 = new AcDbGripData(); pGripData2->setGripPoint(pts[2]); pGripData2->setAppData(appData2); pGripData2->setHoverDimensionFunc(hoverDimensionCbackFunc); pGripData2->setHotGripDimensionFunc(hotGripDimensionCbackFunc); pGripData2->setViewportDraw(GripViewportDrawfunc); pGripData2->setDrawAtDragImageGripPoint(true); grips.append(pGripData2); // Setting for the bottom-left grip point AcDbGripData *pGripData3 = new AcDbGripData(); pGripData3->setGripPoint(pts[3]); pGripData3->setAppData(appData3); pGripData3->setHoverDimensionFunc(hoverDimensionCbackFunc); pGripData3->setHotGripDimensionFunc(hotGripDimensionCbackFunc); grips.append(pGripData3); // Setting for the bottom-right grip point AcDbGripData *pGripData4 = new AcDbGripData(); pGripData4->setGripPoint(pts[4]); pGripData4->setAppData(appData4); pGripData4->setHoverDimensionFunc(hoverDimensionCbackFunc); pGripData4->setHotGripDimensionFunc(hotGripDimensionCbackFunc); grips.append(pGripData4); return Acad::eOk; }
AcGePoint3d RockGate::getInsertPt() const { assertReadEnabled(); return m_insertPt; }
const char* EmployeeDetails::lastName() const { assertReadEnabled(); return m_strLastName; }
//EmployeeDetails protocol long EmployeeDetails::cubeNumber() const { assertReadEnabled(); return m_cubeNumber; }
long EmployeeDetails::ID()const { assertReadEnabled(); return m_ID; }