#include <fbxpropertypage.h>
Definition at line 593 of file fbxpropertypage.h.
Public Types |
|
| enum | EValueIndex
{ eValueMin, eValueSoftMin, eValueMax, eValueSoftMax, eValueCount } |
Public Member Functions |
|
| FBXSDK_FRIEND_NEW () | |
| void | Destroy () |
| template<class T > | |
| T * | GetPropertyItem (const T *pItemType, FbxInt pIndex, FbxPropertyPage **pFoundIn=0) const |
| template<class T > | |
| T * | ChangePropertyItemState (const T *pItemType, FbxInt pIndex, FbxPropertyAttr::EInheritType pInheritType) |
| template<class T > | |
| FbxPropertyPage * | GetFirstPropertyItem (FbxInt pId, const T *pItem) const |
| const char * | GetName (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) |
| const char * | GetLabel (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) |
| bool | SetLabel (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT, const char *pLabel="") |
| void * | GetUserData (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) |
| bool | SetUserData (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT, const void *pUserData=0) |
| int | GetUserTag (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) |
| bool | SetUserTag (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT, int pUserTag=0) |
| EFbxType | GetType (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) const |
| FbxInt | GetParent (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) const |
| FbxPropertyPage * | GetTypeInfo (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) |
| FbxInt | Add (FbxInt pParentId, const char *pName, EFbxType pType) |
| FbxInt | Add (FbxInt pParentId, const char *pName, FbxPropertyPage *pTypeInfo) |
| bool | Reparent (FbxInt, FbxInt) |
| bool | IsChildOf (FbxInt pId, FbxInt pParentId) const |
| bool | IsDescendentOf (FbxInt pId, FbxInt pAncestorId) const |
| FbxInt | GetChild (FbxInt pParentId=FBXSDK_PROPERTY_ID_ROOT) const |
| Retrieves the first child property id of a
specified property id. |
|
| FbxInt | GetSibling (FbxInt pId) const |
| Retrieves the next sibling property id of a
specified property id. |
|
| FbxInt | GetFirstDescendent (FbxInt pAnscestorId=FBXSDK_PROPERTY_ID_ROOT) const |
| Retrieves the first descendent property id
of a specified property id. |
|
| FbxInt | GetNextDescendent (FbxInt pAnscestorId, FbxInt pId) const |
| Retrieves the next descendent property id of
a specified property id, with given a descendent property id.
|
|
| FbxInt | FastFind (FbxInt pId, const char *pName, FbxPropertyPage *pTypeInfo, bool pCaseSensitive) |
| FbxInt | Find (FbxInt pId, const char *pName, FbxPropertyPage *pTypeInfo, bool pCaseSensitive, const char *pChildrenSeparators) |
| int | AddEnumValue (FbxInt pId, const char *pStringValue) |
| void | InsertEnumValue (FbxInt pId, int pIndex, const char *pStringValue) |
| int | GetEnumCount (FbxInt pId) |
| void | SetEnumValue (FbxInt pId, int pIndex, const char *pStringValue) |
| void | RemoveEnumValue (FbxInt pId, int pIndex) |
| char * | GetEnumValue (FbxInt pId, int pIndex) |
| void | ClearConnectCache (FbxInt pId) |
| void | WipeAllConnections (FbxInt pId) |
| bool | ConnectSrc (FbxInt pDstId, FbxPropertyPage *pSrcPage, FbxInt pSrcId, FbxConnection::EType pType) |
| bool | DisconnectSrc (FbxInt pDstId, FbxPropertyPage *pSrcPage, FbxInt pSrcId) |
| bool | IsConnectedSrc (FbxInt pDstId, FbxPropertyPage *pSrcPage, FbxInt pSrcId) |
| int | GetSrcCount (FbxInt pId, FbxConnectionPointFilter *pFilter) |
| bool | GetSrc (FbxInt pId, int pIndex, FbxConnectionPointFilter *pFilter, FbxPropertyPage **pSrcPage, FbxInt *pSrcId) |
| bool | ConnectDst (FbxInt pSrcId, FbxPropertyPage *pDstPage, FbxInt pDstId, FbxConnection::EType pType) |
| bool | DisconnectDst (FbxInt pSrcId, FbxPropertyPage *pDstPage, FbxInt pDstId) |
| bool | IsConnectedDst (FbxInt pSrcId, FbxPropertyPage *pDstPage, FbxInt pDstId) |
| int | GetDstCount (FbxInt pId, FbxConnectionPointFilter *pFilter) |
| bool | GetDst (FbxInt pId, int pIndex, FbxConnectionPointFilter *pFilter, FbxPropertyPage **pDstPage, FbxInt *pDstId) |
| bool | HasMinMax (FbxInt pId, FbxPropertyInfo::EValueIndex pValueId) const |
| bool | GetMinMax (FbxInt pId, FbxPropertyInfo::EValueIndex pValueId, void *pValue, EFbxType pValueType) |
| bool | SetMinMax (FbxInt pId, FbxPropertyInfo::EValueIndex pValueId, const void *pValue, EFbxType pValueType) |
| bool | Get (FbxInt pId, void *pValue, EFbxType pValueType) |
| bool | Set (FbxInt pId, const void *pValue, EFbxType pValueType, bool pCheckValueEquality) |
| FbxPropertyAttr::EInheritType | GetValueInherit (FbxInt pId, bool pCheckInstanceOf) const |
| bool | SetValueInherit (FbxInt pId, FbxPropertyAttr::EInheritType pType) |
| bool | GetDefaultValue (FbxInt pId, void *pValue, EFbxType pValueType) const |
| template<class T > | |
| bool | Set (FbxInt pId, const T &pValue) |
| template<class T > | |
| T | Get (FbxInt pId, const T *pFBX_TYPE) |
| void | SetDataPtr (void *pDataPtr) |
| void * | GetDataPtr () const |
| void | PushPropertiesToParentInstance () |
| const FbxPropertyPage * | GetInstanceOf () const |
| FbxPropertyPage * | GetInstanceOf () |
| const FbxArray < FbxPropertyPage * > & |
GetInstances () const |
| FbxArray< FbxPropertyPage * > & | GetInstances () |
| FbxPropertyAttr::EFlags | GetFlags (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) const |
| bool | ModifyFlags (FbxInt pId=FBXSDK_PROPERTY_ID_ROOT, FbxPropertyAttr::EFlags pFlags=FbxPropertyAttr::eNone, bool pValue=true, bool pCheckFlagEquality=true) |
| FbxPropertyAttr::EInheritType | GetFlagsInheritType (FbxPropertyAttr::EFlags pFlags, bool pCheckInstanceOf, FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) const |
| bool | SetFlagsInheritType (FbxPropertyAttr::EInheritType pInheritType, FbxPropertyAttr::EFlags pFlags, FbxInt pId=FBXSDK_PROPERTY_ID_ROOT) |
| void | BeginCreateOrFindProperty () |
| void | EndCreateOrFindProperty () |
Static Public Member Functions |
|
| static FbxPropertyPage * | Create (FbxPropertyPage *pInstanceOf=0) |
| static FbxPropertyPage * | Create (const char *pName, FbxPropertyPage *pTypeInfo) |
| static FbxPropertyPage * | Create (const char *pName, EFbxType pType=eFbxUndefined) |
Protected Member Functions |
|
| FbxPropertyPage (FbxPropertyPage *pInstanceOf=0) | |
| FbxPropertyPage (const char *pName, EFbxType pType) | |
| FbxPropertyPage (const char *pName, FbxPropertyPage *pTypeInfo) | |
| ~FbxPropertyPage () | |
| bool | Is (FbxPropertyPage *pPage) |
Friends |
|
| class | FbxPropertyHandle |
| enum EValueIndex |
Definition at line 1252 of file fbxpropertypage.h.
| FbxPropertyPage | ( | FbxPropertyPage * | pInstanceOf = 0 |
) | [inline, protected] |
Definition at line 1613 of file fbxpropertypage.h.
: mInstanceOf(0)
, mDataPtr(0)
, mPropNextId(0)
{
mEntryMap.Reserve(32);
mNameMap.mFirst = 0;
// instances don't need to create a root property
if( !pInstanceOf )
{
mPropNextId = FbxNew< FbxPropertyIdGenerator >();
mPropNextId->IncRef();
// First item is the root information
Add(FBXSDK_PROPERTY_ID_NULL,"",eFbxUndefined);
}
// Hook the instances
// ------------------------
mInstanceOf = pInstanceOf;
if (mInstanceOf) {
mInstanceOf->mInstances.Add(this);
mPropNextId = mInstanceOf->mPropNextId;
mPropNextId->IncRef();
}
}
| FbxPropertyPage | ( | const char * | pName, |
| EFbxType | pType | ||
| ) | [inline, protected] |
Definition at line 1641 of file fbxpropertypage.h.
: mInstanceOf(0)
, mDataPtr(0)
, mPropNextId(0)
{
mEntryMap.Reserve(32);
mNameMap.mFirst = 0;
mPropNextId = FbxNew< FbxPropertyIdGenerator >();
mPropNextId->IncRef();
// First item is the root information
Add(FBXSDK_PROPERTY_ID_NULL,pName,pType);
}
| FbxPropertyPage | ( | const char * | pName, |
| FbxPropertyPage * | pTypeInfo | ||
| ) | [inline, protected] |
Definition at line 1655 of file fbxpropertypage.h.
: mInstanceOf(0)
, mDataPtr(0)
, mPropNextId(0)
{
mEntryMap.Reserve(32);
mNameMap.mFirst = 0;
mPropNextId = FbxNew< FbxPropertyIdGenerator >();
mPropNextId->IncRef();
// First item is the root information
Add(FBXSDK_PROPERTY_ID_NULL,pName,pTypeInfo);
}
| ~FbxPropertyPage | ( | ) | [inline, protected] |
Definition at line 1669 of file fbxpropertypage.h.
{
// Propagate our property entries.
int i = 0, j = 0;
for( i = 0; i < mInstances.GetCount(); ++i )
{
for( j = 0; j < GetPropertyEntryCount(); ++j )
{
if( mInstances[i]->ChangePropertyEntryState((FbxInt)j, FbxPropertyAttr::eOverride) )
{
// Clone the info and values. Don't clone the connections,
// since they aren't propagated.
mInstances[i]->ChangePropertyItemState( FBX_TYPE(FbxPropertyInfo), (FbxInt)j, FbxPropertyAttr::eOverride );
mInstances[i]->ChangePropertyItemState( FBX_TYPE(FbxPropertyValue), (FbxInt)j, FbxPropertyAttr::eOverride );
// Since all entries have their own flags, just override the ones in the instance.
mInstances[i]->SetFlagsInheritType(FbxPropertyAttr::eOverride, FbxPropertyAttr::eAllFlags, (FbxInt)j );
}
}
// Instances become their own copies.
mInstances[i]->mInstanceOf = NULL;
}
// Not a very efficient way of traversing the map
EntryMap::Iterator lElement = mEntryMap.Begin();
while (lElement != mEntryMap.End())
{
lElement->GetValue()->Destroy();
lElement++;
}
if (mInstanceOf) {
int lIndex = mInstanceOf->mInstances.Find(this);
mInstanceOf->mInstances.SetAt(lIndex, mInstanceOf->mInstances[mInstanceOf->mInstances.GetCount()-1]);
mInstanceOf->mInstances.RemoveAt(mInstanceOf->mInstances.GetCount()-1);
//mInstanceOf->mInstances.RemoveIt(this);
}
mPropNextId->DecRef();
mPropNextId = NULL;
mInstanceOf = NULL;
mInstances.Clear();
}
| FBXSDK_FRIEND_NEW | ( | ) |
| static FbxPropertyPage* Create | ( | FbxPropertyPage * | pInstanceOf = 0 |
) | [inline, static] |
Definition at line 598 of file fbxpropertypage.h.
{ return FbxNew< FbxPropertyPage >(pInstanceOf); }
| static FbxPropertyPage* Create | ( | const char * | pName, |
| FbxPropertyPage * | pTypeInfo | ||
| ) | [inline, static] |
Definition at line 599 of file fbxpropertypage.h.
{ return FbxNew< FbxPropertyPage >(pName,pTypeInfo); }
| static FbxPropertyPage* Create | ( | const char * | pName, |
| EFbxType | pType =
eFbxUndefined |
||
| ) | [inline, static] |
Definition at line 600 of file fbxpropertypage.h.
{ return FbxNew< FbxPropertyPage >(pName,pType); }
| void Destroy | ( | ) | [inline] |
| T* GetPropertyItem | ( | const T * | pItemType, |
| FbxInt | pIndex, | ||
| FbxPropertyPage ** | pFoundIn = 0 |
||
| ) | const [inline] |
Definition at line 603 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = 0;
FbxPropertyEntry* lReferenceEntry = GetPropertyEntry(pIndex,&lReferencePage);
if (pFoundIn) *pFoundIn = 0;
if (lReferenceEntry) {
T* lItem = lReferenceEntry->Get( FBX_TYPE(T) );
if (lItem) {
if (pFoundIn) *pFoundIn = lReferencePage;
return lItem;
} else {
return lReferencePage->mInstanceOf ? lReferencePage->mInstanceOf->GetPropertyItem(pItemType,pIndex,pFoundIn) : 0 ;
}
}
return 0;
}
| T* ChangePropertyItemState | ( | const T * | pItemType, |
| FbxInt | pIndex, | ||
| FbxPropertyAttr::EInheritType | pInheritType | ||
| ) | [inline] |
Definition at line 620 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = NULL;
T* lItem = GetPropertyItem(pItemType, pIndex, &lReferencePage);
if( pInheritType == FbxPropertyAttr::eOverride )
{
if( lReferencePage == this )
{
return lItem;
}
else if( lItem )
{
FbxPropertyEntry* lEntry = ChangePropertyEntryState(pIndex, FbxPropertyAttr::eOverride);
lEntry->Set(lItem->Clone(this));
return lEntry->Get(FBX_TYPE(T));
}
}
else
{
// can't inherit entries that were created on our page.
bool lOwnEntry = !mInstanceOf || (mInstanceOf->GetPropertyItem(pItemType, pIndex) == NULL);
if( lOwnEntry && FbxPropertyAttr::eInherit == pInheritType) return 0;
if( lItem && (lReferencePage == this) )
{
FbxPropertyEntry* lEntry = GetPropertyEntry(pIndex);
lEntry->Set((T*)0);
if( lEntry->IsEmpty() )
{
ChangePropertyEntryState(pIndex, FbxPropertyAttr::eInherit);
}
}
return 0;
}
return 0;
}
| FbxPropertyPage* GetFirstPropertyItem | ( | FbxInt | pId, |
| const T * | pItem | ||
| ) | const [inline] |
Definition at line 657 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = NULL;
GetPropertyItem(FBX_TYPE(T), pId, &lReferencePage);
if( lReferencePage && lReferencePage->mInstanceOf )
{
FbxPropertyPage* lReferencePage2 = lReferencePage->mInstanceOf->GetFirstPropertyItem(pId, pItem);
return lReferencePage2 ? lReferencePage2 : lReferencePage;
}
return lReferencePage;
}
| const char* GetName | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT |
) | [inline] |
Definition at line 669 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
return lPropertyInfo ? ((const char*)lPropertyInfo->GetName()) : "";
}
| const char* GetLabel | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT |
) | [inline] |
Definition at line 675 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
return lPropertyInfo ? ((const char*)lPropertyInfo->GetLabel()) : "";
}
| bool SetLabel | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT, |
| const char * | pLabel = "" |
||
| ) | [inline] |
Definition at line 681 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
if (lPropertyInfo) {
lPropertyInfo->SetLabel(pLabel);
return true;
} else {
return false;
}
}
| void* GetUserData | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT |
) | [inline] |
Definition at line 693 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
return lPropertyInfo ? lPropertyInfo->GetUserData() : 0;
}
| bool SetUserData | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT, |
| const void * | pUserData =
0 |
||
| ) | [inline] |
Definition at line 699 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
if (lPropertyInfo) {
lPropertyInfo->SetUserData(pUserData);
return true;
} else {
return false;
}
}
| int GetUserTag | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT |
) | [inline] |
Definition at line 711 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
return lPropertyInfo ? lPropertyInfo->GetUserTag() : 0;
}
| bool SetUserTag | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT, |
| int | pUserTag = 0 |
||
| ) | [inline] |
Definition at line 717 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
if (lPropertyInfo) {
lPropertyInfo->SetUserTag(pUserTag);
return true;
} else {
return false;
}
}
Definition at line 729 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
return lPropertyInfo ? lPropertyInfo->GetType() : eFbxUndefined;
}
Definition at line 735 of file fbxpropertypage.h.
{
FbxPropertyEntry* lPropertyEntry = GetPropertyEntry( pId );
return lPropertyEntry ? lPropertyEntry->GetParentId() : FBXSDK_PROPERTY_ID_NULL;
}
| FbxPropertyPage* GetTypeInfo | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT |
) | [inline] |
Definition at line 741 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
return lPropertyInfo ? lPropertyInfo->GetTypeInfo() : 0;
}
Definition at line 746 of file fbxpropertypage.h.
{
return Add(pParentId,FbxPropertyInfo::Create(pName,pType),FbxPropertyValue::Create(0,pType),0);
}
| FbxInt Add | ( | FbxInt | pParentId, |
| const char * | pName, | ||
| FbxPropertyPage * | pTypeInfo | ||
| ) | [inline] |
Definition at line 750 of file fbxpropertypage.h.
{
return Add(pParentId,FbxPropertyInfo::Create(pName,pTypeInfo),FbxPropertyValue::Create(0,pTypeInfo->GetType()),0);
}
Definition at line 755 of file fbxpropertypage.h.
{
// Not implemented.
/*
if( GetParent(pChildId) != pNewParentId && pChildId < mEntries.GetCount() )
{
FbxPropertyEntry* lChildEntry = mEntries[pChildId];
lChildEntry->mParentId = pNewParentId;
//@@@@@ TODO: propagate to instances
return true;
}
*/
return false;
}
Definition at line 772 of file fbxpropertypage.h.
{
return GetParent(pId)==pParentId;
}
Definition at line 778 of file fbxpropertypage.h.
{
if (pAncestorId>0) {
FbxInt lParentId = GetParent(pId);
while (lParentId != FBXSDK_PROPERTY_ID_NULL ) {
if (lParentId==pAncestorId) {
return true;
}
lParentId = GetParent(lParentId);
}
return false;
} else {
return true;
}
}
Retrieves the first child property id of a specified property id.
| pParentId | The specified property id |
Definition at line 801 of file fbxpropertypage.h.
{
#ifdef PROPERTY_PAGE_SANITY_CHECK
FbxInt ret0 = FBXSDK_PROPERTY_ID_NULL;
if (pParentId!=FBXSDK_PROPERTY_ID_NULL) {
FbxInt lId = GetMinimumPropertyId(pParentId);
FbxInt lParentId = GetParent(lId);
const FbxInt lLastId = GetPropertyEntryCount();
while (lId<lLastId && lParentId!=pParentId) lParentId=GetParent(++lId);
ret0 = lId<lLastId ? lId : FBXSDK_PROPERTY_ID_NULL;
} else {
ret0 = FBXSDK_PROPERTY_ID_NULL;
}
#endif
FbxInt ret1 = FBXSDK_PROPERTY_ID_NULL;
if (pParentId != FBXSDK_PROPERTY_ID_NULL)
{
FbxPropertyEntry* lEntry;
FbxInt lId = pParentId;
do
{
lId = GetMinimumPropertyIdAndEntry(lId, &lEntry);
} while (lId != FBXSDK_PROPERTY_ID_NULL && lEntry->GetParentId() != pParentId);
ret1 = lId;
}
#ifdef PROPERTY_PAGE_SANITY_CHECK
FBX_ASSERT(ret0==ret1);
#endif
return ret1;
}
Retrieves the next sibling property id of a specified property id.
| pId | The specified property id |
Definition at line 837 of file fbxpropertypage.h.
{
#ifdef PROPERTY_PAGE_SANITY_CHECK
FbxInt pIdBackup = pId;
FbxInt ret0 = FBXSDK_PROPERTY_ID_NULL;
if (pId!=FBXSDK_PROPERTY_ID_NULL) {
FbxInt lReferenceParentId = GetParent(pId);
FbxInt lParentId = GetParent(++pId);
const FbxInt lLastId = GetPropertyEntryCount();
while (pId<lLastId && lReferenceParentId!=FBXSDK_PROPERTY_ID_NULL && lParentId!=lReferenceParentId)
lParentId=GetParent(++pId);
ret0 = pId<lLastId ? pId : FBXSDK_PROPERTY_ID_NULL;
} else {
ret0 = FBXSDK_PROPERTY_ID_NULL;
}
pId = pIdBackup;
#endif
FbxInt ret1 = FBXSDK_PROPERTY_ID_NULL;
if (pId != FBXSDK_PROPERTY_ID_NULL)
{
FbxInt lReferenceParentId = GetParent(pId);
if (lReferenceParentId != FBXSDK_PROPERTY_ID_NULL)
{
FbxPropertyEntry *lEntry;
do
{
pId = GetMinimumPropertyIdAndEntry(pId, &lEntry);
} while (pId != FBXSDK_PROPERTY_ID_NULL && lEntry->GetParentId() != lReferenceParentId);
ret1 = pId;
}
}
#ifdef PROPERTY_PAGE_SANITY_CHECK
FBX_ASSERT(ret0==ret1);
#endif
return ret1;
}
Retrieves the first descendent property id of a specified property id.
| pAnscestorId | The specified property id |
Definition at line 882 of file fbxpropertypage.h.
{
#ifdef PROPERTY_PAGE_SANITY_CHECK
FbxInt ret0 = FBXSDK_PROPERTY_ID_NULL;
if (pAnscestorId!=FBXSDK_PROPERTY_ID_NULL) {
FbxInt lId = GetMinimumPropertyId(pAnscestorId);
FbxInt lParentId = GetParent(lId);
const FbxInt lLastId = GetPropertyEntryCount();
while (lId<lLastId) {
if( lParentId!=FBXSDK_PROPERTY_ID_NULL && IsDescendentOf(lId,pAnscestorId) )
{
ret0 = lId;
break;
}
lParentId = GetParent(++lId);
}
}
#endif
FbxInt ret1 = FBXSDK_PROPERTY_ID_NULL;
FbxInt lId = pAnscestorId;
FbxPropertyEntry* lEntry;
if (pAnscestorId != FBXSDK_PROPERTY_ID_NULL)
{
for(;;)
{
lId = GetMinimumPropertyIdAndEntry(lId, &lEntry);
if (lId == FBXSDK_PROPERTY_ID_NULL)
break;
if(lEntry->GetParentId() != FBXSDK_PROPERTY_ID_NULL && IsDescendentOf(lId, pAnscestorId))
{
ret1 = lId;
break;
}
}
}
#ifdef PROPERTY_PAGE_SANITY_CHECK
FBX_ASSERT(ret0==ret1);
#endif
return ret1;
}
Retrieves the next descendent property id of a specified property id, with given a descendent property id.
| pAnscestorId | The specified property id |
| pId | The descendent property id |
Definition at line 930 of file fbxpropertypage.h.
{
#ifdef PROPERTY_PAGE_SANITY_CHECK
FbxInt pIdBackup = pId;
FbxInt ret0 = FBXSDK_PROPERTY_ID_NULL;
if (pId!=FBXSDK_PROPERTY_ID_NULL) {
FbxInt lParentId = GetParent(++pId);
const FbxInt lLastId = GetPropertyEntryCount();
while (pId<lLastId) {
// GetParent returns null when the given id isn't in our page,
// or our ancestor's page.
if( lParentId != FBXSDK_PROPERTY_ID_NULL && IsDescendentOf(pId, pAnscestorId) )
{
ret0 = pId;
break;
}
lParentId = GetParent(++pId);
}
}
pId = pIdBackup;
#endif
FbxInt ret1 = FBXSDK_PROPERTY_ID_NULL;
if (pId != FBXSDK_PROPERTY_ID_NULL)
{
FbxPropertyEntry* lEntry;
for(;;)
{
pId = GetMinimumPropertyIdAndEntry(pId, &lEntry);
if (pId == FBXSDK_PROPERTY_ID_NULL)
break;
if(lEntry->GetParentId() != FBXSDK_PROPERTY_ID_NULL && IsDescendentOf(pId, pAnscestorId) )
{
ret1 = pId;
break;
}
}
}
#ifdef PROPERTY_PAGE_SANITY_CHECK
FBX_ASSERT(ret0==ret1);
#endif
return ret1;
}
| FbxInt FastFind | ( | FbxInt | pId, |
| const char * | pName, | ||
| FbxPropertyPage * | pTypeInfo, | ||
| bool | pCaseSensitive | ||
| ) | [inline] |
Definition at line 978 of file fbxpropertypage.h.
{
FbxInt lId = FBXSDK_PROPERTY_ID_NULL;
bool lSlowQuery = true;
if( mNameMap.mSecond.GetSize() > 0 )
{
lSlowQuery = false;
// try to use the map if we've got it
NameMap::RecordType* lIterator = mNameMap.mSecond.Find( FbxNameMapKey( pId, pName ) );
if( !lIterator )
{
lId = FBXSDK_PROPERTY_ID_NULL;
}
else
{
lId = lIterator->GetValue();
if (lId != FBXSDK_PROPERTY_ID_NULL && pTypeInfo)
{
lSlowQuery = true;
// Try to match types.
// If they are mismatched, fall back to the slow query,
// since we might have multiple property with the same name but different types
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo), lId );
if (lPropertyInfo)
{
FbxPropertyPage* lTypeInfo2 = lPropertyInfo->GetTypeInfo();
if ( lTypeInfo2 && lTypeInfo2->Is(pTypeInfo) )
{
lSlowQuery = false;
}
}
}
}
}
if (!lSlowQuery)
return lId;
// fall back if there's no map or we got one with a different type
lId = GetChild(pId);
FbxStringSymbol lSearchSymbol( pName );
while( lId != FBXSDK_PROPERTY_ID_NULL ) {
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo), lId );
if ( (!pTypeInfo || lPropertyInfo->GetTypeInfo()->Is(pTypeInfo)) &&
((!pCaseSensitive && FBXSDK_stricmp(lPropertyInfo->GetName(),pName)==0) ||
(pCaseSensitive && lPropertyInfo->GetName() == lSearchSymbol)) ) {
return lId;
}
lId = GetSibling(lId);
}
return FBXSDK_PROPERTY_ID_NULL;
}
| FbxInt Find | ( | FbxInt | pId, |
| const char * | pName, | ||
| FbxPropertyPage * | pTypeInfo, | ||
| bool | pCaseSensitive, | ||
| const char * | pChildrenSeparators | ||
| ) | [inline] |
Definition at line 1035 of file fbxpropertypage.h.
{
if (pChildrenSeparators)
{
FbxInt lId;
size_t lFoundIndex = strcspn(pName,pChildrenSeparators);
// Strip the first part of the name and search
if (lFoundIndex<strlen(pName))
{
FbxString pRootName;
pRootName.Append(pName,lFoundIndex);
lId = FastFind(pId,pRootName.Buffer(),NULL,pCaseSensitive);
return lId != FBXSDK_PROPERTY_ID_NULL ? Find(lId,pName+lFoundIndex+1,pTypeInfo,pCaseSensitive,pChildrenSeparators) : lId;
} else {
return FastFind(pId,pName,pTypeInfo,pCaseSensitive);
}
} else {
return FastFind(pId,pName,pTypeInfo,pCaseSensitive);
}
}
| int AddEnumValue | ( | FbxInt | pId, |
| const char * | pStringValue | ||
| ) | [inline] |
Definition at line 1058 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
return lPropertyInfo ? lPropertyInfo->AddEnumValue(pStringValue) : - 1;
}
| void InsertEnumValue | ( | FbxInt | pId, |
| int | pIndex, | ||
| const char * | pStringValue | ||
| ) | [inline] |
Definition at line 1065 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
if (lPropertyInfo) lPropertyInfo->InsertEnumValue(pIndex,pStringValue);
}
| int GetEnumCount | ( | FbxInt | pId | ) | [inline] |
Definition at line 1072 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
return lPropertyInfo ? lPropertyInfo->GetEnumCount() : 0;
}
| void SetEnumValue | ( | FbxInt | pId, |
| int | pIndex, | ||
| const char * | pStringValue | ||
| ) | [inline] |
Definition at line 1079 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
if (lPropertyInfo) lPropertyInfo->SetEnumValue(pIndex,pStringValue);
}
| void RemoveEnumValue | ( | FbxInt | pId, |
| int | pIndex | ||
| ) | [inline] |
Definition at line 1086 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
if (lPropertyInfo) lPropertyInfo->RemoveEnumValue(pIndex);
}
| char* GetEnumValue | ( | FbxInt | pId, |
| int | pIndex | ||
| ) | [inline] |
Definition at line 1093 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
return lPropertyInfo ? lPropertyInfo->GetEnumValue(pIndex) : (char*)"";
}
| void ClearConnectCache | ( | FbxInt | pId | ) | [inline] |
Definition at line 1101 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = 0;
FbxPropertyConnect* lPropertyConnect = GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pId,&lReferencePage );
// Connections are not considered propagated so
// make sure that we own the FbxPropertyConnect objects
if (lPropertyConnect) {
lPropertyConnect->ClearConnectCache();
}
}
| void WipeAllConnections | ( | FbxInt | pId | ) | [inline] |
Definition at line 1113 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = 0;
FbxPropertyConnect* lPropertyConnect = GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pId,&lReferencePage );
if (lPropertyConnect) {
lPropertyConnect->WipeAllConnections();
}
}
| bool ConnectSrc | ( | FbxInt | pDstId, |
| FbxPropertyPage * | pSrcPage, | ||
| FbxInt | pSrcId, | ||
| FbxConnection::EType | pType | ||
| ) | [inline] |
Definition at line 1123 of file fbxpropertypage.h.
{
FbxPropertyEntry* lDstEntry = ChangePropertyEntryState(pDstId,FbxPropertyAttr::eOverride);
FbxPropertyEntry* lSrcEntry = pSrcPage->ChangePropertyEntryState(pSrcId,FbxPropertyAttr::eOverride);
FbxPropertyConnect* lDstConnect= lDstEntry->Get( FBX_TYPE(FbxPropertyConnect) );
FbxPropertyConnect* lSrcConnect= lSrcEntry->Get( FBX_TYPE(FbxPropertyConnect) );
// Make sure we have a connection point on both sides of the connection
if (!lDstConnect) {
lDstConnect = FbxPropertyConnect::Create( this,pDstId );
lDstEntry->Set( lDstConnect );
}
if (!lSrcConnect) {
lSrcConnect = FbxPropertyConnect::Create( pSrcPage,pSrcId );
lSrcEntry->Set( lSrcConnect );
}
// Must @@@@@@@ Propagate to inherited children
return lDstConnect->ConnectSrc(lSrcConnect,pType);
}
| bool DisconnectSrc | ( | FbxInt | pDstId, |
| FbxPropertyPage * | pSrcPage, | ||
| FbxInt | pSrcId | ||
| ) | [inline] |
Definition at line 1145 of file fbxpropertypage.h.
{
FbxPropertyPage* lDstReferencePage = 0;
FbxPropertyConnect* lDstConnect = GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pDstId,&lDstReferencePage );
FbxPropertyPage* lSrcReferencePage = 0;
FbxPropertyConnect* lSrcConnect = pSrcPage->GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pSrcId,&lSrcReferencePage );
// Make sure we have a connection point on both sides of the connection
if (lDstConnect && lSrcConnect && lDstReferencePage==this && lSrcReferencePage==pSrcPage) {
// Must @@@@@@@ Remove unused connections
return lDstConnect->DisconnectSrc(lSrcConnect);
}
return false;
}
| bool IsConnectedSrc | ( | FbxInt | pDstId, |
| FbxPropertyPage * | pSrcPage, | ||
| FbxInt | pSrcId | ||
| ) | [inline] |
Definition at line 1160 of file fbxpropertypage.h.
{
FbxPropertyPage* lDstReferencePage = 0;
FbxPropertyConnect* lDstConnect = GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pDstId,&lDstReferencePage );
FbxPropertyPage* lSrcReferencePage = 0;
FbxPropertyConnect* lSrcConnect = pSrcPage->GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pSrcId,&lSrcReferencePage );
// Make sure we have a connection point on both sides of the connection
if (lDstConnect && lSrcConnect && lDstReferencePage==this && lSrcReferencePage==pSrcPage) {
// Must @@@@@@@ Remove unused connections
return lDstConnect->IsConnectedSrc(lSrcConnect);
}
return false;
}
| int GetSrcCount | ( | FbxInt | pId, |
| FbxConnectionPointFilter * | pFilter | ||
| ) | [inline] |
Definition at line 1175 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = 0;
FbxPropertyConnect* lPropertyConnect = GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pId,&lReferencePage );
// Connections are not considered propagated so
// make sure that we own the FbxPropertyConnect objects
return (lPropertyConnect && lReferencePage==this) ? lPropertyConnect->GetSrcCount(pFilter) : 0;
}
| bool GetSrc | ( | FbxInt | pId, |
| int | pIndex, | ||
| FbxConnectionPointFilter * | pFilter, | ||
| FbxPropertyPage ** | pSrcPage, | ||
| FbxInt * | pSrcId | ||
| ) | [inline] |
Definition at line 1185 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = 0;
FbxPropertyConnect* lPropertyConnect = GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pId,&lReferencePage );
// Connections are always overridden
// make sure that we own the FbxPropertyConnect Item
if (lPropertyConnect && lReferencePage==this)
{
FbxPropertyConnect* lSrc = lPropertyConnect->GetSrc(pFilter,pIndex);
if (lSrc)
{
if (pSrcPage) *pSrcPage = lSrc->GetPage();
if (pSrcId) *pSrcId = lSrc->GetPropertyId();
return true;
}
}
return false;
}
| bool ConnectDst | ( | FbxInt | pSrcId, |
| FbxPropertyPage * | pDstPage, | ||
| FbxInt | pDstId, | ||
| FbxConnection::EType | pType | ||
| ) | [inline] |
Definition at line 1205 of file fbxpropertypage.h.
{
return pDstPage->ConnectSrc(pDstId,this,pSrcId,pType);
}
| bool DisconnectDst | ( | FbxInt | pSrcId, |
| FbxPropertyPage * | pDstPage, | ||
| FbxInt | pDstId | ||
| ) | [inline] |
Definition at line 1210 of file fbxpropertypage.h.
{
return pDstPage->DisconnectSrc(pDstId,this,pSrcId);
}
| bool IsConnectedDst | ( | FbxInt | pSrcId, |
| FbxPropertyPage * | pDstPage, | ||
| FbxInt | pDstId | ||
| ) | [inline] |
Definition at line 1215 of file fbxpropertypage.h.
{
return pDstPage->IsConnectedSrc(pDstId,this,pSrcId);
}
| int GetDstCount | ( | FbxInt | pId, |
| FbxConnectionPointFilter * | pFilter | ||
| ) | [inline] |
Definition at line 1220 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = 0;
FbxPropertyConnect* lPropertyConnect = GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pId,&lReferencePage );
// Connections are not considered propagated so
// make sure that we own the FbxPropertyConnect objects
return (lPropertyConnect && lReferencePage==this) ? lPropertyConnect->GetDstCount(pFilter) : 0;
}
| bool GetDst | ( | FbxInt | pId, |
| int | pIndex, | ||
| FbxConnectionPointFilter * | pFilter, | ||
| FbxPropertyPage ** | pDstPage, | ||
| FbxInt * | pDstId | ||
| ) | [inline] |
Definition at line 1230 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = 0;
FbxPropertyConnect* lPropertyConnect = GetPropertyItem( FBX_TYPE(FbxPropertyConnect),pId,&lReferencePage );
// Connections are always overridden
// make sure that we own the FbxPropertyConnect Item
if (lPropertyConnect && lReferencePage==this)
{
FbxPropertyConnect* lDst = lPropertyConnect->GetDst(pFilter,pIndex);
if (lDst)
{
if (pDstPage) *pDstPage = lDst->GetPage();
if (pDstId) *pDstId = lDst->GetPropertyId();
return true;
}
}
return false;
}
| bool HasMinMax | ( | FbxInt | pId, |
| FbxPropertyInfo::EValueIndex | pValueId | ||
| ) | const [inline] |
Definition at line 1254 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
return lPropertyInfo ? lPropertyInfo->HasMinMax(pValueId) : false;
}
| bool GetMinMax | ( | FbxInt | pId, |
| FbxPropertyInfo::EValueIndex | pValueId, | ||
| void * | pValue, | ||
| EFbxType | pValueType | ||
| ) | [inline] |
Definition at line 1261 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
return lPropertyInfo ? lPropertyInfo->GetMinMax(pValueId,pValue,pValueType) : false;
}
| bool SetMinMax | ( | FbxInt | pId, |
| FbxPropertyInfo::EValueIndex | pValueId, | ||
| const void * | pValue, | ||
| EFbxType | pValueType | ||
| ) | [inline] |
Definition at line 1268 of file fbxpropertypage.h.
{
FbxPropertyInfo* lPropertyInfo = GetPropertyItem( FBX_TYPE(FbxPropertyInfo),pId );
// Don't make it writeable (Keep it shared)
return lPropertyInfo ? lPropertyInfo->SetMinMax(pValueId,pValue,pValueType) : false;
}
Definition at line 1277 of file fbxpropertypage.h.
{
FbxPropertyValue* lPropertyValue = GetPropertyItem( FBX_TYPE(FbxPropertyValue),pId );
return lPropertyValue ? lPropertyValue->Get(pValue,pValueType) : 0;
}
| bool Set | ( | FbxInt | pId, |
| const void * | pValue, | ||
| EFbxType | pValueType, | ||
| bool | pCheckValueEquality | ||
| ) | [inline] |
Definition at line 1283 of file fbxpropertypage.h.
{
if( pCheckValueEquality )
{
FbxPropertyPage* lReferencePage = NULL;
FbxPropertyValue* lPropertyValue = GetPropertyItem( FBX_TYPE(FbxPropertyValue),pId,&lReferencePage );
void* lCurrentValue = FbxTypeAllocate( pValueType );
bool lValuesEqual = false;
bool lValueChanged = false;
if( lReferencePage && lReferencePage != this )
{
// this page inherits, so check if we have to override the value.
if( lPropertyValue )
{
lPropertyValue->Get( lCurrentValue, pValueType );
lValuesEqual = FbxTypeCompare( pValue, lCurrentValue, pValueType );
}
}
else
{
FbxPropertyPage* lReferencePage2 = NULL;
FbxPropertyValue* lPropertyValue2 = mInstanceOf ? mInstanceOf->GetPropertyItem( FBX_TYPE(FbxPropertyValue),pId,&lReferencePage2 ) : NULL;
if( lReferencePage2 && lPropertyValue2 )
{
// this page is an override, but there is another page before us that overrides the value
lPropertyValue2->Get( lCurrentValue, pValueType );
lValuesEqual = FbxTypeCompare( pValue, lCurrentValue, pValueType );
if( lValuesEqual )
{
ChangePropertyItemState( FBX_TYPE(FbxPropertyValue), pId, FbxPropertyAttr::eInherit );
lValueChanged = true;
}
}
// else this page is the originator of the property, so no need to check,
}
FbxTypeDeallocate(pValueType, lCurrentValue);
lCurrentValue = NULL;
if( lValuesEqual )
return lValueChanged;
}
FbxPropertyValue* lPropertyValue = ChangePropertyItemState( FBX_TYPE(FbxPropertyValue),pId,FbxPropertyAttr::eOverride );
return lPropertyValue ? lPropertyValue->Set(pValue,pValueType) : false;
}
| FbxPropertyAttr::EInheritType GetValueInherit | ( | FbxInt | pId, |
| bool | pCheckInstanceOf | ||
| ) | const [inline] |
Definition at line 1332 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = 0;
FbxPropertyValue* lPropertyValue = GetPropertyItem( FBX_TYPE(FbxPropertyValue),pId,&lReferencePage );
// check one level
if( !pCheckInstanceOf )
return lReferencePage==this ? FbxPropertyAttr::eOverride : FbxPropertyAttr::eInherit;
else
{
if( lReferencePage==this ) return FbxPropertyAttr::eOverride; // this page is either an override, or the originator
else if( !lReferencePage->mInstanceOf ) return FbxPropertyAttr::eInherit; // the reference is the class root, so we must be inheriting
// The reference page is not the class root, might be another override, or the originator.
lPropertyValue = lReferencePage->mInstanceOf->GetPropertyItem( FBX_TYPE(FbxPropertyValue), pId );
// if lReferencePage->mInstanceOf has the property value,
// lReferencePage is an override
// else
// its the originator, so this page inherits from it.
return lPropertyValue ? FbxPropertyAttr::eOverride : FbxPropertyAttr::eInherit;
}
}
| bool SetValueInherit | ( | FbxInt | pId, |
| FbxPropertyAttr::EInheritType | pType | ||
| ) | [inline] |
Definition at line 1357 of file fbxpropertypage.h.
{
// no support for this mode yet
if( FbxPropertyAttr::eDeleted == pType )
return false;
ChangePropertyItemState( FBX_TYPE(FbxPropertyValue), pId, pType );
// Above call doesn't return error codes, so just check that we match types.
return GetValueInherit(pId, false) == pType;
}
Definition at line 1369 of file fbxpropertypage.h.
{
FbxPropertyPage* lReferencePage = GetFirstPropertyItem( pId, FBX_TYPE(FbxPropertyValue) );
FbxPropertyValue* lPropertyValue = lReferencePage ? lReferencePage->GetPropertyItem( FBX_TYPE(FbxPropertyValue), pId ) : NULL;
return lPropertyValue ? lPropertyValue->Get( pValue, pValueType ) : false;
}
| bool Set | ( | FbxInt | pId, |
| const T & | pValue | ||
| ) | [inline] |
Definition at line 1379 of file fbxpropertypage.h.
| T Get | ( | FbxInt | pId, |
| const T * | pFBX_TYPE | ||
| ) | [inline] |
Definition at line 1380 of file fbxpropertypage.h.
| void SetDataPtr | ( | void * | pDataPtr | ) | [inline] |
Definition at line 1383 of file fbxpropertypage.h.
{ mDataPtr = pDataPtr; }
| void* GetDataPtr | ( | ) | const [inline] |
| void PushPropertiesToParentInstance | ( | ) | [inline] |
Definition at line 1388 of file fbxpropertypage.h.
{
if (mInstanceOf) {
const int lCount = GetPropertyEntryCount();
// push the existing properties into the parent
// ----------------------------------------------
for( int i = 0; i < lCount; ++i )
{
FbxPropertyEntry* lParentEntry = mInstanceOf->ChangePropertyEntryState( (FbxInt)i,FbxPropertyAttr::eOverride );
FbxPropertyEntry* lEntry = GetPropertyEntry( (FbxInt)i );
if( !lParentEntry )
{
lParentEntry = FbxPropertyEntry::Create( lEntry->GetParentId(), 0, 0, 0 );
mInstanceOf->mEntryMap.Insert( i, lParentEntry );
//mInstanceOf->AddChild(i);
}
FBX_ASSERT( lParentEntry );
// Add it to the parent
// Don't touch the connections
// -----------------------------------------
if (lParentEntry) {
lParentEntry->Set( lEntry->Get(FBX_TYPE(FbxPropertyInfo)) );
lParentEntry->Set( lEntry->Get(FBX_TYPE(FbxPropertyValue)) );
lParentEntry->Set( lEntry->Get(FBX_TYPE(FbxPropertyFlagsExt)) );
}
/*
else {
mInstanceOf->Add(
lEntry->GetParentId(),
lEntry->Get(FBX_TYPE(FbxPropertyInfo)), // The info
lEntry->Get(FBX_TYPE(FbxPropertyValue)), // The Value
0, // The connections
false,
false
);
}
*/
// Empty the current entry
// Don't touch the connections
// -----------------------------------------
ChangePropertyItemState(FBX_TYPE(FbxPropertyInfo), i,FbxPropertyAttr::eInherit);
ChangePropertyItemState(FBX_TYPE(FbxPropertyValue), i,FbxPropertyAttr::eInherit);
ChangePropertyItemState(FBX_TYPE(FbxPropertyFlagsExt), i,FbxPropertyAttr::eInherit);
}
}
}
| const FbxPropertyPage* GetInstanceOf | ( | ) | const [inline] |
Definition at line 1442 of file fbxpropertypage.h.
{ return mInstanceOf; }
| FbxPropertyPage* GetInstanceOf | ( | ) | [inline] |
Definition at line 1443 of file fbxpropertypage.h.
{ return mInstanceOf; }
| const FbxArray<FbxPropertyPage*>& GetInstances | ( | ) | const [inline] |
Definition at line 1445 of file fbxpropertypage.h.
{ return mInstances; }
| FbxArray<FbxPropertyPage*>& GetInstances | ( | ) | [inline] |
Definition at line 1446 of file fbxpropertypage.h.
{ return mInstances; }
| FbxPropertyAttr::EFlags GetFlags | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT |
) | const [inline] |
Definition at line 1451 of file fbxpropertypage.h.
{
FbxPropertyPage* lFoundIn = NULL;
FbxPropertyFlagsExt* lPropertyFlags = GetPropertyItem( FBX_TYPE(FbxPropertyFlagsExt), pId, &lFoundIn );
FbxPropertyAttr::EFlags lFlags = FbxPropertyAttr::eNone;
if( lPropertyFlags )
{
if( !mInstanceOf ) // no inheritance.
lFlags = lPropertyFlags->GetFlags();
else
{
lFlags = mInstanceOf->GetFlags(pId);
lFlags = lPropertyFlags->GetMergedFlags(lFlags);
}
}
return lFlags;
}
| bool ModifyFlags | ( | FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT, |
| FbxPropertyAttr::EFlags | pFlags =
FbxPropertyAttr::eNone, |
||
| bool | pValue = true, |
||
| bool | pCheckFlagEquality =
true |
||
| ) | [inline] |
Definition at line 1470 of file fbxpropertypage.h.
{
if( pCheckFlagEquality )
{
FbxPropertyPage* lFoundIn = NULL;
FbxPropertyFlagsExt* lFlag = GetPropertyItem( FBX_TYPE(FbxPropertyFlagsExt), pId, &lFoundIn );
if( lFlag )
{
if( lFoundIn == this )
{
// set them in us.
lFlag->ModifyFlags( pFlags, pValue );
// we override this entry, check if we need to revert
FbxPropertyFlagsExt* lInheritedFlags = mInstanceOf ? mInstanceOf->GetPropertyItem( FBX_TYPE(FbxPropertyFlagsExt), pId ) : NULL;
if( lInheritedFlags && lInheritedFlags->Equal( *lFlag, pFlags ) )
{
lFlag->UnsetMask( pFlags );
if( lFlag->GetMask() == 0 )
ChangePropertyItemState( FBX_TYPE(FbxPropertyFlagsExt), pId, FbxPropertyAttr::eInherit );
return true;
}
}
else
{
// its not us. Just check if we need to set.
FbxPropertyFlagsExt lNewValues( pFlags );
if( lFlag->Equal( lNewValues, pFlags ) )
return true;
}
}
}
FbxPropertyFlagsExt* lPropertyFlags = ChangePropertyItemState(FBX_TYPE(FbxPropertyFlagsExt), pId, FbxPropertyAttr::eOverride);
return lPropertyFlags ? lPropertyFlags->ModifyFlags( pFlags, pValue ) : false;
}
| FbxPropertyAttr::EInheritType GetFlagsInheritType | ( | FbxPropertyAttr::EFlags | pFlags, |
| bool | pCheckInstanceOf, | ||
| FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT |
||
| ) | const [inline] |
Definition at line 1510 of file fbxpropertypage.h.
{
FbxPropertyPage* lFoundIn = NULL;
FbxPropertyFlagsExt* lPropertyFlags = GetPropertyItem( FBX_TYPE(FbxPropertyFlagsExt), pId, &lFoundIn );
if( !pCheckInstanceOf )
return lFoundIn != this ? FbxPropertyAttr::eInherit : ( lPropertyFlags ? lPropertyFlags->GetFlagsInheritType(pFlags) : FbxPropertyAttr::eInherit );
else
{
// This code basically counts the number of overrides for the
// given flags. The original entry is always considered an override.
// so if we see more than one, something overrode the original.
// and thus we are an override.
FbxPropertyPage* lRefPage = lFoundIn;
bool lFoundOverride = false;
while( lRefPage )
{
lPropertyFlags = lRefPage->GetPropertyItem( FBX_TYPE(FbxPropertyFlagsExt), pId );
if( !lPropertyFlags )
break; // gone too far, break.
if( lPropertyFlags->GetFlagsInheritType( pFlags ) == FbxPropertyAttr::eOverride )
{
if( this == lRefPage || lFoundOverride )
return FbxPropertyAttr::eOverride; // found two overrides or this page is the override.
else
lFoundOverride = true; // signal that we found the first override.
}
lRefPage = lRefPage->mInstanceOf;
}
return FbxPropertyAttr::eInherit;
}
}
| bool SetFlagsInheritType | ( | FbxPropertyAttr::EInheritType | pInheritType, |
| FbxPropertyAttr::EFlags | pFlags, | ||
| FbxInt | pId =
FBXSDK_PROPERTY_ID_ROOT |
||
| ) | [inline] |
Definition at line 1546 of file fbxpropertypage.h.
{
FbxPropertyPage* lFoundIn = NULL;
FbxPropertyFlagsExt* lPropertyFlags = NULL;
if( FbxPropertyAttr::eOverride == pInheritType )
{
lPropertyFlags = ChangePropertyItemState( FBX_TYPE(FbxPropertyFlagsExt), pId, FbxPropertyAttr::eOverride );
// we should initialize our flag to the inherited value, if any.
FbxPropertyFlagsExt* lParentFlags = mInstanceOf ? mInstanceOf->GetPropertyItem( FBX_TYPE(FbxPropertyFlagsExt), pId ) : NULL;
if( lParentFlags && lPropertyFlags )
{
FbxPropertyAttr::EFlags lParentValues = lParentFlags->GetFlags();
lPropertyFlags->SetFlags( pFlags, lParentValues );
return lPropertyFlags->SetMask( pFlags );
}
return false;
}
else if( FbxPropertyAttr::eInherit == pInheritType )
{
lPropertyFlags = GetPropertyItem(FBX_TYPE(FbxPropertyFlagsExt), pId, &lFoundIn);
if( !lPropertyFlags ) return false;
if( lFoundIn != this ) return true; // not us
lPropertyFlags->UnsetMask( pFlags );
if( lPropertyFlags->GetMask() == 0 ) // revert
ChangePropertyItemState( FBX_TYPE(FbxPropertyFlagsExt), pId, FbxPropertyAttr::eInherit );
return true;
}
return false;
}
| void BeginCreateOrFindProperty | ( | ) | [inline] |
Definition at line 1580 of file fbxpropertypage.h.
{
if( 0 == mNameMap.mFirst )
{
mNameMap.mSecond.Reserve(20);
// push the existing properties into the map. Note: this includes the root property!
FbxInt lFoundId = FBXSDK_PROPERTY_ID_ROOT;
FbxPropertyEntry* lEntry = GetPropertyEntry(lFoundId);
while(lFoundId != FBXSDK_PROPERTY_ID_NULL)
{
FbxPropertyInfo* lInfo = lEntry->Get(FBX_TYPE(FbxPropertyInfo));
//FBX_ASSERT( lInfo );
if (lInfo)
{
mNameMap.mSecond.Insert(FbxNameMapKey(lEntry->GetParentId(), lInfo->GetName()), lFoundId);
}
lFoundId = GetMinimumPropertyIdAndEntry(lFoundId, &lEntry);
}
mNameMap.mFirst++;
}
}
| void EndCreateOrFindProperty | ( | ) | [inline] |
Definition at line 1603 of file fbxpropertypage.h.
| bool Is | ( | FbxPropertyPage * | pPage | ) | [inline, protected] |
Definition at line 1716 of file fbxpropertypage.h.
{
// @@@@@@@@@@@@@@@ Must complete for sub types
return this==pPage;
}
friend class FbxPropertyHandle
[friend] |
Definition at line 1908 of file fbxpropertypage.h.