本文整理汇总了C++中CEntity::IsSelected方法的典型用法代码示例。如果您正苦于以下问题:C++ CEntity::IsSelected方法的具体用法?C++ CEntity::IsSelected怎么用?C++ CEntity::IsSelected使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CEntity
的用法示例。
在下文中一共展示了CEntity::IsSelected方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SelectEntityOnRender
// check if all of the corners of entity's bounding box are influenced by current select-on-render selection
void SelectEntityOnRender(CProjection3D &prProjection, CEntity &en)
{
FLOATaabbox3D bbox;
FLOATmatrix3D mOne = FLOATmatrix3D(0.0f);
mOne.Diagonal(1.0f);
FLOATmatrix3D *pmR;
FLOAT3D vOffset;
// if this entity is model
if (en.en_RenderType==CEntity::RT_MODEL || en.en_RenderType==CEntity::RT_EDITORMODEL)
{
// get bbox of current frame
CModelObject *pmo = en.GetModelObject();
pmo->GetCurrentFrameBBox( bbox);
pmR = &en.en_mRotation;
vOffset = en.GetPlacement().pl_PositionVector;
}
// if it is ska model
else if(en.en_RenderType==CEntity::RT_SKAMODEL || en.en_RenderType==CEntity::RT_SKAEDITORMODEL)
{
en.GetModelInstance()->GetCurrentColisionBox( bbox);
pmR = &en.en_mRotation;
vOffset = en.GetPlacement().pl_PositionVector;
}
// if it is brush
else
{
// get bbox of brush's first mip
CBrush3D *pbr = en.GetBrush();
CBrushMip *pbrmip = pbr->GetFirstMip();
bbox = pbrmip->bm_boxBoundingBox;
pmR = &mOne;
vOffset = FLOAT3D( 0.0f, 0.0f, 0.0f);
}
if( IsBoundingBoxInLasso( prProjection, bbox, pmR, vOffset))
{
if( _bSelectAlternative)
{
// deselect
if (en.IsSelected(ENF_SELECTED))
{
_pselenSelectOnRender->Deselect(en);
}
}
else
{
// select
if (!en.IsSelected(ENF_SELECTED))
{
_pselenSelectOnRender->Select(en);
}
}
}
}
示例2: EditEntity
int CEntitiesDialog::EditEntity( CEntityArray& Entities, int CurrentEntity, CFusionDoc* Doc)
{
// If more than one entity selected, make sure they're all the same type.
int nSel = 0;
CString EntityClassname;
int i;
pDoc = Doc;
mEntityArray = &Entities;
for (i = 0; i < mEntityArray->GetSize(); ++i)
{
CEntity *pEnt;
pEnt = &Entities[i];
if (pEnt->IsSelected ())
{
if (nSel == 0)
{
EntityClassname = pEnt->GetClassname ();
mCurrentEntity = i;
}
else
{
if (pEnt->GetClassname () != EntityClassname)
{
AfxMessageBox ("To edit multiple entities, they must all be of the same type.");
return CurrentEntity;
}
}
++nSel;
}
}
MultiEntityFlag = (nSel > 1);
if (MultiEntityFlag)
{
}
else
{
if (CurrentEntity != -1)
{
mCurrentEntity = CurrentEntity;
}
else
{
// Let's set entity 0 as selected if it exists...
mCurrentEntity = 0;
if (mEntityArray->GetSize() > 0)
{
pDoc->ResetAllSelectedEntities();
pDoc->SelectEntity (&(*mEntityArray)[mCurrentEntity]);
pDoc->mCurrentEntity = mCurrentEntity;
}
}
}
DoModal();
return mCurrentEntity;
}
示例3: OnDblclkPropertieslist
void CEntitiesDialog::OnDblclkPropertieslist()
{
// Double-click on the item...Edit it.
mCurrentKey = m_PropertiesList.GetCurSel ();
if (mCurrentKey != LB_ERR)
{
CEntity *Ent = &((*mEntityArray)[mCurrentEntity]);
CString EntityTypeName = Ent->GetClassname ();
CString KeyName;
CString TheValue;
m_PropertiesList.GetText (mCurrentKey, KeyName);
Ent->GetKeyValue (KeyName, TheValue);
TopType eType;
if (EntityTable_GetEntityPropertyType (Level_GetEntityDefs (pDoc->pLevel), EntityTypeName, KeyName, &eType))
{
CDialog *pEditDialog = NULL;
// Create the dialog that's appropriate for this type....
switch (eType)
{
case T_INT :
pEditDialog = new CIntKeyEditDlg (this, KeyName, &TheValue);
break;
case T_FLOAT :
pEditDialog = new CFloatKeyEditDlg (this, KeyName, &TheValue);
break;
case T_COLOR :
pEditDialog = new CColorKeyEditDlg (this, KeyName, &TheValue);
break;
case T_POINT :
pEditDialog = new CPointKeyEditDlg (this, KeyName, &TheValue);
break;
case T_STRING :
pEditDialog = new CKeyEditDlg (this, KeyName, &TheValue);
break;
case T_MODEL :
pEditDialog = new CModelKeyEditDlg (this, Level_GetModelInfo (pDoc->pLevel)->Models, KeyName, &TheValue);
break;
case T_STRUCT :
pEditDialog = new CStructKeyEditDlg (this, *Ent, KeyName, mEntityArray, &TheValue, Level_GetEntityDefs (pDoc->pLevel));
break;
case T_BOOLEAN :
pEditDialog = new CBoolKeyEditDlg (this, KeyName, &TheValue);
break;
case T_PTR :
default :
// bad or unknown type
assert (0);
break;
}
if (pEditDialog != NULL)
{
int ModalResult = pEditDialog->DoModal ();
delete pEditDialog;
if (ModalResult == IDOK)
{
if (MultiEntityFlag)
{
// multiple entities--change this property on all of them
int i;
for (i = 0; i < mEntityArray->GetSize (); ++i)
{
CEntity *pEnt;
pEnt = &(*mEntityArray)[i];
if (pEnt->IsSelected ())
{
pEnt->SetKeyValue (KeyName, TheValue);
}
}
}
else
{
// update
Ent->SetKeyValue (KeyName, TheValue);
}
FillInKeyValuePairs(mCurrentKey);
}
}
}
}
}