本文整理汇总了C++中AcDbObjectIdArray::at方法的典型用法代码示例。如果您正苦于以下问题:C++ AcDbObjectIdArray::at方法的具体用法?C++ AcDbObjectIdArray::at怎么用?C++ AcDbObjectIdArray::at使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AcDbObjectIdArray
的用法示例。
在下文中一共展示了AcDbObjectIdArray::at方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: asdktest5
void asdktest5 () {
//----- Select the entities
ads_name ss, en ;
if ( acedSSGet (NULL, NULL, NULL, NULL, ss) != RTNORM )
return ;
//----- Append entity IDs to the collector
long n ;
AcDbObjectId id ;
AsdkHlrCollector collector ;
acedSSLength (ss, &n) ;
for ( int i =0 ; i < n ; i++ ) {
acedSSName (ss, i, en) ;
acdbGetObjectId (id, en) ;
collector.addEntity (id) ;
}
acedSSFree (ss) ;
//----- Display a dialog box to select HLR controls, the user wants to apply to the HLR engine
AfxSetResourceHandle (_hdllInstance) ;
CControlsDlg dlg ;
dlg.mnControls =kProject | kEntity | kBlock | kHonorInternals ;
if ( dlg.DoModal () != IDOK ) {
AfxSetResourceHandle (acedGetAcadResourceInstance ()) ;
return ;
}
AfxSetResourceHandle (acedGetAcadResourceInstance ()) ;
int control =dlg.mnControls ;
acutPrintf (ACRX_T("\nAbout to call hidden Line calculation")) ;
acutPrintf (ACRX_T("\nCalling with %d Entities"), collector.getInputEntityIds ().logicalLength ()) ;
acutPrintf (ACRX_T("\nkProject %s "), control & kProject ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkShowAll %s "), control & kShowAll ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkEntity %s "), control & kEntity ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkBlock %s "), control & kBlock ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkSubentity %s "), control & kSubentity ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkHideTangents %s "), control & kHideTangents ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkCleanup %s "), control & kCleanup ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkIsolines %s "), control & kIsolines ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkUnite %s "), control & kUnite ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkReuse %s "), control & kReuse ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkProgress %s "), control & kProgress ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkHandlePoints %s "), control & kHandlePoints ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkHonorInternals %s "), control & kHonorInternals ? ACRX_T("On") : ACRX_T("Off")) ;
acutPrintf (ACRX_T("\nkMeshSilhouettes %s "), control & kMeshSilhouettes ? ACRX_T("On") : ACRX_T("Off")) ;
//----- Ask for virtual viewport settings
AcDbViewport *pVp =NULL ;
if ( !pickViewport (pVp) )
return ;
//----- Process hidden line removal
AsdkHlrEngine hlr (pVp, control) ;
hlr.run (collector) ;
delete pVp ;
//----- The following code will collect the color of the originator entity of an edge
//----- and will assign it to the resulting entity.
actrTransactionManager->startTransaction () ;
int nOutput =collector.mOutputData.logicalLength () ;
acutPrintf (ACRX_T("\nHlr returned %d curves"), nOutput) ;
for ( int j =0 ; j < nOutput ; j++ ) {
AsdkHlrData *pResult =collector.mOutputData [j] ;
AcDbEntity *pResultEntity =pResult->getResultEntity () ;
AcDbObjectId id ;
if ( postToDatabase (NULL, pResultEntity, id) != Acad::eOk ) {
acutPrintf (_T("Failed to add entity to current space.\n")) ;
break ;
}
actrTransactionManager->getObject ((AcDbObject *&)pResultEntity, id, AcDb::kForWrite) ;
AcDbObjectIdArray ids =pResult->getObjectIds () ;
int last =ids.logicalLength () - 1 ;
AcCmColor color ;
AcDbObjectId layerId ;
color.setColorIndex (0) ;
while ( last >= 0 && color.colorIndex () == 0 ) {
AcDbObjectId innerId =ids.at (last) ;
AcDbObject *pObj ;
actrTransactionManager->getObject (pObj, innerId, AcDb::kForRead) ;
AcDbEntity *pEnt =AcDbEntity::cast (pObj) ;
color =pEnt->color () ;
layerId =pEnt->layerId () ;
last-- ;
}
if ( layerId != AcDbObjectId::kNull ) {
pResultEntity->setColor (color) ;
pResultEntity->setLayer (layerId) ;
} else {
AcDbEntity *pEnt =pResult->getEntity () ;
if ( pEnt != NULL ) {
pResultEntity->setColor (pEnt->color ()) ;
pResultEntity->setLayer (pEnt->layer ()) ;
}
}
pResultEntity->close () ;
//.........这里部分代码省略.........
示例2: ConfigDraw
void DrawHelper::ConfigDraw( const CString& geType, const CString& drawName )
{
MineGEDraw* pDraw = MineGEDrawSystem::GetInstance()->getGEDraw( geType, drawName );
if( pDraw == 0 ) return; // 该绘制效果不存在
pDraw->configExtraParams(); // 配置附加参数
AcDbObjectIdArray objIds;
ArxDataTool::GetEntsByType( geType, objIds, false );
if( objIds.isEmpty() ) return; // dwg图形中没有任何geType类型图元
AcTransaction* pTrans = actrTransactionManager->startTransaction();
if( pTrans == 0 ) return;
int len = objIds.length();
for( int i = 0; i < len; i++ )
{
AcDbObject* pObj;
if( Acad::eOk != pTrans->getObject( pObj, objIds.at( i ), AcDb::kForWrite ) ) continue;
MineGE* pGE = MineGE::cast( pObj );
if( pGE == 0 ) continue;
pGE->configDraw( pDraw->isA()->name() ); // 更新extra param
pGE->recordGraphicsModified( true ); // 更新图形
}
actrTransactionManager->endTransaction();
AcRxClass* pClass = AcRxClass::cast( acrxClassDictionary->at( geType ) );
if( pClass != 0 && pClass->isDerivedFrom( LinkedGE::desc() ) )
{
UpdateLinkedGE( objIds );
}
}
示例3: SwitchDraw
void DrawHelper::SwitchDraw( const CString& geType, const CString& drawName )
{
// 设置当前可视化效果
if( !SetCurDraw( geType, drawName ) ) return;
// 更新所有指定类型的图元
AcDbObjectIdArray objIds;
ArxDataTool::GetEntsByType( geType, objIds, false );
if( objIds.isEmpty() ) return; // dwg图形中没有任何MineGE类型图元
// 将所有geType类型图元的绘制效果更新
AcTransaction* pTrans = actrTransactionManager->startTransaction();
if( pTrans == 0 ) return;
int len = objIds.length();
for( int i = 0; i < len; i++ )
{
AcDbObject* pObj;
if( Acad::eOk != pTrans->getObject( pObj, objIds.at( i ), AcDb::kForWrite ) ) continue;
MineGE* pGE = MineGE::cast( pObj );
if( pGE == 0 ) continue;
pGE->updateDraw(); // 更细可视化效果指针
//pGE->recordGraphicsModified(true); // 更新图形
}
actrTransactionManager->endTransaction();
AcRxClass* pClass = AcRxClass::cast( acrxClassDictionary->at( geType ) );
if( pClass != 0 && pClass->isDerivedFrom( LinkedGE::desc() ) )
{
UpdateLinkedGE( objIds );
}
}
示例4: asdktest3
void asdktest3 () {
//----- Create a line and a circle (memory only)
AcDbLine *pLine =new AcDbLine (AcGePoint3d (), AcGePoint3d (100, 100, -100)) ;
AcDbCircle *pCircle =new AcDbCircle (AcGePoint3d (50, 50, 0), AcGeVector3d (0, 0, 1) , 25.0) ;
//----- Create a region from the circle
AcDbVoidPtrArray arr1, arr2 ;
arr1.append (pCircle) ;
AcDbRegion::createFromCurves (arr1, arr2) ;
AcDbRegion *pRegion =(AcDbRegion *)arr2.at (0) ;
delete pCircle ;
//----- Add the line and the region objects to the collector
//----- NB: Remember those object are memory objects only
AsdkHlrCollector collector ;
collector.setDeleteState (true) ;
collector.addEntity (pLine) ;
collector.addEntity (pRegion) ;
//----- Process hidden line removal
AsdkHlrEngine hlr (AcGePoint3d (50, 50,0), AcGeVector3d (0, 0, 1), kEntity | kBlock | kShowAll | kProject | kHonorInternals) ;
hlr.run (collector) ;
//----- To easily see the result, we do append resulting entities to the current database
//----- and use the color convention used in command 'TEST1'
int n =collector.mOutputData.logicalLength () ;
for ( int i =0 ; i < n ; i++ ) {
AsdkHlrData *p =collector.mOutputData [i] ;
AcDbEntity *pEnt =p->getResultEntity () ;
AsdkHlrData::Visibility vis =p->getVisibility () ;
if ( vis == AsdkHlrData::kVisible )
pEnt->setColorIndex (1) ;
else
pEnt->setColorIndex (5) ;
AcDbObjectId id ;
if ( postToDatabase (NULL, pEnt, id) != Acad::eOk ) {
acutPrintf (_T("Failed to add entity to current space.\n")) ;
break ;
}
//----- Entity originator path
AcDbObjectIdArray ids =p->getObjectIds () ;
if ( ids.logicalLength () > 0 ) {
acutPrintf (ACRX_T("\n%ld, "), pEnt->objectId ().asOldId ()) ;
for ( int j =0 ; j < ids.logicalLength () ; j++ ) {
acutPrintf (ACRX_T("%ld, "), ids.at (j).asOldId ()) ;
}
}
pEnt->close () ;
}
}
示例5: UpdateEdge
static void UpdateEdge( const AcDbObjectIdArray& objIds )
{
AcTransaction* pTrans = actrTransactionManager->startTransaction();
if( pTrans == 0 ) return;
int n = objIds.length();
for( int i = 0; i < n; i++ )
{
AcDbObjectId objId = objIds.at( i );
LinkedGE* pEdge = OpenEdge2( pTrans, objId, AcDb::kForWrite );
pEdge->recordGraphicsModified( true ); // 标签图形已经修改,需要更新图形
}
actrTransactionManager->endTransaction();
}
示例6: Set_ObjectColor
void Additional_Class::Set_ObjectColor( AcDbObjectIdArray obIDArray, int ColorIndex )
{
AcDbObjectId tempID;
for (int i=0; i<obIDArray.length(); i++)
{
tempID = obIDArray.at(i);
Set_ObjectColor(tempID, ColorIndex);
}
//
//AcDbEntity *pEnt_Temp;
//if (acdbOpenAcDbEntity(pEnt_Temp, ObID, AcDb::kForWrite) != Acad::eOk)
//{
// acutPrintf(_T("\nOPEN ERROR"));
// return;
//}
//pEnt_Temp->setColorIndex(ColorIndex);
//pEnt_Temp->close();
return;
}
示例7: BuildJunctionEdgeInfo
static void BuildJunctionEdgeInfo( const AcDbObjectIdArray& objIds,
const AcGePoint3d& junctionPt,
EdgeInfo& ges )
{
AcTransaction* pTrans = actrTransactionManager->startTransaction();
if( pTrans == 0 ) return;
int n = objIds.length();
for( int i = 0; i < n; i++ )
{
AcDbObjectId objId = objIds.at( i );
JunctionEdgeInfo info = {objId, true, AcGeVector3d::kIdentity};
LinkedGE* pEdge = OpenEdge2( pTrans, objId, AcDb::kForRead );
if( pEdge == 0 ) continue;
AcGePoint3d startPt, endPt;
pEdge->getSEPoint( startPt, endPt );
if( startPt == junctionPt )
{
info.startOrEnd = true;
info.angle = pEdge->getStartPointInExtendAngle();
}
else if( endPt == junctionPt )
{
info.startOrEnd = false;
info.angle = pEdge->getEndPointInExtendAngle();
}
if( info.angle.isZeroLength() ) continue; // 零向量表示不处理闭合
//acutPrintf(_T("\nid:%d\tangle:%.3f\tdraw:%s"),
// info.objId,
// info.angle.angleTo(AcGeVector3d::kXAxis, -AcGeVector3d::kZAxis),
// pEdge->getCurrentDraw());
ges.push_back( info );
}
actrTransactionManager->endTransaction();
}
示例8:
//When an new entity is added, set its draw order based on the draw order of other entities on the same layer.
void
adskMyDbReactor::objectAppended(const AcDbDatabase* db, const AcDbObject* pObj)
{
AcDbEntity * pEnt = AcDbEntity::cast(pObj);
Acad::ErrorStatus es;
if (pEnt != NULL)
{
AcDbBlockTable *pBT = NULL;
AcDbBlockTableRecord *pBTR = NULL;
//use transaction since the datbase is still open for write here.
es=actrTransactionManager->enableGraphicsFlush(true);
AcTransaction *pTrans = actrTransactionManager->startTransaction() ;
if(!pTrans)
{
acutPrintf("\nCan't start transaction!");
return;
}
AcDbObject *pObj = NULL ;
AcDbDatabase *pDb = NULL;
AcDbObjectId modelSpaceId;
pDb = AcDbDatabase::cast(db);
//get AcDbBlockTable for read
if(Acad::eOk != pDb->getBlockTable(pBT, AcDb::kForRead))
{
acutPrintf("can't open block table for read");
actrTransactionManager->abortTransaction();
return;
}
//get the model space object id
if(Acad::eOk != pBT->getAt( ACDB_MODEL_SPACE, modelSpaceId))
{
acutPrintf("\ncan't get model space Id");
actrTransactionManager->abortTransaction();
pBT->close();
return;
}
pBT->close();
//get model space block record for write from transaction
if (Acad::eOk != pTrans->getObject((AcDbObject*&)pBTR, modelSpaceId, AcDb::kForWrite))
{
acutPrintf("\ncan't open model space block table record for write");
actrTransactionManager->abortTransaction();
return;
}
AcDbObjectIdArray eIds;
//get AcDbSortEntsTable
AcDbSortentsTable *pSortTab = NULL;
if(Acad::eOk != pBTR->getSortentsTable(pSortTab, AcDb::kForWrite, false))
{
acutPrintf("\ncan't get AcDbSortEntsTable for write");
actrTransactionManager->abortTransaction();
return;
}
//put objectIds of all the entities in an Id array.The order of objectIds in the array is the
//same as their draworders from bottom to top.The newly created entity is always at the top and the last item
//in the array
if(Acad::eOk != pSortTab->getFullDrawOrder(eIds))
{
acutPrintf("\ncan't get full draworder");
pSortTab->close();
actrTransactionManager->abortTransaction();
return;
}
AcDbEntity *pRefEnt = NULL;
//iterate through the entities in the order of their draworders. If an entity on the same layer is found
//insert the newly created entity before it.
int i;
for(i =0; i<eIds.length(); i++)
{
es = pTrans->getObject((AcDbObject*&)pRefEnt, eIds.at(i), AcDb::kForRead);
if(pRefEnt->layerId() == pEnt->layerId())
break;
}
eIds.insertAt(i, pEnt->objectId());
//remove the newly created entity from the end of the array
eIds.removeLast();
//reset draworder
es = pSortTab->setRelativeDrawOrder(eIds);
pSortTab->close();
es=actrTransactionManager->endTransaction();
actrTransactionManager->flushGraphics();
//set flag for regen
gbDraworderChanged = true;
}
}
示例9: Wblock
Acad::ErrorStatus CZhfPalette::Wblock(AcDbDatabase*& pDbFrom, AcDbDatabase*& pDbTo, /*const AcGePoint3d& pt_3d_base,*/ const AcGeMatrix3d & xform)
{
Acad::ErrorStatus es ;
AcDbObjectIdArray objIdsOut;
AcDbBlockTable* pBT = NULL ;
pDbFrom->getBlockTable(pBT, AcDb::kForRead);
AcDbBlockTableRecord* pBTR = NULL;
es = pBT->getAt(ACDB_MODEL_SPACE, pBTR, AcDb::kForRead);
pBT->close();
AcDbBlockTableRecordIterator* pIT;
es = pBTR->newIterator(pIT) ;
for (; !pIT->done(); pIT->step())
{
AcDbEntity* pEnt = NULL ;
if (Acad::eOk==pIT->getEntity(pEnt, AcDb::kForRead))
{
// if (!pEnt->isKindOf(AcDbAttributeDefinition::desc()))
// {
AcDbObjectId objId;
if (Acad::eOk == pIT->getEntityId(objId))
{
objIdsOut.append(objId);
}
// }
pEnt->close() ;
}
}
delete pIT;
pBTR->close();
if (!objIdsOut.isEmpty())
{
for (int i=0; i<objIdsOut.length(); i++)
{
AcDbObjectId objId = objIdsOut.at(i);
AcDbEntity *pEnt = NULL ;
if(Acad::eOk==acdbOpenAcDbEntity(pEnt,objId, AcDb::kForRead))
{
AcDbObjectId objIdDic ;
if ((objIdDic = pEnt->extensionDictionary())!= AcDbObjectId::kNull)
{
AcDbDictionary *pDict = NULL;
if (Acad::eOk==acdbOpenObject(pDict, objIdDic, AcDb::kForWrite))
{
pDict->setTreatElementsAsHard(Adesk::kTrue);
pDict->close();
}
}
pEnt->close() ;
}
}
AcDbDatabase *pTempDb ;
es = pDbFrom->wblock( pTempDb, objIdsOut, AcGePoint3d::kOrigin ) ;
if (Acad::eOk != es )
{
acedAlert( _T("wblock failed!") );
return es ;
}
es = pDbTo->insert( xform, pTempDb ) ;
if (Acad::eOk != es)
acedAlert( _T("insert failed!" ));
if (pTempDb)
{
delete pTempDb;
pTempDb = NULL ;
}
}
else
{
acutPrintf(_T("\nNo entities found in model space of DWG"));
}
return es ;
}
示例10: asdktest1
void asdktest1 () {
//----- Select the entities
ads_name ss, en ;
if ( acedSSGet (NULL, NULL, NULL, NULL, ss) != RTNORM )
return ;
//----- Append entity IDs to the collector
long n ;
AcDbObjectId id ;
AsdkHlrCollector collector ;
collector.setDeleteState (true) ;
acedSSLength (ss, &n) ;
for ( int i =0 ; i < n ; i++ ) {
acedSSName (ss, i, en) ;
acdbGetObjectId (id, en) ;
collector.addEntity (id) ;
}
acedSSFree (ss) ;
//----- Get current viewport settings
struct resbuf rb;
acedGetVar(ACRX_T(/*NOXLATE*/"viewdir"), &rb);
ads_point dirPt;
acdbUcs2Wcs (rb.resval.rpoint, dirPt, Adesk::kTrue) ;
acedGetVar(ACRX_T(/*NOXLATE*/"target"), &rb);
ads_point tarPt;
acdbUcs2Wcs (rb.resval.rpoint, tarPt, Adesk::kFalse) ;
//----- Ask if non-visible edges should be created
int hidLines =AfxMessageBox (ACRX_T("Would you like to see hidden lines?"), MB_YESNO) ;
int honorInt =AfxMessageBox (ACRX_T("Would you like to honor internal visibility of polyface meshes or ACIS objects?"), MB_YESNO) ;
int meshSils =AfxMessageBox (ACRX_T("Would you like to calculate silhouettes of polyface meshes?"), MB_YESNO) ;
int unit =AfxMessageBox (ACRX_T("Would you like to unit solid before processing?"), MB_YESNO) ;
//----- Process hidden line removal
AsdkHlrEngine hlr (
asPnt3d (tarPt), asVec3d (dirPt),
kEntity | kBlock | kSubentity | kProgress
| (honorInt == IDYES ? kHonorInternals : 0)
| (hidLines == IDYES ? kShowAll : 0)
| (meshSils == IDYES ? kMeshSilhouettes : 0)
| (unit == IDYES ? kUnite : 0)
) ;
hlr.setAcisConversionProgressCallBack (progress1) ;
hlr.setAhlProgressCallBack (progress2) ;
hlr.setAcadConversionProgressCallBack (progress3) ;
acedSetStatusBarProgressMeter (ACRX_T("HLR running: "), 0, 300) ;
hlr.run (collector) ;
acedRestoreStatusBar () ;
//----- Assign color to the resulting entities
//----- red for visible edges
//----- blue for non-visible edges
//----- yellow for internal edges
n =collector.mOutputData.logicalLength () ;
for (int i =0 ; i < n ; i++ ) {
AsdkHlrData *p =collector.mOutputData [i] ;
AcDbEntity *pEnt =p->getResultEntity () ;
AsdkHlrData::Visibility vis =p->getVisibility () ;
if ( vis == AsdkHlrData::kVisible ) {
pEnt->setColorIndex (1) ; //----- Read
} else if ( vis == AsdkHlrData::kInternallyHidden ) {
if ( p->getHlrVisibility () == AsdkHlrData::kVisible )
pEnt->setColorIndex (2) ; //----- Yellow
else
pEnt->setColorIndex (3) ; //----- Green
} else {
pEnt->setColorIndex (5) ; //----- Blue
}
if ( postToDatabase (NULL, pEnt, id) != Acad::eOk ) {
acutPrintf (_T("Failed to add entity to current space.\n")) ;
break ;
}
if ( acdbOpenAcDbEntity (pEnt, id, AcDb::kForRead) != Acad::eOk ) {
acutPrintf (_T("Failed to open last added outputed curve.\n")) ;
break ;
}
//----- Entity originator path for block reference entities
AcDbObjectIdArray ids =p->getObjectIds () ;
if ( ids.logicalLength () > 0 ) {
acutPrintf (ACRX_T("\n%lx, "), pEnt->objectId ().asOldId ()) ;
if ( p->getSubentId ().type () != AcDb::kNullSubentType )
acutPrintf (ACRX_T("[%ld, %ld], "), p->getSubentId ().type (), p->getSubentId ().index ()) ;
for ( int j =0 ; j < ids.logicalLength () ; j++ )
acutPrintf (ACRX_T("%lx, "), ids.at (j).asOldId ()) ;
AcDbObjectId id =ids.last () ;
if ( !id.isNull () ) {
AcDbEntity *ent =NULL ;
acdbOpenAcDbEntity (ent, id, AcDb::kForRead) ;
id =ent->linetypeId () ;
ent->close () ;
if ( pEnt->upgradeOpen () == Acad::eOk )
pEnt->setLinetype (id) ;
}
}
//.........这里部分代码省略.........
示例11: AddEntityToLayer
// This command demonstrates the use of kCleanup / kReuse flags
void AddEntityToLayer (AsdkHlrCollector &collector, ACHAR *layerName) {
//----- Check layer
if ( layerName != NULL && *layerName != ACRX_T('\0') ) {
AcDbDatabase *pDb =acdbHostApplicationServices ()->workingDatabase () ;
AcDbLayerTable *pLayerTable ;
pDb->getLayerTable (pLayerTable, AcDb::kForRead) ;
if ( !pLayerTable->has (layerName) ) {
AcDbLayerTableRecord *pLayerRecord =new AcDbLayerTableRecord ;
pLayerRecord->setName (layerName) ;
pLayerTable->upgradeOpen () ;
pLayerTable->add (pLayerRecord) ;
pLayerTable->downgradeOpen () ;
pLayerRecord->close () ;
pLayerTable->close () ;
applyCurDwgLayerTableChanges () ;
} else {
pLayerTable->close () ;
}
} else {
layerName =NULL ;
}
//----- Assign color to the resulting entities
//----- red for visible edges
//----- blue for non-visible edges
//----- yellow for internal edges
int n =collector.mOutputData.logicalLength () ;
for ( int i =0 ; i < n ; i++ ) {
AsdkHlrData *p =collector.mOutputData [i] ;
AcDbEntity *pEnt =p->getResultEntity () ;
AsdkHlrData::Visibility vis =p->getVisibility () ;
if ( vis == AsdkHlrData::kVisible ) {
pEnt->setColorIndex (1) ; //----- Read
} else if ( vis == AsdkHlrData::kInternallyHidden ) {
if ( p->getHlrVisibility () == AsdkHlrData::kVisible )
pEnt->setColorIndex (2) ; //----- Yellow
else
pEnt->setColorIndex (3) ; //----- Green
} else {
pEnt->setColorIndex (5) ; //----- Blue
}
if ( layerName != NULL )
pEnt->setLayer (layerName) ;
AcDbObjectId id ;
if ( postToDatabase (NULL, pEnt, id) != Acad::eOk ) {
acutPrintf (_T("Failed to add entity to current space.\n")) ;
break ;
}
//----- Entity originator path for block reference entities
AcDbObjectIdArray ids =p->getObjectIds () ;
if ( ids.logicalLength () > 0 ) {
acutPrintf (ACRX_T("\n%ld, "), pEnt->objectId ().asOldId ()) ;
for ( int j =0 ; j < ids.logicalLength () ; j++ ) {
acutPrintf (ACRX_T("%ld, "), ids.at (j).asOldId ()) ;
}
}
pEnt->close () ;
}
}