FPrimitiveSceneProxy* UPaperTileMapComponent::CreateSceneProxy() { FPaperTileMapRenderSceneProxy* Proxy = new FPaperTileMapRenderSceneProxy(this); RebuildRenderData(Proxy); return Proxy; }
void UPaperSprite::InitializeSprite(UTexture2D* Texture, const FVector2D& Offset, const FVector2D& Dimension) { SourceTexture = Texture; SourceUV = Offset; SourceDimension = Dimension; RebuildCollisionData(); RebuildRenderData(); }
void UPaperSprite::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) { //@TODO: Determine when these are really needed! TComponentReregisterContext<UPaperRenderComponent> ReregisterStaticComponents; TComponentReregisterContext<UPaperAnimatedRenderComponent> ReregisterAnimatedComponents; // Update the pivot if (PivotMode != ESpritePivotMode::Custom) { CustomPivotPoint = GetPivotPosition(); } // Look for changed properties const FName PropertyName = (PropertyChangedEvent.Property != NULL) ? PropertyChangedEvent.Property->GetFName() : NAME_None; bool bRenderDataModified = false; bool bCollisionDataModified = false; bool bBothModified = false; if ((PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, SpriteCollisionDomain)) || (PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, BodySetup3D)) || (PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, CollisionGeometry)) ) { bCollisionDataModified = true; } // Properties inside one of the geom structures (we don't know which one) // if ((PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, GeometryType)) || // (PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, AlphaThreshold)) || // ) // BoxSize // BoxPosition // Vertices // VertexCount // Polygons // { bBothModified = true; // } if ((PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, SourceUV)) || (PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, SourceDimension)) || (PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, SourceTexture)) || (PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, CustomPivotPoint)) || (PropertyName == GET_MEMBER_NAME_CHECKED(UPaperSprite, PivotMode)) ) { bBothModified = true; } if (bCollisionDataModified || bBothModified) { RebuildCollisionData(); } if (bRenderDataModified || bBothModified) { RebuildRenderData(); } Super::PostEditChangeProperty(PropertyChangedEvent); }