void UJavascriptEditorLibrary::GetAlphamapDataToMemory(ULandscapeInfo* LandscapeInfo, ULandscapeLayerInfoObject* LayerInfo, int32 MinX, int32 MinY, int32 MaxX, int32 MaxY)
{
	if (LayerInfo == nullptr)
	{
		return;
	}

	const int32 SizeX = (1 + MaxX - MinX);
	const int32 SizeY = (1 + MaxY - MinY);

	if (SizeX * SizeY * 1 == FArrayBufferAccessor::GetSize())
	{
		auto Buffer = (uint8*)FArrayBufferAccessor::GetData();

		FAlphamapAccessor<false, false> Accessor(LandscapeInfo, LayerInfo);

		TMap<FIntPoint, uint8> Data;
		Accessor.GetData(MinX, MinY, MaxX, MaxY, Data);

		FMemory::Memzero(Buffer, SizeX * SizeY);

		for (auto it = Data.CreateConstIterator(); it; ++it)
		{
			const auto& Point = it.Key();
			Buffer[Point.X + Point.Y * SizeX] = it.Value();
		}
	}
}
//virtual
BcBool CsSerialiserPackageObjectCodec::shouldSerialiseField( 
	void* InData, 
	BcU32 ParentFlags,
	const class ReField* Field )
{
	BcU32 Flags = Field->getFlags() | ( ParentFlags & PropagateFieldFlags_ );
	BcBool ShouldSerialise = 
		( ( ( Flags & ExcludeFieldFlags_ ) == 0 ) && 
		( ( Flags & IncludeFieldFlags_ ) != 0 ) );
		
	// If the field is an ReObject, we should check if it's a CsPackage.
	// - We don't want to serialise CsPackages.
	const ReClass* InClass = static_cast< const ReClass* >( Field->getType() );

	// Check if it's an object.
	if( InClass->hasBaseClass( ReObject::StaticGetClass() ) )
	{
		ReFieldAccessor Accessor( InData, Field );
		if( !Accessor.isContainerType() )
		{
			const ReClass* UpperClass = Accessor.getUpperClass();
			if( UpperClass == CsPackage::StaticGetClass() )
			{
				return BcFalse;
			}
		}
	}
	
	return ShouldSerialise;
}
void UJavascriptEditorLibrary::SetHeightmapDataFromMemory(ULandscapeInfo* LandscapeInfo, int32 MinX, int32 MinY, int32 MaxX, int32 MaxY)
{
	const int32 SizeX = (1 + MaxX - MinX);
	const int32 SizeY = (1 + MaxY - MinY);

	if (SizeX * SizeY * 2 == FArrayBufferAccessor::GetSize())
	{
		FHeightmapAccessor<false> Accessor(LandscapeInfo);
		Accessor.SetData(MinX, MinY, MaxX, MaxY, (uint16*)FArrayBufferAccessor::GetData());
	}	
}
Exemplo n.º 4
0
   T reduce( GlobalAddress<P> localizable ) {
     CompletionEvent ce(cores() - 1); 

     T total = Accessor(localizable);
     Core origin = mycore();

     for (Core c=0; c<cores(); c++) {
      if (c != origin) {
        send_heap_message(c, [localizable, &ce, &total, origin]{
          T val = Accessor(localizable);
          send_heap_message(origin, [val,&ce,&total] {
            total = ReduceOp(total, val);
            ce.complete();
          });
        });
      }
     }
    ce.wait();
    return total;
   }
void UJavascriptEditorLibrary::SetAlphamapDataFromMemory(ULandscapeInfo* LandscapeInfo, ULandscapeLayerInfoObject* LayerInfo, int32 MinX, int32 MinY, int32 MaxX, int32 MaxY, ELandscapeLayerPaintingRestriction::Type PaintingRestriction)
{
	if (LayerInfo == nullptr)
	{
		return;
	}

	const int32 SizeX = (1 + MaxX - MinX);
	const int32 SizeY = (1 + MaxY - MinY);

	if (SizeX * SizeY * 1 == FArrayBufferAccessor::GetSize())
	{
		FAlphamapAccessor<false,false> Accessor(LandscapeInfo, LayerInfo);
		Accessor.SetData(MinX, MinY, MaxX, MaxY, (uint8*)FArrayBufferAccessor::GetData(), PaintingRestriction);
	}
}
void UJavascriptEditorLibrary::GetHeightmapDataToMemory(ULandscapeInfo* LandscapeInfo, int32 MinX, int32 MinY, int32 MaxX, int32 MaxY)
{
	const int32 SizeX = (1 + MaxX - MinX);
	const int32 SizeY = (1 + MaxY - MinY);

	if (SizeX * SizeY * 2 == FArrayBufferAccessor::GetSize())
	{
		auto Buffer = (uint16*)FArrayBufferAccessor::GetData();

		FHeightmapAccessor<false> Accessor(LandscapeInfo);

		TMap<FIntPoint, uint16> Data;
		Accessor.GetData(MinX, MinY, MaxX, MaxY, Data);

		FMemory::Memzero(Buffer, SizeX * SizeY * 2);

		for (auto it = Data.CreateConstIterator(); it; ++it)
		{
			const auto& Point = it.Key();
			Buffer[Point.X + Point.Y * SizeX] = it.Value();
		}
	}
}
Exemplo n.º 7
0
 Accessor operator*()
 {
     return Accessor(*this, index);
 }
Exemplo n.º 8
0
 Accessor operator[](size_t idx)
 {
     return Accessor(*this, index + idx);
 };
Exemplo n.º 9
0
 /* get a cursor at the top left pixel
  * access via a Float<3> reference
  */
 inline Cursor origin()
 {
     return Cursor(Accessor(this->png), cursor::MultiIndexNavigator<2>(), math::Int<2>(0));
 }
Exemplo n.º 10
0
Technique_Common::Technique_Common()
{
	this->m_accessor = Accessor();
}