<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>CFOWUMODULE :: Catur Documentation</title>
    <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/index.html</link>
    <description>Overview The CFOWUMODULE is a runtime Fog of War system that renders visibility masks on a dynamic mesh plane aligned with room clusters. It uses render targets to paint line-of-sight and revealed areas, driven by a material with optional blur post-processing. The fog tracks a pawn and reacts to perspective changes (top view / first person).</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 20 Jul 2024 21:09:28 +0200</lastBuildDate>
    <atom:link href="https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Blueprint</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/blueprint/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/blueprint/index.html</guid>
      <description>Overview UCFOWBPLibrary exposes fog of war agent management functions to Blueprint. All functions are BlueprintCallable under the Cdryx|FOW|CFOWBPLibrary category. They allow adding or removing actors and rooms as fog agents, controlling what the player’s fog of war reveals.&#xA;Functions Name Description addFogActorAgent Registers an actor as a fog agent, revealing the fog around it removeFogActorAgent Unregisters an actor from the fog agent list addFogRoomAgent Registers a room rectangle as a fog agent, revealing its area removeFogRoomAgent Unregisters a room rectangle from the fog agent list Begin Object Class=&#34;/Script/BlueprintGraph.K2Node_CallFunction&#34; Name=&#34;K2Node_CallFunction_0&#34; FunctionReference=(MemberParent=/Script/CoreUObject.Class&#39;&#34;/Script/CdryxFOWUModule.CFOWBPLibrary&#34;&#39;,MemberName=&#34;addFogActorAgent&#34;) NodePosX=0 NodePosY=0 NodeGuid=AA00000011112222333344445555AA01 CustomProperties Pin (PinId=AA00000011112222333344445555BB01,PinName=&#34;execute&#34;,PinToolTip=&#34;Execute&#34;,PinType.PinCategory=&#34;exec&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555CC01,PinName=&#34;then&#34;,PinToolTip=&#34;Then&#34;,Direction=&#34;EGPD_Output&#34;,PinType.PinCategory=&#34;exec&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555DD01,PinName=&#34;self&#34;,PinFriendlyName=NSLOCTEXT(&#34;K2Node&#34;, &#34;Target&#34;, &#34;Target&#34;),PinToolTip=&#34;Target\nCFOWBPLibrary Object Reference&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/CdryxFOWUModule.CFOWBPLibrary&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject=&#34;/Script/CdryxFOWUModule.Default__CFOWBPLibrary&#34;,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555EE01,PinName=&#34;worldContextObject&#34;,PinToolTip=&#34;World Context Object&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/CoreUObject.Object&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555FF01,PinName=&#34;actor&#34;,PinToolTip=&#34;Actor\nActor Object Reference&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/Engine.Actor&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=&#34;/Script/BlueprintGraph.K2Node_CallFunction&#34; Name=&#34;K2Node_CallFunction_1&#34; FunctionReference=(MemberParent=/Script/CoreUObject.Class&#39;&#34;/Script/CdryxFOWUModule.CFOWBPLibrary&#34;&#39;,MemberName=&#34;removeFogActorAgent&#34;) NodePosX=400 NodePosY=0 NodeGuid=AA00000011112222333344445555AA02 CustomProperties Pin (PinId=AA00000011112222333344445555BB02,PinName=&#34;execute&#34;,PinToolTip=&#34;Execute&#34;,PinType.PinCategory=&#34;exec&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555CC02,PinName=&#34;then&#34;,PinToolTip=&#34;Then&#34;,Direction=&#34;EGPD_Output&#34;,PinType.PinCategory=&#34;exec&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555DD02,PinName=&#34;self&#34;,PinFriendlyName=NSLOCTEXT(&#34;K2Node&#34;, &#34;Target&#34;, &#34;Target&#34;),PinToolTip=&#34;Target\nCFOWBPLibrary Object Reference&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/CdryxFOWUModule.CFOWBPLibrary&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject=&#34;/Script/CdryxFOWUModule.Default__CFOWBPLibrary&#34;,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555EE02,PinName=&#34;worldContextObject&#34;,PinToolTip=&#34;World Context Object&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/CoreUObject.Object&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555FF02,PinName=&#34;actor&#34;,PinToolTip=&#34;Actor\nActor Object Reference&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/Engine.Actor&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=&#34;/Script/BlueprintGraph.K2Node_CallFunction&#34; Name=&#34;K2Node_CallFunction_2&#34; FunctionReference=(MemberParent=/Script/CoreUObject.Class&#39;&#34;/Script/CdryxFOWUModule.CFOWBPLibrary&#34;&#39;,MemberName=&#34;addFogRoomAgent&#34;) NodePosX=0 NodePosY=200 NodeGuid=AA00000011112222333344445555AA03 CustomProperties Pin (PinId=AA00000011112222333344445555BB03,PinName=&#34;execute&#34;,PinToolTip=&#34;Execute&#34;,PinType.PinCategory=&#34;exec&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555CC03,PinName=&#34;then&#34;,PinToolTip=&#34;Then&#34;,Direction=&#34;EGPD_Output&#34;,PinType.PinCategory=&#34;exec&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555DD03,PinName=&#34;self&#34;,PinFriendlyName=NSLOCTEXT(&#34;K2Node&#34;, &#34;Target&#34;, &#34;Target&#34;),PinToolTip=&#34;Target\nCFOWBPLibrary Object Reference&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/CdryxFOWUModule.CFOWBPLibrary&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject=&#34;/Script/CdryxFOWUModule.Default__CFOWBPLibrary&#34;,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555EE03,PinName=&#34;worldContextObject&#34;,PinToolTip=&#34;World Context Object&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/CoreUObject.Object&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555FF03,PinName=&#34;room&#34;,PinToolTip=&#34;Room\nCRectangle Structure (by ref)&#34;,PinType.PinCategory=&#34;struct&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.ScriptStruct&#39;&#34;/Script/CdryxCoreUModule.CRectangle&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=&#34;/Script/BlueprintGraph.K2Node_CallFunction&#34; Name=&#34;K2Node_CallFunction_3&#34; FunctionReference=(MemberParent=/Script/CoreUObject.Class&#39;&#34;/Script/CdryxFOWUModule.CFOWBPLibrary&#34;&#39;,MemberName=&#34;removeFogRoomAgent&#34;) NodePosX=400 NodePosY=200 NodeGuid=AA00000011112222333344445555AA04 CustomProperties Pin (PinId=AA00000011112222333344445555BB04,PinName=&#34;execute&#34;,PinToolTip=&#34;Execute&#34;,PinType.PinCategory=&#34;exec&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555CC04,PinName=&#34;then&#34;,PinToolTip=&#34;Then&#34;,Direction=&#34;EGPD_Output&#34;,PinType.PinCategory=&#34;exec&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555DD04,PinName=&#34;self&#34;,PinFriendlyName=NSLOCTEXT(&#34;K2Node&#34;, &#34;Target&#34;, &#34;Target&#34;),PinToolTip=&#34;Target\nCFOWBPLibrary Object Reference&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/CdryxFOWUModule.CFOWBPLibrary&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject=&#34;/Script/CdryxFOWUModule.Default__CFOWBPLibrary&#34;,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555EE04,PinName=&#34;worldContextObject&#34;,PinToolTip=&#34;World Context Object&#34;,PinType.PinCategory=&#34;object&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.Class&#39;&#34;/Script/CoreUObject.Object&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=AA00000011112222333344445555FF04,PinName=&#34;room&#34;,PinToolTip=&#34;Room\nCRectangle Structure (by ref)&#34;,PinType.PinCategory=&#34;struct&#34;,PinType.PinSubCategory=&#34;&#34;,PinType.PinSubCategoryObject=/Script/CoreUObject.ScriptStruct&#39;&#34;/Script/CdryxCoreUModule.CRectangle&#34;&#39;,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object</description>
    </item>
    <item>
      <title>Diagrams</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/diagrams/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/diagrams/index.html</guid>
      <description>Overview Visual diagrams illustrating the internal architecture and runtime behavior of CFOWUMODULE.&#xA;1. Fog of War Visual Behavior What the fog of war actually looks like from a user perspective, covering five aspects:&#xA;A. When does the fog appear? — Top view (fog active, DynamicMesh visible) vs first person (fog off, mesh cleared, tick stopped). B. What happens when the player moves? — RT_view is cleared to black and repainted every frame (LOS follows the player, old position disappears). RT_revealed is never cleared and accumulates all visited areas at low intensity (2.5%). C. complexTrace — Without it, the revealed area is a perfect circle that ignores walls. With it, N raycasts (default 90) against ECC_WorldStatic produce a visibility polygon clipped by obstacles. Only affects RT_revealed. D. Blur effect — Shader-level effect on fogDynamicMaterial. Without blur, the fog edge is sharp. With blur, blurSize and blurForce produce a smooth gradient transition. Does not change painting or RT content. E/F. Legend and RT lifecycle summary.</description>
    </item>
    <item>
      <title>Data Structures</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/data/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/data/index.html</guid>
      <description>FCFOWMakerStruct Configuration structure for fog of war rendering parameters. Inherits from FTableRowBase for DataTable usage.&#xA;Name Description renderTargetSize Resolution of the fog render targets in pixels (default 1024) lineOfSightIntensity Intensity of the line-of-sight area on the fog texture (default 1.0) revealedAreaIntensity Intensity of previously revealed areas on the fog texture (default 0.025) withblur Enable blur post-processing on the fog material (default false) blurSize Kernel size of the blur effect (default 7.0) blurForce Strength of the blur effect (default 15.0) postProcessMaterialRevealArea Optional post-process material for revealed area blending. If set with a PostProcessVolume, enables scene-wide fog compositing // FCFOWMakerStruct is configured in a DataTable row // and referenced by ACFOWSpawner via a FDataTableRowHandle. FCFOWMakerStruct fowStruct; fowStruct.renderTargetSize = 1024; fowStruct.lineOfSightIntensity = 1.0; fowStruct.revealedAreaIntensity = 0.025; fowStruct.withblur = false; fowStruct.blurSize = 7.0; fowStruct.blurForce = 15.0; fowStruct.postProcessMaterialRevealArea = nullptr; // optional post-process material FCFOWDataQueue Internal queue entry used by UCFOWMaker to schedule fog updates on the game thread.</description>
    </item>
    <item>
      <title>CFOWSpawner</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/cfowspawner/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/cfowspawner/index.html</guid>
      <description>Overview ACFOWSpawner is the main actor to place in a level for fog of war. It inherits from ACAbstractSpawner and implements ICFOWData. It reads its configuration from a DataTable row, finds the level’s APostProcessVolume, instantiates UCFOWMaker and drives the fog loop on tick.&#xA;Properties Name Description pawnToTrack Pawn whose location drives fog computation. If null, generates at origin then stops fowMakerRH FDataTableRowHandle pointing to a FCFOWMakerStruct row fowMaker Transient reference to the instantiated UCFOWMaker postProcessVolume Transient reference to the first APostProcessVolume found in the level Lifecycle Name Description init Finds the PostProcessVolume, reads the DataTable row, instantiates UCFOWMaker Tick Calls fowMaker-&gt;buildASync with the tracked pawn position. Stops ticking if no pawn and fog is built clean Destroys the fog maker and its resources storeSpawnerSingleton Registers the spawner as CNAME_Singleton_FOWSpawner // ACFOWSpawner is placed in the level. // Configure fowMakerRH to point to a DataTable row of type FCFOWMakerStruct. // Assign pawnToTrack to the player pawn. // init() is called by the spawner system (ACAbstractSpawner). // It retrieves the PostProcessVolume and instantiates UCFOWMaker: UCFOWMaker::instanciate(GetRootComponent(), fowMaker, stream, *data, postProcessVolume); // On Tick, the spawner delegates to the fog maker: fowMaker-&gt;buildASync(this, pawnToTrack-&gt;GetActorLocation().X, pawnToTrack-&gt;GetActorLocation().Y); // If no pawn is assigned, fog builds once at (0,0) then tick stops: if (fowMaker-&gt;isBuilt()) { SetActorTickEnabled(false); } ICFOWData interface ACFOWSpawner implements ICFOWData, providing fog data access to other systems.</description>
    </item>
    <item>
      <title>CFOWMaker</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/cfowmaker/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/modules/cfowumodule/cfowmaker/index.html</guid>
      <description>Overview UCFOWMaker is the core fog of war builder. It manages two render targets (line-of-sight and revealed areas), a UDynamicMeshComponent plane sized to the current room cluster, and dynamic material instances for both the fog mesh and an optional post-process volume. It implements ICCell and ICPlayerControllerBoundable to react to perspective changes.&#xA;Properties Name Description fogMakerStruct Copy of the FCFOWMakerStruct configuration renderTarget2D Render target for current line-of-sight painting renderTarget2DRevealed Render target for previously revealed areas fogDynamicMaterial Dynamic material instance applied to the fog mesh plane dynamicMeshComponent Dynamic mesh component representing the fog plane postProcessFogDynamicMaterial Optional dynamic material instance for post-process fog compositing currentFogOfWar Pointer to the current cluster FCRectangle being fogged topView True when the camera is in first-person perspective (fog disabled) built True once the fog maker has been fully initialized Functions Name Description instanciate Static factory that creates the fog maker, render targets, materials and mesh buildASync Async entry point called each tick: checks if fog needs redrawing, enqueues commands wantDraw Returns true if the fog should be recomputed (rooms built, not in top view, queue empty) drawFog Async: finds the closest cluster and enqueues a cluster change or mesh clear updateFog_sync Game thread: dequeues commands, clears render targets, rebuilds the mesh plane setMinimapZDistance Updates the minimap distance parameter on the fog material isBuilt Returns true if the fog maker is initialized clean Unbinds from the player controller events onPerspectiveTypeChange Reacts to camera perspective changes (disables fog in first person) // instanciate creates the fog maker with all its resources: UCFOWMaker::instanciate(sceneComponent, fowMaker, stream, fowMakerStruct, postProcessVolume); // buildASync is called each tick by the spawner: fowMaker-&gt;buildASync(singleDoRun, pawnX, pawnY); // Internally, buildASync runs drawFog asynchronously: // - drawFog finds the closest cluster via RoomUtility::closestCluster // - If the cluster changed, enqueues FCFOWDataQueue(newCluster) // - If the pawn left all clusters, enqueues FCFOWDataQueue(true) to clear // updateFog_sync runs on the game thread: // - Clears both render targets // - Rebuilds the dynamic mesh plane to match the cluster bounds // - Adjusts material scale parameters for non-square clusters // Perspective change handling: // FIRT_VIEW -&gt; topView = true, clears the mesh immediately // TOP_VIEW -&gt; topView = false, fog resumes on next tick</description>
    </item>
  </channel>
</rss>