123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace HTEXLib.Models
- {
- /// <summary>
- /// 物件動畫 時間系列 (animtimetree)
- /// </summary>
- public class AnimtimeTree
- {
- /// <summary>
- /// 物件動畫 時間節點 列表 (animnode list)
- /// </summary>
- public List<AnimtimeNode> actlst { get; set; }
- /// <summary>
- /// 物件(有動畫) 之 對應資訊 列表
- /// "Key": "00002", // *om* // 物件 自訂 uid
- /// "Value": objdata // *om* // 物件(有動畫) 之 對應資訊 (objdata)
- /// </summary>
- public Dictionary<string, AnimtimeData> obj_dic { get; set; }
- /// <summary>
- /// 是否循序 或 同時
- /// </summary>
- public bool seqf { get; set; }
- /// <summary>
- /// 物件動畫 時間系列 表列 (animtimetree list)
- /// </summary>
- public List<AnimtimeTree> subtreelst { get; set; }
- /// <summary>
- /// 物件動畫 時間系列 uid
- /// </summary>
- public string tree_id { get; set; }
- }
- /// <summary>
- /// 物件(有動畫) 之 對應資訊 (objdata) :
- /// </summary>
- public class AnimtimeData
- {
- /// <summary>
- /// 動畫結束後 是否 可見
- /// </summary>
- public bool endvisible { get; set; }
- /// <summary>
- /// 原始 是否可見
- /// </summary>
- public bool orgvisible { get; set; }
- /// <summary>
- /// 物件 於 pptx 之 原始 <p:sp/p:nvSpPr/p:cNvPr> id
- /// </summary>
- public string obj_spid { get; set; }
- /// <summary>
- /// 物件 自訂 uid
- /// </summary>
- public string obj_uid { get; set; }
- /// <summary>
- /// 對 pptx 物件 之 自訂類別: 0=形狀, 1=文字, m=替換元素 (若是形狀裡有文字, 則會被切成 (0=形狀)+(1=文字) 2 個物件 以組合處理)
- /// </summary>
- public string objtypelst { get; set; }
- /// <summary>
- /// 位置
- /// </summary>
- public Position position { get; set; }
- /// <summary>
- /// 原始 不透明值 (0, .., 1)
- /// </summary>
- public double orgopaque { get; set; }
- }
- /// <summary>
- /// 物件動畫 時間節點 (animnode)
- /// </summary>
- public class AnimtimeNode {
- /// <summary>
- /// 開始 加速
- /// </summary>
- public int accel { get; set; }
- /// <summary>
- /// 物件動畫 變化狀態 表列 (animxchg list)
- /// </summary>
- public List<AnimtimeExchange> achglst { get; set; }
- /// <summary>
- /// 自動反轉
- /// </summary>
- public bool autorev { get; set; }
- /// <summary>
- /// 開始之 旋轉角度 (記憶 物件動畫過程後 的 累計旋轉量)
- /// </summary>
- public int beg_rot { get; set; }
- /// <summary>
- /// 開始之 高 縮放比值
- /// </summary>
- public int begh_scale { get; set; }
- /// <summary>
- /// 開始之 寬 縮放比值
- /// </summary>
- public int begw_scale { get; set; }
- /// <summary>
- /// 結束 減速
- /// </summary>
- public int decel { get; set; }
- /// <summary>
- /// 延遲 播放
- /// </summary>
- public int delay { get; set; }
- /// <summary>
- /// 結束之 旋轉角度 (記憶 物件動畫過程後 的 累計旋轉量)
- /// </summary>
- public int end_rot { get; set; }
- /// <summary>
- /// 結束之 高 縮放比值
- /// </summary>
- public int endh_scale { get; set; }
- /// <summary>
- /// 結束之 寬 縮放比值
- /// </summary>
- public int endw_scale { get; set; }
- /// <summary>
- /// path 移動路徑) 之 最後 x 位置(pptx 給 頁面寬之比值)(左上角開始) (只對 path 移動路徑 有效)
- /// </summary>
- public int endx_rate { get; set; }
- /// <summary>
- /// (path 移動路徑) 之 最後 y 位置(pptx 給 頁面高之比值)(左上角開始) (只對 path 移動路徑 有效)
- /// </summary>
- public int endy_rate { get; set; }
- /// <summary>
- /// 動畫播放完成後 之 狀態
- /// </summary>
- public string fill { get; set; }
- /// <summary>
- /// 當 is_accrot > 0 時, 表示 end_rot 值有效 (壘加 旋轉動畫 角度 之用)
- /// </summary>
- public int is_accrot { get; set; }
- /// <summary>
- /// (預留)
- /// </summary>
- public int iterate_tmabs { get; set; }
- /// <summary>
- /// (對應 <p:iterate/p:tmAbs> 和 <p:iterate/p:tmPct>) 之 % 值
- /// </summary>
- public double iterate_tmpct { get; set; }
- /// <summary>
- /// (對應 <p:iterate>) 列舉
- /// </summary>
- public int iterate_type { get; set; }
- /// <summary>
- /// 物件動畫 播放方式: "clickEffect"(按下開始), "withEffect"(和前一動畫同時), "afterEffect"(接在前一動畫之後) (對應 <nodeType>)
- /// </summary>
- public int nodetype { get; set; }
- /// <summary>
- /// 物件動畫可能所屬 播放群組 id, 對應 <grpId>
- /// </summary>
- public int obj_grpid { get; set; }
- /// <summary>
- /// 物件 於 pptx 之 原始 <p:sp/p:nvSpPr/p:cNvPr> id
- /// </summary>
- public int obj_spid { get; set; }
- /// <summary>
- /// 物件 自訂 uid 表列
- /// </summary>
- public List<string> obj_uid { get; set; }
- /// <summary>
- /// 物件動畫 四大分類: "entr"(進入), "exit"(結束), "emph"(強調), "path"(移動路徑) (對應 <presetClass>)
- /// </summary>
- public string presetclass { get; set; }
- /// <summary>
- /// 物件動畫 樣式 id (對應 <presetID>)
- /// </summary>
- public string presetid { get; set; }
- /// <summary>
- /// 物件動畫 次樣式 形態 (對應 <presetSubtype>)
- /// </summary>
- public string presetsubtype { get; set; }
- /// <summary>
- /// 重覆 播放
- /// </summary>
- public int repeat { get; set; }
- }
- public class AnimtimeExchange {
- /// <summary>
- /// 開始 加速
- /// </summary>
- public int accel { get; set; }
- /// <summary>
- /// 自動反轉
- /// </summary>
- public bool autorev { get; set; }
- /// <summary>
- /// 結束 減速
- /// </summary>
- public int decel { get; set; }
- /// <summary>
- /// 延遲 播放
- /// </summary>
- public int delay { get; set; }
- /// <summary>
- /// 播放時間長度 (秒)
- /// </summary>
- public double dur { get; set; }
- /// <summary>
- /// 動畫播放完成後 之 狀態
- /// </summary>
- public string fill { get; set; }
- /// <summary>
- /// 物件動畫 變化狀態名稱 表列 (pptx 於眾多不同地方 設眾多不同值)
- /// (HiTeach 白板 除 pptx 給的原始值之外, 目前新增 "內定出現","內定消失", "內定強調", "color", "motion", "scale")
- /// </summary>
- public List<string> name_type { get; set; }
- /// <summary>
- /// 依 <p:tavLst> 各細項出現的順序, 記錄 相對應的 資料型態
- /// </summary>
- public List<string> newtavl { get; set; }
- /// <summary>
- /// bool 值 表列
- /// </summary>
- public bool newvalb { get; set; }
- /// <summary>
- /// (string) color 值 表列 (以 string 表示)
- /// </summary>
- public string newvalc { get; set; }
- /// <summary>
- /// double 值 表列
- /// </summary>
- public double newvald { get; set; }
- /// <summary>
- /// int 值 表列
- /// </summary>
- public int newvali { get; set; }
- /// <summary>
- /// string 值 表列
- /// </summary>
- public List<string> newvals { get; set; }
- /// <summary>
- /// (對應 <p:tav fmla="...">) fmla (string) 值 表列 (pptx 複雜動畫公式 會使用, 如:輕彈,猛然挪動,...等)
- /// </summary>
- public string tav_fmla_str { get; set; }
- /// <summary>
- /// (對應 <p:tav tm="...">) tm (%) 值 表列
- /// </summary>
- public List<int> tav_tm { get; set; }
- /// <summary>
- /// (對應 <p:cTn tmFilter="...">)
- /// </summary>
- public string tmfilter { get; set; }
- public string transition { get; set; }
- /// <summary>
- /// (對應 <p:txEl/p:charRg st="...">) int 值
- /// </summary>
- public int txtcrgbeg { get; set; }
- /// <summary>
- /// (對應 <p:txEl/p:charRg ="...">) int 值
- /// </summary>
- public int txtcrgend { get; set; }
- /// <summary>
- /// (對應 <p:txEl/p:pRg st="...">) int 值
- /// </summary>
- public int txtprgbeg { get; set; }
- /// <summary>
- /// (對應 <p:txEl/p:pRg end="...">) int 值
- /// </summary>
- public int txtprgend { get; set; }
- /// <summary>
- /// (by) 資料類別+index
- /// </summary>
- public string valby { get; set; }
- /// <summary>
- /// (from) 資料類別 + index
- /// </summary>
- public string valfrom { get; set; }
- /// <summary>
- /// (to) 資料類別+index
- /// </summary>
- public string valto { get; set; }
- }
- }
|