您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ArrayHelper函数代码示例

51自学网 2021-06-01 19:47:31
  C++
这篇教程C++ ArrayHelper函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ArrayHelper函数的典型用法代码示例。如果您正苦于以下问题:C++ ArrayHelper函数的具体用法?C++ ArrayHelper怎么用?C++ ArrayHelper使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ArrayHelper函数的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: if

UActorComponent* FComponentVisualizer::GetComponentFromPropertyName(const AActor* CompOwner, const FPropertyNameAndIndex& Property){	UActorComponent* ResultComp = NULL;	if(CompOwner && Property.IsValid())	{		UClass* ActorClass = CompOwner->GetClass();		UProperty* Prop = FindField<UProperty>(ActorClass, Property.Name);		if (UObjectProperty* ObjectProp = Cast<UObjectProperty>(Prop))		{			UObject* Object = ObjectProp->GetObjectPropertyValue(ObjectProp->ContainerPtrToValuePtr<void>(CompOwner, Property.Index));			ResultComp = Cast<UActorComponent>(Object);		}		else if (UArrayProperty* ArrayProp = Cast<UArrayProperty>(Prop))		{			if (UObjectProperty* InnerProp = Cast<UObjectProperty>(ArrayProp->Inner))			{				FScriptArrayHelper ArrayHelper(ArrayProp, ArrayProp->ContainerPtrToValuePtr<void>(CompOwner));				UObject* Object = InnerProp->GetObjectPropertyValue(ArrayHelper.GetRawPtr(Property.Index));				ResultComp = Cast<UActorComponent>(Object);			}		}	}	return ResultComp;}
开发者ID:RandomDeveloperM,项目名称:UE4_Hairworks,代码行数:25,


示例2: TEXT

uint8* UAnimSequenceBase::FindNotifyPropertyData(int32 NotifyIndex, UArrayProperty*& ArrayProperty){	// initialize to NULL	ArrayProperty = NULL;	if(Notifies.IsValidIndex(NotifyIndex))	{		// find Notifies property start point		UProperty* Property = FindField<UProperty>(GetClass(), TEXT("Notifies"));		// found it and if it is array		if(Property && Property->IsA(UArrayProperty::StaticClass()))		{			// find Property Value from UObject we got			uint8* PropertyValue = Property->ContainerPtrToValuePtr<uint8>(this);			// it is array, so now get ArrayHelper and find the raw ptr of the data			ArrayProperty = CastChecked<UArrayProperty>(Property);			FScriptArrayHelper ArrayHelper(ArrayProperty, PropertyValue);			if(ArrayProperty->Inner && NotifyIndex < ArrayHelper.Num())			{				//Get property data based on selected index				return ArrayHelper.GetRawPtr(NotifyIndex);			}		}	}	return NULL;}
开发者ID:amyvmiwei,项目名称:UnrealEngine4,代码行数:29,


示例3: Fill_MakeStructureDefaultValue

bool FStructureEditorUtils::Fill_MakeStructureDefaultValue(const UProperty* Property, uint8* PropertyData){    bool bResult = true;    if (const UStructProperty* StructProperty = Cast<const UStructProperty>(Property))    {        if (const UUserDefinedStruct* InnerStruct = Cast<const UUserDefinedStruct>(StructProperty->Struct))        {            bResult &= Fill_MakeStructureDefaultValue(InnerStruct, PropertyData);        }    }    else if (const UArrayProperty* ArrayProp = Cast<const UArrayProperty>(Property))    {        StructProperty = Cast<const UStructProperty>(ArrayProp->Inner);        const UUserDefinedStruct* InnerStruct = StructProperty ? Cast<const UUserDefinedStruct>(StructProperty->Struct) : NULL;        if(InnerStruct)        {            FScriptArrayHelper ArrayHelper(ArrayProp, PropertyData);            for (int32 Index = 0; Index < ArrayHelper.Num(); ++Index)            {                uint8* const ValuePtr = ArrayHelper.GetRawPtr(Index);                bResult &= Fill_MakeStructureDefaultValue(InnerStruct, ValuePtr);            }        }    }    return bResult;}
开发者ID:frobro98,项目名称:UnrealSource,代码行数:28,


示例4: checkSlow

const TCHAR* UArrayProperty::ImportText_Internal( const TCHAR* Buffer, void* Data, int32 PortFlags, UObject* Parent, FOutputDevice* ErrorText ) const{	checkSlow(Inner);	if ( *Buffer++ != TCHAR('(') )	{		return NULL;	}	FScriptArrayHelper ArrayHelper(this, Data);	// only clear the array if we're not importing localized text	if ( (PortFlags&PPF_LocalizedOnly) == 0 )	{		ArrayHelper.EmptyValues();	}	SkipWhitespace(Buffer);	int32 Index = 0;	ArrayHelper.ExpandForIndex(0);	while ((Buffer != NULL) && (*Buffer != TCHAR(')')))	{		SkipWhitespace(Buffer);		if (*Buffer != TCHAR(','))		{			// Parse the item			Buffer = Inner->ImportText(Buffer, ArrayHelper.GetRawPtr(Index), PortFlags | PPF_Delimited, Parent, ErrorText);			if(!Buffer)			{				return NULL;			}			SkipWhitespace(Buffer);		}		if (*Buffer == TCHAR(','))		{			Buffer++;			Index++;			ArrayHelper.ExpandForIndex(Index);		}		else		{			break;		}	}	// Make sure we ended on a )	if (*Buffer++ != TCHAR(')'))	{		return NULL;	}	return Buffer;}
开发者ID:Tigrouzen,项目名称:UnrealEngine-4,代码行数:60,


示例5: ArrayHelper

void UArrayProperty::DestroyValueInternal( void* Dest ) const{	FScriptArrayHelper ArrayHelper(this, Dest);	ArrayHelper.EmptyValues();	//@todo UE4 potential double destroy later from this...would be ok for a script array, but still	((FScriptArray*)Dest)->~FScriptArray();}
开发者ID:Tigrouzen,项目名称:UnrealEngine-4,代码行数:8,


示例6: ArrayHelper

void UKismetArrayLibrary::GenericArray_Clear(void* TargetArray, const UArrayProperty* ArrayProp){	if( TargetArray )	{		FScriptArrayHelper ArrayHelper(ArrayProp, TargetArray);		ArrayHelper.EmptyValues();	}}
开发者ID:amyvmiwei,项目名称:UnrealEngine4,代码行数:9,


示例7: check

//------------------------------------------------------------------------------static int32 LinkerPlaceholderObjectImpl::ResolvePlaceholderValues(const TArray<const UProperty*>& PropertyChain, int32 ChainIndex, uint8* ValueAddress, UObject* OldValue, UObject* ReplacementValue){	int32 ReplacementCount = 0;	for (int32 PropertyIndex = ChainIndex; PropertyIndex >= 0; --PropertyIndex)	{		const UProperty* Property = PropertyChain[PropertyIndex];		if (PropertyIndex == 0)		{#if USE_DEFERRED_DEPENDENCY_CHECK_VERIFICATION_TESTS			check(Property->IsA<UObjectProperty>());#endif // USE_DEFERRED_DEPENDENCY_CHECK_VERIFICATION_TESTS			const UObjectProperty* ReferencingProperty = (const UObjectProperty*)Property;			if (ReferencingProperty->GetObjectPropertyValue(ValueAddress) == OldValue)			{				// @TODO: use an FArchiver with ReferencingProperty->SerializeItem() 				//        so that we can utilize CheckValidObject()				ReferencingProperty->SetObjectPropertyValue(ValueAddress, ReplacementValue);				// @TODO: unfortunately, this is currently protected				//ReferencingProperty->CheckValidObject(ValueAddress);				++ReplacementCount;			}		}		else if (const UArrayProperty* ArrayProperty = Cast<const UArrayProperty>(Property))		{#if USE_DEFERRED_DEPENDENCY_CHECK_VERIFICATION_TESTS			const UProperty* NextProperty = PropertyChain[PropertyIndex - 1];			check(NextProperty == ArrayProperty->Inner);#endif // USE_DEFERRED_DEPENDENCY_CHECK_VERIFICATION_TESTS			// because we can't know which array entry was set with a reference 			// to this object, we have to comb through them all			FScriptArrayHelper ArrayHelper(ArrayProperty, ValueAddress);			for (int32 ArrayIndex = 0; ArrayIndex < ArrayHelper.Num(); ++ArrayIndex)			{				uint8* MemberAddress = ArrayHelper.GetRawPtr(ArrayIndex);				ReplacementCount += ResolvePlaceholderValues(PropertyChain, PropertyIndex - 1, MemberAddress, OldValue, ReplacementValue);			}			// the above recursive call chewed through the rest of the			// PropertyChain, no need to keep on here			break;		}		else		{			const UProperty* NextProperty = PropertyChain[PropertyIndex - 1];#if USE_DEFERRED_DEPENDENCY_CHECK_VERIFICATION_TESTS			check(NextProperty->GetOuter() == Property);#endif // USE_DEFERRED_DEPENDENCY_CHECK_VERIFICATION_TESTS			ValueAddress = Property->ContainerPtrToValuePtr<uint8>(ValueAddress, /*ArrayIndex =*/0);		}	}	return ReplacementCount;}
开发者ID:amyvmiwei,项目名称:UnrealEngine4,代码行数:58,


示例8: TEXT

void USpeedTreeImportData::SaveOptions(){	int32 PortFlags = 0;	for (UProperty* Property = GetClass()->PropertyLink; Property; Property = Property->PropertyLinkNext)	{		if (!Property->HasAnyPropertyFlags(CPF_Config))		{			continue;		}		FString Section = TEXT("SpeedTree_Import_UI_Option_") + GetClass()->GetName();		FString Key = Property->GetName();		const bool bIsPropertyInherited = Property->GetOwnerClass() != GetClass();		UObject* SuperClassDefaultObject = GetClass()->GetSuperClass()->GetDefaultObject();		UArrayProperty* Array = dynamic_cast<UArrayProperty*>(Property);		if (Array)		{			FConfigSection* Sec = GConfig->GetSectionPrivate(*Section, 1, 0, *GEditorPerProjectIni);			check(Sec);			Sec->Remove(*Key);			FScriptArrayHelper_InContainer ArrayHelper(Array, this);			for (int32 i = 0; i < ArrayHelper.Num(); i++)			{				FString	Buffer;				Array->Inner->ExportTextItem(Buffer, ArrayHelper.GetRawPtr(i), ArrayHelper.GetRawPtr(i), this, PortFlags);				Sec->Add(*Key, *Buffer);			}		}		else		{			TCHAR TempKey[MAX_SPRINTF] = TEXT("");			for (int32 Index = 0; Index < Property->ArrayDim; Index++)			{				if (Property->ArrayDim != 1)				{					FCString::Sprintf(TempKey, TEXT("%s[%i]"), *Property->GetName(), Index);					Key = TempKey;				}				FString	Value;				Property->ExportText_InContainer(Index, Value, this, this, this, PortFlags);				GConfig->SetString(*Section, *Key, *Value, *GEditorPerProjectIni);			}		}	}	GConfig->Flush(0);}
开发者ID:AndyHuang7601,项目名称:EpicGames-UnrealEngine,代码行数:50,


示例9: ClearPropertyValue

	// Clears the value of the given property.	void ClearPropertyValue( UProperty* Property, UProperty* Outer, void* Data, int32 ArrayIndex )	{		UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Outer);		if (ArrayProperty != nullptr)		{			check(ArrayProperty->Inner == Property)			FScriptArrayHelper ArrayHelper(ArrayProperty, ArrayProperty->template ContainerPtrToValuePtr<void>(Data));			ArrayIndex = ArrayHelper.AddValue();		}		Property->ClearValue_InContainer(Data, ArrayIndex);	}
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:15,


示例10: ArrayHelper

void UKismetArrayLibrary::GenericArray_Resize(void* TargetArray, const UArrayProperty* ArrayProp, int32 Size){	if( TargetArray )	{		if(Size >= 0)		{			FScriptArrayHelper ArrayHelper(ArrayProp, TargetArray);			ArrayHelper.Resize(Size);		}		else		{			UE_LOG(LogArray, Warning, TEXT("Attempted to resize an array using negative size: Array = %s, Size = %d!"), *ArrayProp->GetName(), Size);		}	}}
开发者ID:Foreven,项目名称:Unreal4-1,代码行数:15,


示例11: FPropertyNameAndIndex

FComponentVisualizer::FPropertyNameAndIndex FComponentVisualizer::GetComponentPropertyName(const UActorComponent* Component){	if (Component)	{		const AActor* CompOwner = Component->GetOwner();		if (CompOwner)		{			// Iterate over UObject* fields of this actor			UClass* ActorClass = CompOwner->GetClass();			for (TFieldIterator<UObjectProperty> It(ActorClass); It; ++It)			{				// See if this property points to the component in question				UObjectProperty* ObjectProp = *It;				for (int32 Index = 0; Index < ObjectProp->ArrayDim; ++Index)				{					UObject* Object = ObjectProp->GetObjectPropertyValue(ObjectProp->ContainerPtrToValuePtr<void>(CompOwner, Index));					if (Object == Component)					{						// It does! Return this name						return FPropertyNameAndIndex(ObjectProp->GetFName(), Index);					}				}			}			// If nothing found, look in TArray<UObject*> fields			for (TFieldIterator<UArrayProperty> It(ActorClass); It; ++It)			{				UArrayProperty* ArrayProp = *It;				if (UObjectProperty* InnerProp = Cast<UObjectProperty>(It->Inner))				{					FScriptArrayHelper ArrayHelper(ArrayProp, ArrayProp->ContainerPtrToValuePtr<void>(CompOwner));					for (int32 Index = 0; Index < ArrayHelper.Num(); ++Index)					{						UObject* Object = InnerProp->GetObjectPropertyValue(ArrayHelper.GetRawPtr(Index));						if (Object == Component)						{							return FPropertyNameAndIndex(ArrayProp->GetFName(), Index);						}					}				}			}		}	}	// Didn't find actor property referencing this component	return FPropertyNameAndIndex();}
开发者ID:RandomDeveloperM,项目名称:UE4_Hairworks,代码行数:47,


示例12: if

bool FDataTableExporterJSON::WriteStructEntry(const void* InRowData, const UProperty* InProperty, const void* InPropertyData){	if (const UNumericProperty *NumProp = Cast<const UNumericProperty>(InProperty))	{		if (NumProp->IsInteger())		{			const int64 PropertyValue = NumProp->GetSignedIntPropertyValue(InPropertyData);			JsonWriter->WriteValue(InProperty->GetName(), PropertyValue);		}		else		{			const double PropertyValue = NumProp->GetFloatingPointPropertyValue(InPropertyData);			JsonWriter->WriteValue(InProperty->GetName(), PropertyValue);		}	}	else if (const UBoolProperty* BoolProp = Cast<const UBoolProperty>(InProperty))	{		const bool PropertyValue = BoolProp->GetPropertyValue(InPropertyData);		JsonWriter->WriteValue(InProperty->GetName(), PropertyValue);	}	else if (const UArrayProperty* ArrayProp = Cast<const UArrayProperty>(InProperty))	{		JsonWriter->WriteArrayStart(InProperty->GetName());		FScriptArrayHelper ArrayHelper(ArrayProp, InPropertyData);		for (int32 ArrayEntryIndex = 0; ArrayEntryIndex < ArrayHelper.Num(); ++ArrayEntryIndex)		{			const void* ArrayEntryData = ArrayHelper.GetRawPtr(ArrayEntryIndex);			WriteArrayEntry(ArrayProp->Inner, ArrayEntryData);		}		JsonWriter->WriteArrayEnd();	}	else	{		const FString PropertyValue = DataTableUtils::GetPropertyValueAsString(InProperty, (uint8*)InRowData);		JsonWriter->WriteValue(InProperty->GetName(), PropertyValue);	}	return true;}
开发者ID:amyvmiwei,项目名称:UnrealEngine4,代码行数:41,


示例13: checkSlow

void UArrayProperty::SerializeItem( FArchive& Ar, void* Value, void const* Defaults ) const{	checkSlow(Inner);	// Ensure that the Inner itself has been loaded before calling SerializeItem() on it	Ar.Preload(Inner);	FScriptArrayHelper ArrayHelper(this, Value);	int32		n		= ArrayHelper.Num();	Ar << n;	if( Ar.IsLoading() )	{		ArrayHelper.EmptyAndAddValues(n);	}	ArrayHelper.CountBytes( Ar );	for( int32 i=0; i<n; i++ )	{		Inner->SerializeItem( Ar, ArrayHelper.GetRawPtr(i) );	}}
开发者ID:frobro98,项目名称:UnrealSource,代码行数:21,


示例14: SetPropertyValue

bool SetPropertyValue( UProperty* Property, UProperty* Outer, void* Data, int32 ArrayIndex, const PropertyType& Value ){    PropertyType* ValuePtr = nullptr;    UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Outer);    if (ArrayProperty != nullptr)    {        if (ArrayProperty->Inner != Property)        {            return false;        }        FScriptArrayHelper ArrayHelper(ArrayProperty, ArrayProperty->template ContainerPtrToValuePtr<void>(Data));        int32 Index = ArrayHelper.AddValue();        ValuePtr = (PropertyType*)ArrayHelper.GetRawPtr(Index);    }    else    {        UPropertyType* TypedProperty = Cast<UPropertyType>(Property);        if (TypedProperty == nullptr)        {            return false;        }        ValuePtr = TypedProperty->template ContainerPtrToValuePtr<PropertyType>(Data, ArrayIndex);    }    if (ValuePtr == nullptr)    {        return false;    }    *ValuePtr = Value;    return true;}
开发者ID:xiangyuan,项目名称:Unreal4,代码行数:38,


示例15: ArrayHelper

uint8* UAnimSequenceBase::FindArrayProperty(const TCHAR* PropName, UArrayProperty*& ArrayProperty, int32 ArrayIndex){	// find Notifies property start point	UProperty* Property = FindField<UProperty>(GetClass(), PropName);	// found it and if it is array	if (Property && Property->IsA(UArrayProperty::StaticClass()))	{		// find Property Value from UObject we got		uint8* PropertyValue = Property->ContainerPtrToValuePtr<uint8>(this);		// it is array, so now get ArrayHelper and find the raw ptr of the data		ArrayProperty = CastChecked<UArrayProperty>(Property);		FScriptArrayHelper ArrayHelper(ArrayProperty, PropertyValue);		if (ArrayProperty->Inner && ArrayIndex < ArrayHelper.Num())		{			//Get property data based on selected index			return ArrayHelper.GetRawPtr(ArrayIndex);		}	}	return NULL;}
开发者ID:RandomDeveloperM,项目名称:UE4_Hairworks,代码行数:23,


示例16: ProcessStruct

bool FFrontendFilter_GameplayTags::ProcessProperty(void* Data, UProperty* Prop) const{	void* InnerData = Prop->ContainerPtrToValuePtr<void>(Data);	if (UStructProperty* StructProperty = Cast<UStructProperty>(Prop))	{		if (StructProperty->Struct == FGameplayTag::StaticStruct())		{			FGameplayTag& ThisTag = *static_cast<FGameplayTag*>(InnerData);			const bool bAnyTagIsOK = TagContainer->Num() == 0;			const bool bPassesTagSearch = bAnyTagIsOK || TagContainer->HasTag(ThisTag, EGameplayTagMatchType::Explicit, EGameplayTagMatchType::IncludeParentTags);			return bPassesTagSearch;		}		else		{			return ProcessStruct(InnerData, StructProperty->Struct);		}	}	else if (UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Prop))	{		FScriptArrayHelper ArrayHelper(ArrayProperty, InnerData);		for (int32 ArrayIndex = 0; ArrayIndex < ArrayHelper.Num(); ++ArrayIndex)		{			void* ArrayData = ArrayHelper.GetRawPtr(ArrayIndex);			if (ProcessProperty(ArrayData, ArrayProperty->Inner))			{				return true;			}		}	}	return false;}
开发者ID:frobro98,项目名称:UnrealSource,代码行数:36,


示例17: checkSlow

void FPoseLinkMappingRecord::PatchLinkIndex(uint8* DestinationPtr, int32 LinkID, int32 SourceLinkID) const{	checkSlow(IsValid());	DestinationPtr = ChildProperty->ContainerPtrToValuePtr<uint8>(DestinationPtr);		if (ChildPropertyIndex != INDEX_NONE)	{		UArrayProperty* ArrayProperty = CastChecked<UArrayProperty>(ChildProperty);		FScriptArrayHelper ArrayHelper(ArrayProperty, DestinationPtr);		check(ArrayHelper.IsValidIndex(ChildPropertyIndex));		DestinationPtr = ArrayHelper.GetRawPtr(ChildPropertyIndex);	}	// Check to guard against accidental infinite loops	check((LinkID == INDEX_NONE) || (LinkID != SourceLinkID));	// Patch the pose link	FPoseLinkBase& PoseLink = *((FPoseLinkBase*)DestinationPtr);	PoseLink.LinkID = LinkID;	PoseLink.SourceLinkID = SourceLinkID;}
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:24,



注:本文中的ArrayHelper函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ArrayList_Count函数代码示例
C++ ArrayGetNItems函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。