i-RIC / prepost-gui

iRIC Pre-processor and post-processor GUI
MIT License
9 stars 11 forks source link

プロジェクト単位でのデフォルトカラーマップ設定案 #1427

Open starfieldKt opened 2 months ago

starfieldKt commented 2 months ago

概要

ユーザーの操作の手数をできるだけ減らすように!

仕様案

現在のデフォルトカラーマップ設定を読み込む際の優先順位は以下のようになっている


flowchart TB
  node_1["ソルバーのdefinition.xmlで指定された設定"]
  node_2["iRIC_v4\private\colormapsに配置されたdefault.cmsetting"]
  node_3["iRIC_v4\colormapsに配置されたdefault.cmsetting"]
  node_4["colormapsettingcontainer.cpp\ncolormaplegendsettingcontainer.cpp\nopacitycontainer.cpp\nで指定されたiRICのデフォルト設定"]
  node_1 --> node_2
  node_2 --> node_3
  node_3 --> node_4

これの優先順位1位に各値ごとのデフォルトカラーマップ設定を持ったファイルを作成して、ユーザーはGUI上でワンクリックでこのファイルを更新できるようにする。


flowchart TB
  node_1["ソルバーのdefinition.xmlで指定された設定"]
  node_2["iRIC_v4\private\colormapsに配置されたdefault.cmsetting"]
  node_3["iRIC_v4\colormapsに配置されたdefault.cmsetting"]
  node_4["colormapsettingcontainer.cpp\ncolormaplegendsettingcontainer.cpp\nopacitycontainer.cpp\nで指定されたiRICのデフォルト設定"]
  node_5["プロジェクト単位の設定ファイル(iRICで作成)"]
  node_1 --> node_2
  node_2 --> node_3
  node_3 --> node_4
  node_5 --> node_1

イメージとしては以下のようなフローでプロジェクト内限定の各値のデフォルトカラーマップ設定ファイルを作成する。 角丸がユーザーの操作で、四角がiRICが裏でやる操作


flowchart TB
  node_1(["新規プロジェクト作成"])
  node_2["ソルバーのdefinition.xmlで定義された実数値の格子属性を読み取り、\nプロジェクトのデフォルトカラーマップ設定ファイルを作成"]
  node_3(["計算実行"])
  node_4["CGNSファイルから出力された計算結果の名前を読み取り、\nプロジェクトのデフォルトカラーマップ設定ファイルに追加"]
  node_1 --> node_2
  node_2 --> node_3
  node_3 --> node_4

ユーザーが変更したカラーマップ設定はワンクリックで作成された設定ファイルに上書き出来るようにする。

UI的にはこんな感じとか

image

こんなかんじ

image

作成されるファイルのイメージとして、作成直後は値の識別のためだけにname属性でよい。

<?xml version="1.0" encoding="UTF-8"?>
<DefaultColorMapSettings>
    <Item name="Elevation">
    </Item>
    <Item name="roughness_cell">
    </Item>
    <Output name="Depth">
    </Output>
    <Output name="ElevationChange">
    </Output>
    <Output name="Elevation">
    </Output>
    <Output name="WaterSurface">
    </Output>
    <Output name="VelocityX">
    </Output>
</DefaultColorMapSettings>

ユーザーが現在のカラーマップ設定をプロジェクトのデフォルトにする操作をするとその値に関して現在のカラーマップ設定が子要素として追記・上書きされる。

<?xml version="1.0" encoding="UTF-8"?>
<DefaultColorMapSettings>
    <Item name="Elevation">
    </Item>
    <Item name="roughness_cell">
    </Item>
    <Output name="Depth">
        <ColorMapSetting 
        transitionMode="0" 
        valueMode="1" 
        autoValueRange="true" 
        minValue="0" 
        maxValue="1" 
        fillUppeer="true" 
        fillLower="true" 
        colorTableMinValue="0" 
        visible="true" 
        direction="1" 
        barAutoWidth="false" 
        barWidth="30" 
        barAlign="1" 
        title="title" 
        autoNumberOfLabels="true" 
        numberOfLabels="2" 
        labelFormat="%5.2f" 
        titleFont="Century Gothic,14,-1,5,50,0,0,0,0,0,Regular" 
        labelFont="Century Gothic,14,-1,5,50,0,0,0,0,0,Regular" 
        titleColor="#000000" 
        labelColor="#000000" 
        backgroundColor="#ffffff" 
        backgroundOpacity="20" 
        position="7" 
        horizontalMarginRatio="0" 
        verticalMarginRatio="0.1" 
        width="300" 
        height="200">
            <Item value="0" color="#0000ff" transparent="false"/>
            <Item value="0.25" color="#00ffff" transparent="false"/>
            <Item value="0.5" color="#00ff00" transparent="false"/>
            <Item value="0.75" color="#ffff00" transparent="false"/>
            <Item value="1" color="#ff0000" transparent="false"/>
        </ColorMapSetting>
    </Output>
    <Output name="ElevationChange">
    </Output>
    <Output name="Elevation">
    </Output>
    <Output name="WaterSurface">
    </Output>
    <Output name="VelocityX">
    </Output>
</DefaultColorMapSettings>

留意点