diff --git a/.gitignore b/.gitignore index 9cc5d472..fc56f1b6 100644 --- a/.gitignore +++ b/.gitignore @@ -113,7 +113,7 @@ _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML Plugins/MiniAVC.xml -KAS_v*.zip +KAS_*.zip *.zip *.pyc diff --git a/docs/APIv1/SearchHelp.aspx b/docs/APIv1/SearchHelp.aspx new file mode 100644 index 00000000..6e2a17b6 --- /dev/null +++ b/docs/APIv1/SearchHelp.aspx @@ -0,0 +1,233 @@ +<%@ Page Language="C#" EnableViewState="False" %> + + diff --git a/docs/APIv1/SearchHelp.inc.php b/docs/APIv1/SearchHelp.inc.php new file mode 100644 index 00000000..b905e130 --- /dev/null +++ b/docs/APIv1/SearchHelp.inc.php @@ -0,0 +1,173 @@ +filename = $file; + $this->pageTitle = $title; + $this->rank = $rank; + } +} + + +/// +/// Split the search text up into keywords +/// +/// The keywords to parse +/// A list containing the words for which to search +function ParseKeywords($keywords) +{ + $keywordList = array(); + $words = preg_split("/[^\w]+/", $keywords); + + foreach($words as $word) + { + $checkWord = strtolower($word); + $first = substr($checkWord, 0, 1); + if(strlen($checkWord) > 2 && !ctype_digit($first) && !in_array($checkWord, $keywordList)) + { + array_push($keywordList, $checkWord); + } + } + + return $keywordList; +} + + +/// +/// Search for the specified keywords and return the results as a block of +/// HTML. +/// +/// The keywords for which to search +/// The file list +/// The dictionary used to find the words +/// True to sort by title, false to sort by +/// ranking +/// A block of HTML representing the search results. +function Search($keywords, $fileInfo, $wordDictionary, $sortByTitle) +{ + $sb = "
    "; + $matches = array(); + $matchingFileIndices = array(); + $rankings = array(); + + $isFirst = true; + + foreach($keywords as $word) + { + if (!array_key_exists($word, $wordDictionary)) + { + return "Nothing found"; + } + $occurrences = $wordDictionary[$word]; + + $matches[$word] = $occurrences; + $occurrenceIndices = array(); + + // Get a list of the file indices for this match + foreach($occurrences as $entry) + array_push($occurrenceIndices, ($entry >> 16)); + + if($isFirst) + { + $isFirst = false; + foreach($occurrenceIndices as $i) + { + array_push($matchingFileIndices, $i); + } + } + else + { + // After the first match, remove files that do not appear for + // all found keywords. + for($idx = 0; $idx < count($matchingFileIndices); $idx++) + { + if (!in_array($matchingFileIndices[$idx], $occurrenceIndices)) + { + array_splice($matchingFileIndices, $idx, 1); + $idx--; + } + } + } + } + + if(count($matchingFileIndices) == 0) + { + return "Nothing found"; + } + + // Rank the files based on the number of times the words occurs + foreach($matchingFileIndices as $index) + { + // Split out the title, filename, and word count + $fileIndex = explode("\x00", $fileInfo[$index]); + + $title = $fileIndex[0]; + $filename = $fileIndex[1]; + $wordCount = intval($fileIndex[2]); + $matchCount = 0; + + foreach($keywords as $words) + { + $occurrences = $matches[$word]; + + foreach($occurrences as $entry) + { + if(($entry >> 16) == $index) + $matchCount += $entry & 0xFFFF; + } + } + + $r = new Ranking($filename, $title, $matchCount * 1000 / $wordCount); + array_push($rankings, $r); + + if(count($rankings) > 99) + break; + } + + // Sort by rank in descending order or by page title in ascending order + if($sortByTitle) + { + usort($rankings, "cmprankbytitle"); + } + else + { + usort($rankings, "cmprank"); + } + + // Format the file list and return the results + foreach($rankings as $r) + { + $f = $r->filename; + $t = $r->pageTitle; + $sb .= "
  1. $t
  2. "; + } + + $sb .= "rank - $x->rank; +} + +function cmprankbytitle($x, $y) +{ + return strcmp($x->pageTitle, $y->pageTitle); +} + +?> diff --git a/docs/APIv1/SearchHelp.php b/docs/APIv1/SearchHelp.php new file mode 100644 index 00000000..eaa1e117 --- /dev/null +++ b/docs/APIv1/SearchHelp.php @@ -0,0 +1,58 @@ + + Nothing found + $val) + { + $wordDictionary[$ftiWord] = $val; + } + } + } + } + + // Perform the search and return the results as a block of HTML + $results = Search($keywords, $fileList, $wordDictionary, $sortByTitle); + echo $results; +?> \ No newline at end of file diff --git a/docs/APIv1/Web.Config b/docs/APIv1/Web.Config new file mode 100644 index 00000000..f0f3e6cb --- /dev/null +++ b/docs/APIv1/Web.Config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/APIv1/WebKI.xml b/docs/APIv1/WebKI.xml new file mode 100644 index 00000000..991edb7b --- /dev/null +++ b/docs/APIv1/WebKI.xml @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/APIv1/WebTOC.xml b/docs/APIv1/WebTOC.xml new file mode 100644 index 00000000..9d5859c9 --- /dev/null +++ b/docs/APIv1/WebTOC.xml @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/APIv1/fti/FTI_100.json b/docs/APIv1/fti/FTI_100.json new file mode 100644 index 00000000..91fb1377 --- /dev/null +++ b/docs/APIv1/fti/FTI_100.json @@ -0,0 +1 @@ +{"distancelimitforce":[2818050],"drawn":[2490369],"decoupleparts":[1310721,3342337,7143426,7340033],"destructed":[2555905],"decide":[2490369],"default":[1,524290,1179650,1703938,1769473,1900545,1966082,2293761,4128770,4980737,7143428,7929857],"definition":[196609,1769474,4259841,5898241,7208961,9306114],"depend":[3473409,5046273],"deal":[3342341,7208961,7340033,7864321,8650753,8716289],"dumpjoint":[655361,1638402,8650753],"disconnects":[3473409,8126465,9371649],"desire":[9437185],"def":[1769474],"declares":[9437185],"degrees":[2686978,2818049],"dampering":[2686978,2818050],"dropnode":[196609,1179650,7208961],"differ":[3473409,9240577],"domain":[196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"drop":[1179651,4194305,4390913,7274497],"defining":[7929857],"detected":[3407873],"destroyed":[4128772,8781825],"desired":[393217,3997697,4653057,5242881,8978434,9043969],"defined":[1769474,2686977,3342337,7405569],"defines":[3342340,3735553,4128770,4259841,6029313,8060929,8126465,8192001,8388609,8519681,8781825,9175042,9306113,9371649,9633793],"debugex":[4194305,5111809,5439492,5505028,5832708,6946820,8781828,9437185],"dropjoint":[1114113,2621442,3145729,7733249],"deleted":[1835009,3473409],"docking":[6225921],"determine":[8126465],"disconnectparts":[3473409,8126465,9371649],"deviates":[2686978,2818049],"displayed":[3342337,3735553,9568257],"double":[4980738],"diagram":[9371649,9633793],"depending":[3342337,5242881,9240577],"details":[2949121,3473409,3735554,5373953,8126465,9371650],"drive":[1966081,2686977,2818049],"direct":[7143426],"decouples":[1310721,7143425,7340033],"decoupled":[7143426],"different":[1310721,1966081,2490369,2686977,2818049,3473409,4128769,4521985,5767169,7340033,7929857],"disabled":[3801089,4259841,8912897,9306113],"dependency":[3342337],"distance":[393217,655361,786433,2097154,2818052,2883590,3014657,4063235,4653058,5046274,5242883,5701634,6488065,8454146,8585217,8650753,8978433,9502730],"distancelimit":[2818052],"direction":[6029314,6750209,7077889,8060930],"draw":[2490370],"degree":[1769473],"dependents":[6094849],"decoupling":[4521985,7143425],"dsitance":[3342337,9502721],"dockedvesselinfo":[7143429,9109506],"deployedcablelength":[2883585,3014657,4063233,5242882,5701633,9502722],"distant":[2097153],"description":[196609,262145,393217,458753,589825,655361,720897,786433,1048577,1114113,1310721,1572865,1900545,3211265,3276801,3342339,3604481,3932161,3997697,4063233,4259841,4390913,4587521,5308417,6029313,6291457,7208961,7274497,7340033,7733250,7798785,7864321,8060930,8126465,8519681,8650753,8716289,8781825,8978434,9175041,9306113,9371650,9437185,9502722,9568257,9633793,9830401],"depends":[4653057,9043969,9502721],"depedent":[3342337],"directly":[7733249],"difference":[9502721],"dump":[1441793,1638401],"drives":[1966081],"destroy":[9437185],"descouraged":[9764865],"designed":[7733249],"dynamic":[8454145],"downstream":[8781825],"dll":[327681,524289,851969,917505,983041,1179649,1245185,1376257,1441793,1507329,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3342337,3407873,3473409,3538945,3670017,3735553,3801089,3866625,4128769,4194305,4325377,4456449,4521985,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6094849,6160385,6225921,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"destroys":[1114113,2621441,7733249],"drops":[196609,1179649,7208961],"deployed":[393218,4325378,4653059,5701633,6488065,8978434],"determined":[4128769],"disabling":[3801089],"distancelimitdamperratio":[2818050],"describes":[5439489,6946817],"debug":[2949123,3342337,3473410,3735555,3801091,5373955,7405569,8126465,9371655,9764865],"discouraged":[2490369,3670017],"docked":[8257537],"dumpspringjoint":[655361,1441794,8650753]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_101.json b/docs/APIv1/fti/FTI_101.json new file mode 100644 index 00000000..1e8771fd --- /dev/null +++ b/docs/APIv1/fti/FTI_101.json @@ -0,0 +1 @@ +{"extending":[3997697,4653057,8978433,9699329],"exposes":[196609,262145,393217,458753,589825,655361,720897,786433,1048577,1114113,1310721,1572865,3211265,3276801,3932161,3997697,4063233,4259841,4390913,4587521,5308417,6029313,6291457,7208961,7274497,7340033,7733249,7798785,7864321,8060929,8519681,8650753,8716289,8781825,8978433,9306113,9371649,9437185,9502721,9633793,9830401],"existing":[196609,1703937,1966081,2293761,3145729,7208961],"entered":[2228225],"effects":[2686977,2818049,2883586,2949121,3473409,3735553,5373953,8126465,9371650],"enumerations":[3342337],"examples":[2949121,3342337,3473410,3735553,3801089,4194305,5111809,5373953,5439489,5505025,5832705,6946817,7405569,8126465,8323073,8781825,9371653,9437185,9633794,9764865],"eventdata":[5439490,5505026,5832706,6946818],"events":[720897,1376257,3342338,8519683,8781825,8847361,9830401],"exceed":[9043969],"expected":[1703937,2031617,2293761,3735553,9568257],"ended":[5505025,9633794],"enumeration":[3342337,8126465,9175041,9568257],"expect":[4653057,9502721,9568257],"equals":[4194305,5111809],"equal":[5242881,5701633],"extend":[4653058],"eliminate":[2686977,2818049],"establishes":[589826,3538945,3604482,5373953,9371650],"established":[1114113,2359297,2949121,3735553,4915201,5373954,5439489,5636097,5701633,6291457,7405569,7667713,7733249,8781825,9175041,9371651],"engine":[2883585,5242881,5701633,9502721],"ends":[2490369],"extened":[9240577],"error":[131074,3801089],"end":[1835009,3342337,3473409,4259841,5636098,6029313,6750209,8060929,9306114,9371649],"expecting":[9175041],"establish":[3145729,4063233,5046273,9502721],"execute":[2621441,2949121,3473409,3735553,5373953,8126465,9371650],"enable":[1769473],"extra":[2293761,2883585],"example":[327681,524289,851969,917505,983041,1179649,1245185,1376257,1441793,1507329,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3342337,3407873,3473409,3538945,3670017,3735553,3801089,3866625,4128769,4194305,4325377,4456449,4521985,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6094849,6160385,6225921,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"event":[2031617,2752513,3342337,3866628,4194314,4390914,4521985,5111818,5439489,6946817,7274498,7798785,8781825,9764865],"enum":[8126465,9175041,9568257],"errors":[2359297,2621441,3145730,3407873,3801091,5373953],"empty":[2359297,3407873,5177345,5767169,6094849,6160385],"elements":[3801089],"effect":[2686978,2818050,2883585,8126465],"exception":[9764865],"extended":[3997697,8454145,8978433,9240577],"ensures":[3342337],"enablepreprocessing":[2686977,2818049],"explicitly":[7929857,9306113],"enterhandler":[9371649],"ending":[9568257],"exactly":[1769473,2949121,3473409,3670017,3735553,3801089,5373953,7405569,8126465,9371651,9764865],"ensure":[1966081,3145729,7602177],"environmental":[786433,3014657,9502721],"expensive":[2490369]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_102.json b/docs/APIv1/fti/FTI_102.json new file mode 100644 index 00000000..2eaf7d5f --- /dev/null +++ b/docs/APIv1/fti/FTI_102.json @@ -0,0 +1 @@ +{"findlinkpeer":[1310721,3670018,7340033],"future":[3670017],"false":[2555905,2949122,3735555,3801093,4128770,5373954,6553601,8847361,9371650],"following":[196609,262145,393217,458753,589825,655361,720897,786433,1048577,1114113,1310721,1572865,1769473,2293761,3211265,3276801,3932161,3997697,4063233,4259841,4390913,4587521,5308417,6029313,6291457,7208961,7274497,7340033,7733249,7798785,7864321,8060929,8519681,8650753,8716289,8781825,8978433,9306113,9371650,9437185,9502721,9633794,9830401],"flight":[7471105],"finds":[1310721,3670017,7340033],"forces":[786433,1048577,2883586,3014657,4980738,5242881,7864321,9502722],"form":[196609,1769473,7208961,7733249],"format":[1769474],"feed":[1769473],"flightintegrator":[4980737],"findtargetfromsource":[7405569,9371649],"fail":[2949121,3735553,4653057,5373953,9371649],"facing":[2949121,3473409,3735553,5373953,8126465,9371650],"fact":[9502721],"flow":[1769474,4980737],"friendly":[196609,1900546,2359297,3407873,7208961],"frame":[1835009,2490369,3080193,3473409],"forget":[2686978,2818050],"firstordefault":[3473409,7405569,8126465,8323073,9371650,9764865],"fixed":[655361,983042,1703937,8650753],"fully":[5898241],"factor":[1769473],"free":[2162689,2686977,2818049,8257537],"forbidden":[1769473],"functionality":[3342337],"frequently":[2490369],"fixed_joint":[2293761],"formatted":[1441793,1638401],"follow":[1],"fields":[720898,9830401],"failed":[1769473,2949121,3735553,3801089,5373953,9371649],"force":[458753,1769473,2031618,2097154,2555905,2686983,2818054,2883585,3473411,5701633,9437186],"failure":[5373953],"field":[327682,851970,917506,1245186,1376258,1507330,2424834],"first":[1769474,7143425],"freedom":[1769473,2686977,2818049],"fixedupdate":[1835009,3473410],"final":[3473409],"float":[1769474,2031617,2097155,2686982,2818054,2883585,3473409,4653057,5046273,5242881,5701633,8192001,8454145,8585217,9043969,9240577,9437185,9699329],"findmoduleimplementing":[2949122,3342337,3735554,3801090,5373954,9371650],"findsourcefromtarget":[9764865],"findmodulesimplementing":[3473409,7405569,8126465,8323073,9371651,9764865]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_103.json b/docs/APIv1/fti/FTI_103.json new file mode 100644 index 00000000..b3ce0cba --- /dev/null +++ b/docs/APIv1/fti/FTI_103.json @@ -0,0 +1 @@ +{"goes":[3866625],"gravity":[4980737],"global":[720897,1376257,3342338,7274497,8781825,9830401],"guaranteed":[6225921],"got":[2949121,3866625],"general":[131073,2555905],"generic":[3342339,8716289,9371649,9633793],"getter":[8192001],"gui":[3342337,3538945,3801089,5373953,9568258],"granular":[9175041],"gameobject":[2031618,9437185],"gmail":[196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"green":[2949121,3735553,5373953,9371649],"gives":[1900545],"given":[1310721,4128769,7340033],"game":[2031617,3342337,6750209,7077889,8388609,8847361],"gave":[4521985],"group":[3866625,7929857],"gettransformfornode":[196609,524290,7208961],"greater":[2883585,4653057,5242881,9502721],"good":[4980737],"guilinkmode":[2949124,3342337,3735558,3801089,5373957,9371652,9568258],"gets":[196609,524289,7208961,8912897]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_104.json b/docs/APIv1/fti/FTI_104.json new file mode 100644 index 00000000..b3d1b87c --- /dev/null +++ b/docs/APIv1/fti/FTI_104.json @@ -0,0 +1 @@ +{"headrb":[4063233,4456450,5242881,9502721],"happen":[8781825],"heavy":[3080193],"head":[786434,1835009,2883585,3014659,3997697,4063235,4456450,4653057,5242881,5701634,8257537,8454145,8585217,8978433,9502725],"hinge":[655361,2686977,8650753],"hierarchy":[4128769,4259841,7602177,9306113,9830401],"hard":[2555905],"headobjanchor":[3014658],"holder":[3342337,7798785],"hostobj":[2031618,9437187],"handle":[9175041],"handling":[786433,1835009,9502722],"holds":[9371649],"handlers":[2031617,3866625],"hits":[3407873],"higher":[9043969],"having":[3342337],"helps":[9175041]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_105.json b/docs/APIv1/fti/FTI_105.json new file mode 100644 index 00000000..c7225fab --- /dev/null +++ b/docs/APIv1/fti/FTI_105.json @@ -0,0 +1 @@ +{"igor":[196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"inheritance":[9830401],"ilinksourceexample_breakfromphysyicalmethod":[3473409],"ienumerable":[3473409],"interaction":[9568257],"interfaces":[3342339,9306113],"include":[3342337],"interface":[196609,262145,393217,458753,524289,589825,655361,786433,983041,1048577,1114113,1179649,1310721,1441793,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342345,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208962,7274498,7340034,7405569,7471105,7536641,7602177,7667713,7733252,7798786,7864322,7929857,7995393,8060931,8192001,8257537,8323073,8388609,8454145,8519684,8585217,8650754,8716291,8781826,8847361,8912897,8978435,9043969,9109505,9240577,9306116,9371650,9437188,9502723,9633794,9699329,9764865],"isstarted":[6029313,6815746,8060929],"indicates":[2490369],"ilinkutils":[851970,1310723,3342337,3670018,4128770,7143426,7340035,7602177],"iattachnodesutils":[196611,524290,917506,1179650,1703938,1769474,1900546,2293762,3342337,4128769,7208963,7602177],"ilinkpeer":[3342337,3670020,3866626,4259843,4521985,5636100,5767170,5898242,5963778,6094850,6356996,6422531,6553604,6619138,7471106,7602178,7929858,8257537,8388610,8912900,8978433,9306115,9371649,9633793,9764865],"index":[4259841,5963778,9306113],"invalid":[9175041,9764865],"implemented":[9306113],"incomplete":[2621441],"iwinchcontrol":[393219,3342337,3997699,4325382,4653065,6488069,8257539,8454149,8585218,8978435,9043973,9240580,9699332],"ikaslinkevent":[2752514,3276803,3342337,4718594,4849666,5439493,5505026,5832706,6881282,6946821,7798787,8126465,8781826],"islinked":[2752514,3932161,4259841,5570562,6356993,6422530,7733249,8257537,9306113],"invoking":[983041,2097153],"iscoupleonlink":[4521986],"information":[2752513],"internally":[3538945],"isloaded":[720897,2424834,3342337,9830401],"input":[8126465,9568257],"implementations":[5242881,7733249,8126465],"inheritdoc":[9437185],"involved":[2752513],"immediately":[1835009,3473409,4653058],"ilinkjoint":[1114115,2359298,2555906,2621443,3145733,3342337,3932163,4521987,4784130,4915202,5570562,6225923,7012354,7602177,7667714,7733251,8257537,9502721],"isrigid":[1769474],"improve":[2686977,2818049],"ilinkrenderer":[262147,2162690,2490370,3080194,3342337,3407874,6029315,6160386,6750211,6815747,7077891,7536642,7995394,8060931,8192002,8323076,8847362],"ilinkstateeventlistener":[1572867,2752514,3342337,3866626,8519683],"ilinksource":[589827,1835009,2359298,2621441,2949124,3014659,3145733,3342338,3473414,3538948,3604482,3735556,3801091,5242881,5308419,5373958,5439490,5505028,5832708,6881282,6946818,7012354,7405571,7667714,7733249,8126466,8257537,8323074,8454145,8781826,8978433,9175041,9306113,9371655,9633794,9764867],"initiates":[3473409],"initiated":[3538945,3735553,5832705,6291457,8781825,9371652,9633795],"instance":[6619137,6684673],"initializes":[655361,1966081,8650753],"int":[5963777],"int32":[5963777],"interactive":[9568257],"ignore":[8192001],"integer":[1769473],"initiator":[9371649],"introduce":[3080193],"iactivateondecouple":[1179649],"iphysicsutils":[327682,1048579,3342337,4980738,7864323],"internal":[8126465],"identifies":[4784129],"islocked":[4259841,6356993,6553601,8912898,9306113],"implements":[9371649,9437185],"ijointutils":[655363,983042,1245186,1441794,1638402,1966082,2097154,2686978,2818050,3342337,8650755],"isphysicalcollider":[6029313,8060929,8847362],"invoke":[2490369],"isunbreakable":[2555906],"installed":[3342339],"implement":[3670017,8519681],"ideally":[9043969],"incompatible":[1572865,3866625,4259841,6553601,8519681,9306113],"initrenderer":[8323073],"interact":[7733249],"icommonconfig":[1507330,3342337,4194306,4390915,5111810,5177346,7274499],"info":[2752514,3342337,4194305,4587522,5111809,5439492,5505028,5832708,6684673,6946820,7143426,8716291,8781828,9109506],"isconnectorlocked":[3997697,4325377,4653057,8257538,8978433],"impassible":[2686977,2818049],"initial":[9175041],"interfere":[8912897],"ignores":[9306113],"infinite":[2686978,2818050,4653057],"instructs":[4653057],"ilinkvesselinfo":[3342337,4128769,4587523,6684674,8716291,9109506],"initated":[4718593,9175041],"isnodeblocked":[4259841,6553602,8912897,9306113],"impact":[8847361],"inetria":[9240577],"implementation":[2162689,2949121,3080193,3473409,3735553,4521985,4653057,5373953,7929857,8126466,9175041,9240577,9371650,9764865],"including":[6094849,7143425],"ikasjointeventslistener":[458755,2031618,3342337,9437188],"interacts":[6029313,8060929,8847361],"identifier":[3932161,4259841,4784129,5767169,7733249,9306113],"ikasevents":[1376258,3342337,5439490,5505026,5832706,6291459,6946818,8781827],"impossible":[4390913,5177345,7274497],"ilinktarget":[589826,2359298,2621441,2949121,3145733,3211267,3342337,3473410,3538948,3604482,3735553,3801091,4849666,4915202,5373958,7405570,8126465,8454145,9175041,9306113,9371652,9633795,9764867],"idle":[4653057],"instead":[2293761,3342337],"ilinkcablejoint":[786435,1835011,2883589,3014661,3342337,4063235,4456450,5046274,5242886,5701635,9502726],"instruct":[1769473],"isblocked":[3866626]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_106.json b/docs/APIv1/fti/FTI_106.json new file mode 100644 index 00000000..ba544005 --- /dev/null +++ b/docs/APIv1/fti/FTI_106.json @@ -0,0 +1 @@ +{"just0":[4194305,5111809],"just":[4521985,4653057,4980737,5439489,6946817,9633794],"jointutils":[720897,1245186,9830401],"joints":[720897,1245185,3342338,7733249,8650753,9437185,9502721,9830401],"joined":[2818049],"joint":[655369,983047,1114115,1441796,1638404,1769476,1966089,2031618,2097159,2359297,2490369,2555908,2621441,2686988,2818057,2883587,2949121,3145732,3342337,3473409,3735553,3932162,4521985,4784130,5046273,5242881,5308417,5373953,5570561,5701634,6029314,6225923,6750209,7012354,7077889,7733255,8060930,8650761,9371650,9437187,9502721]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_107.json b/docs/APIv1/fti/FTI_107.json new file mode 100644 index 00000000..6622268b --- /dev/null +++ b/docs/APIv1/fti/FTI_107.json @@ -0,0 +1 @@ +{"keydropconnector":[4194306,4390913,7274497],"know":[3801089,9437185],"kspfield":[8323073],"kind":[2031617,9502721],"keeping":[9175041],"key":[4194306,4390914,5111810,7274498],"kasevents":[720897,1376258,5439496,5505032,5832712,6946824,8781832,9830401],"keypickupconnector":[4390913,5111810,7274497],"keeps":[2097153],"kaseventsexample1":[5439489,5505025,5832705,6946817,8781825],"ksp":[1179650,1703937,2293763,3342337,8650753,9043969],"kasapiv1":[196609,262145,327682,393217,458753,524290,589825,655361,720897,786433,851970,917506,983042,1048577,1114113,1179650,1245186,1310721,1376258,1441794,1507330,1572865,1638402,1703938,1769474,1835010,1900546,1966082,2031618,2097154,2162690,2293762,2359300,2424834,2490370,2555906,2621442,2686978,2752515,2818050,2883586,2949122,3014660,3080194,3145734,3211265,3276801,3342338,3407874,3473411,3538948,3604481,3670019,3735556,3801091,3866627,3932161,3997697,4063233,4128772,4194306,4259841,4325378,4390913,4456450,4521986,4587521,4653058,4718594,4784130,4849666,4915202,4980738,5046274,5111810,5177346,5242882,5308417,5373955,5439490,5505026,5570562,5636098,5701634,5767170,5832706,5898242,5963778,6029313,6094850,6160386,6225922,6291457,6356994,6422530,6488066,6553602,6619138,6684674,6750210,6815746,6881282,6946818,7012354,7077890,7143426,7208962,7274498,7340034,7405570,7471106,7536642,7602178,7667714,7733250,7798786,7864322,7929858,7995394,8060930,8126467,8192002,8257538,8323074,8388610,8454148,8519682,8585218,8650754,8716290,8781826,8847362,8912898,8978434,9043970,9109506,9175042,9240578,9306116,9371650,9437186,9502722,9568258,9633794,9699330,9764866,9830403],"kas":[65537,131073,196609,262145,327685,393217,458753,524292,589825,655361,720903,786433,851973,917509,983044,1048577,1114113,1179652,1245189,1310721,1376261,1441796,1507333,1572865,1638404,1703940,1769476,1835012,1900548,1966084,2031620,2097156,2162692,2228225,2293764,2359300,2424836,2490372,2555908,2621444,2686980,2752516,2818052,2883588,2949124,3014660,3080196,3145732,3211265,3276801,3342349,3407876,3473412,3538948,3604481,3670020,3735556,3801092,3866628,3932161,3997697,4063233,4128772,4194308,4259841,4325380,4390913,4456452,4521988,4587521,4653060,4718596,4784132,4849668,4915204,4980740,5046276,5111812,5177348,5242884,5308417,5373956,5439493,5505028,5570564,5636100,5701636,5767172,5832708,5898244,5963780,6029313,6094852,6160388,6225924,6291457,6356996,6422532,6488068,6553604,6619140,6684676,6750212,6815748,6881284,6946821,7012356,7077892,7143428,7208964,7274500,7340037,7405572,7471108,7536644,7602180,7667716,7733255,7798788,7864324,7929860,7995396,8060932,8126469,8192004,8257540,8323076,8388612,8454148,8519684,8585220,8650756,8716292,8781829,8847364,8912900,8978436,9043972,9109508,9175044,9240580,9306116,9371654,9437188,9502724,9568260,9633797,9699332,9764868,9830411],"keyboard":[4194306,4390914,5111810,7274498],"keyboardevent":[4194311,5111815],"kasapi":[327682,720899,851970,917506,1245186,1376258,1507330,2424834,3342339,5439496,5505032,5832712,6946824,8781832,9830404]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_108.json b/docs/APIv1/fti/FTI_108.json new file mode 100644 index 00000000..94ae73d6 --- /dev/null +++ b/docs/APIv1/fti/FTI_108.json @@ -0,0 +1 @@ +{"leavehandler":[9371649],"linkpartid":[2949121,3735553,4259841,5373953,7471106,9306113,9371649],"local":[1966081],"logformat":[2949121,3735553,5373953,9371649],"logic":[3670017,4980737,8126465,9175041,9306114,9371650],"lenght":[5701633],"logs":[3145729,3801089],"linkutils":[720897,851970,3342337,9830401],"looks":[1966082],"linkstopped":[5439491,5505027,5832707,6946819,8781827],"logging":[1900545,3801089],"locks":[1572865,3866625,8519681],"log":[3801089,7405569,9371651,9764865],"linkstate":[3342337,3866625,4259841,6356996,6422529,6553601,8912897,9175042,9306113,9371664,9633793,9764865],"list":[2359297,3407873,3604481,4259841,5898241,7602177,7929859,8781826,9306113],"longer":[2228225],"located":[2490369],"linkactortype":[589825,2949122,3342337,3473415,3538948,3604481,3735555,3801089,4718594,5373957,8126469,9371656],"limit":[2686979,2818052,2883588,9502725],"loading":[5963777,7471105],"linksource":[3211265,3473412,3932161,7667714,7733249,9633793,9764868],"linkmoduleindex":[4259841,5963778,9306113],"linkcreated":[5439491,5505027,5832707,6946819,8781827],"locate":[2228225],"linefeed":[1441793,1638401],"like":[2490369,3538945],"linktotarget":[589826,2949121,3473410,3538948,3604483,3735553,3801089,5373957,9371651],"logerror":[2949122,3735554,3801090,5373954,9371650],"listed":[5898241],"length":[393218,2883591,3014657,4325377,4653060,5242881,5701633,6488065,8454145,8585217,8978434],"looking":[2228225],"link":[1,262147,589829,720897,851969,1114114,1310721,1572865,1835009,2162689,2359300,2490373,2621441,2752516,2949126,3080193,3145730,3211265,3276802,3342344,3473413,3538949,3604482,3670017,3735558,3801098,3866625,3932162,4063233,4259843,4849666,4915202,5046273,5308419,5373963,5439494,5505029,5636099,5701633,5767169,5832709,6029318,6094852,6225921,6291458,6422529,6750209,6881282,6946822,7012353,7077889,7340033,7405570,7536641,7667714,7733252,7798786,7995393,8060939,8126469,8192002,8323074,8519682,8781830,8847363,8912900,9175045,9306117,9371674,9502723,9568259,9633800,9764865,9830401],"linear":[1966081,2686978,2818053],"logwarningformat":[3473410,8126465,9371649],"lists":[8781825],"linking":[589826,2949122,3342337,3538945,3670017,3735555,3801089,5373956,5505025,5832705,6291458,7929857,8781826,9175042,9371658,9568257,9633795],"lower":[9043969],"linkstatemachine":[9371655],"letting":[3801089],"linked":[3538945,3670017,4259842,5373953,5570561,6225921,6422529,7405570,7471105,8257537,9175042,9306114,9371654,9502721,9633798,9764867],"linkstarted":[5439491,5505027,5832707,6946819,8781827],"listeners":[3342337,9437185],"linkrenderer":[5308417,8323076,9371649],"light":[2949121,3735553,5373953,9371649],"lock":[4653057,7929857],"lin":[1835009,3145730,3473409,4915201,7667713,9306113],"linktarget":[3473410,3932161,4915202,5308417,7405572,7733249,8126465,9371654],"linkjoint":[5308417,7012354,8257537,9371649],"little":[2162689],"load":[131073,3145729,3342337],"logged":[1703937,2293761,3801090],"logwarning":[3342337],"locked":[1769473,1966081,2686978,2818050,2949121,3735553,3997697,4325377,4653057,6094849,8257539,8912898,8978433,9175041,9371652,9633795],"lost":[1966081],"loaded":[720897,2424833,9830401],"links":[3276801,3342338,3670017,4718593,7340033,7798785,8126465,9175041,9371649,9502721],"limits":[1966081,2686978,2818049,2883585,9043969],"linkbroken":[5439491,5505027,5832707,6946819,8781827]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_109.json b/docs/APIv1/fti/FTI_109.json new file mode 100644 index 00000000..50cc1869 --- /dev/null +++ b/docs/APIv1/fti/FTI_109.json @@ -0,0 +1 @@ +{"models":[6029314,6750209,7077889,8060930],"motor":[393217,3997698,4653066,8454145,8978435,9043971,9240579],"motorcurrentspeed":[3997697,4653058,8978433,9043969,9240578],"mods":[3342337],"momentum":[9240577],"making":[9306113,9371649],"mind":[3801089,5701633],"mod":[3342341,7274497],"mode":[589826,1114113,1769473,2162689,2686978,2818053,2949124,3342337,3538946,3735559,3932161,4521990,5373957,5505026,5832706,6225922,6291458,7733250,7929857,8781826,9371654,9568257,9633794],"meshes":[2490369,5308417,6029314,7536641,7995393,8060930,8323073,9371649],"myfakerb":[9437186],"makes":[3801089],"main":[2686977,2818053],"multiple":[2162689,2490369,8912897],"mandatory":[1769473],"meaning":[9502721],"maxdistance":[2097154],"moving":[2818049,8257537],"moment":[2555905,3997697,8454145,8978433,9240577],"moderate":[3080193],"merged":[4128769],"means":[2883585,6225921,8192001,9240578],"meters":[5046273,5242881,5701633,8454145,8585217,9240577,9699329],"message":[3801089],"maintaining":[9371649],"method":[524289,983043,1179649,1441793,1638401,1703938,1769473,1835009,1900545,1966082,2031618,2097155,2162691,2293762,2359297,2490372,2555905,2621442,2686977,2752513,2818051,2883587,2949121,3014657,3080195,3145732,3407874,3473410,3538947,3604481,3670017,3735553,3801089,3866625,4128770,4194305,4325377,4521985,4653059,4980739,5111809,5373954,6488065,7143426,9371652],"module":[1572865,2752513,2949122,3145729,3342338,3735555,3801089,3866626,4259842,4521985,4849665,5308417,5373954,5963778,6225921,6881281,7012354,7405569,7733249,7929861,8060929,8519683,9175051,9306114,9371660,9502721,9633793,9764865],"mymodule":[3342337],"multiplier":[4980737],"modules":[2752513,3342337,3866626,4521985,6029313,6094850,6160385,7929859,8060929],"methods":[196610,262146,393218,458754,589826,655362,786434,1048578,1114114,1310722,1572866,1835010,3342338,3473411,7208962,7340033,7733249,7864321,8060929,8519681,8650753,8978433,9240577,9371649,9437185,9502721],"manage":[8126465],"minumim":[1769473],"make":[8912897],"movements":[3342337,9502721],"manages":[3342337,5308417,7012353,8060929,9371649],"mesh":[7536641,7995393],"maintains":[3211265,9633793,9764865],"match":[4653059,9240578],"maximum":[393217,786433,2097153,2686978,2818050,2883586,3014657,3342337,3997698,4063234,4325377,4653058,5046273,5242881,8585218,8978435,9502724,9699329],"motortargetspeed":[3997697,4653058,8978433,9043970,9240578,9699329],"machine":[9371649],"model":[524289,3342337,9175041],"multliple":[3342337],"modes":[1966081,2686982,2818051],"maxspringforce":[2686978,2818050],"matches":[524289],"merge":[6225921],"mean":[6225921],"motions":[2686977],"monobehaviour":[3473410],"movement":[2818050],"moved":[8060929],"member":[8126465,9175041,9568257],"misspelled":[2228225],"maintained":[7733249],"motion":[2818050],"members":[196609,262145,393217,458753,589825,655361,720897,786433,1048577,1114113,1310721,1572865,3211265,3276801,3932161,3997697,4063233,4259841,4390913,4587521,5308417,6029313,6291457,7208961,7274497,7340033,7733249,7798785,7864321,8060929,8126465,8519681,8650753,8716289,8781825,8978433,9175041,9306113,9371649,9437185,9502721,9568257,9633793,9830401]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_110.json b/docs/APIv1/fti/FTI_110.json new file mode 100644 index 00000000..f59aa9ab --- /dev/null +++ b/docs/APIv1/fti/FTI_110.json @@ -0,0 +1 @@ +{"nodes":[720897,917505,1769474,3342337,4128770,5898241,7208961,7602177,7929860,9830401],"nre":[8781825],"nodeisblocked":[3866625,6553601,9175041],"notified":[8781825],"normal":[1114113,1769473,2555905,6029313,7733249,8060929,8126465,8192001],"negative":[4653058,9240577],"numbers":[1769474],"nullable":[7536642],"node":[196614,524292,1179652,1572865,1703942,1769483,1900548,2293770,2490370,3407874,3866625,4128770,4259847,5898244,6094852,6553601,7208966,7602179,7929859,8388609,8519681,8912901,9175041,9306119],"need":[2686977,2818049,4259841,4653057,7602177,7929857,9306113],"namespace":[196609,262145,327682,393217,458753,524292,589825,655361,720897,786433,851970,917506,983042,1048577,1114113,1179652,1245186,1310721,1376258,1441794,1507330,1572865,1638402,1703940,1769475,1835010,1900547,1966082,2031618,2097154,2162690,2293763,2359298,2424834,2490370,2555906,2621442,2686978,2752514,2818050,2883586,2949122,3014658,3080194,3145730,3211265,3276801,3342341,3407874,3473410,3538946,3604481,3670018,3735554,3801090,3866626,3932161,3997697,4063233,4128772,4194306,4259841,4325378,4390913,4456450,4521986,4587521,4653058,4718594,4784130,4849666,4915202,4980739,5046274,5111810,5177346,5242882,5308417,5373954,5439490,5505026,5570562,5636098,5701634,5767170,5832706,5898242,5963778,6029313,6094850,6160386,6225922,6291457,6356994,6422530,6488066,6553602,6619138,6684674,6750210,6815746,6881282,6946818,7012354,7077890,7143430,7208962,7274498,7340034,7405570,7471106,7536642,7602178,7667714,7733250,7798786,7864322,7929858,7995394,8060930,8126466,8192002,8257538,8323074,8388610,8454146,8519682,8585218,8650754,8716290,8781826,8847362,8912898,8978434,9043970,9109506,9175042,9240578,9306114,9371650,9437186,9502722,9568258,9633794,9699330,9764866,9830402],"notifies":[3342337,9437185],"new":[196609,1769475,1966082,2293762,2752513,2883587,3145729,3342338,3473409,4128770,4521988,4653057,7208961,9371654],"needed":[3342337,4653057,5439489,6946817,9240577],"names":[4259841,7929858,9306113],"nodetype":[2293761],"normally":[1703937,2555905,9175041],"nodeid":[196609,1769474,1900546,7208961],"null":[1769473,2949122,3473412,3670017,3735554,3801090,4128770,4456449,4915201,4980737,5373954,5636097,5898241,7143426,7405572,7536641,7602177,7667713,7929857,7995393,8126466,8388609,9109505,9371656,9764870],"numpad0":[4194306,5111810],"numpad":[4194305,5111809],"nodename":[2293762],"needs":[1835009,3473409,3801090,8126465,8519681,9437185],"negativeinfinity":[2883585],"notification":[2752513,8781825],"number":[1769473,3342337],"nodetransform":[2293762,4259841,8388610,9306113]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_111.json b/docs/APIv1/fti/FTI_111.json new file mode 100644 index 00000000..62637aaf --- /dev/null +++ b/docs/APIv1/fti/FTI_111.json @@ -0,0 +1 @@ +{"oscillation":[2686978,2818050],"ownerpeer":[3866626],"onawake":[5439490,5505026,5832706,6946818,8781826],"objec":[6750209,7077889],"occupied":[4259841,6553601,9175041,9306113],"operating":[3342337,8978433],"optional":[1769473,2097155,2555905,2686982,2818054,3801091,4128769,4980737,7143428],"optionally":[3342337,8060929],"outgoing":[9175041],"onlinkbroken":[5439490,5505026,5832706,6291457,6946820,8781827],"optimization":[3080194],"operate":[9043969],"objects":[262145,1835009,1966081,2097153,2490369,2883586,3342337,3473410,4980737,5242881,8060929,9502725],"ondestroy":[5439489,5505025,5832705,6946817,8781825],"ownerpart":[524290,1769474],"onstartlinking":[5439490,5505026,5832708,6291457,6946818,8781827],"obstructed":[3801090],"oscillations":[2097153],"owns":[524289,2031617,3014657,3145729,4259841,4587521,6619137,6684673,8257537,8716289,9306113,9633794],"onkasnodeblockedstate":[1572865,3866626,8519681],"oppossing":[1769473],"otherpeer":[4259841,5636098,9306113],"obejcts":[2097153],"operations":[6094849],"override":[5439489,5505025,5832705,6946817,8781825],"object":[196609,458753,524290,786433,2031618,3014659,3342337,4456449,5439489,6946817,7208961,8388609,8781825,8847361,9437186,9502722,9830401],"one":[1310721,2293761,2949121,3473409,3670018,3735554,3801089,4128770,4980737,5373953,5439489,6094850,6225921,6946817,7143425,7340033,7405569,8126465,8454145,8912897,9175041,9371651,9764865],"orientation":[1769474,2293761,4259841,8388609,9306113],"operation":[2490369],"order":[1769473,8454145],"original":[2686978,2818051,7536641,7995393],"owning":[2490369],"ongui":[4194305,5111809],"obstacles":[262145,3407873,8060929],"owned":[7143426,7929857],"owner":[1703937,7143425,8257537,9633793],"onlinkcreated":[5439492,5505026,5832706,6291457,6946818,8781827],"overload":[3538945,3604481,5373953],"onkaslinkedstate":[1572865,2752514,5439489,6946817,8519681],"onjointbreak":[1835009,3473411],"occurred":[131073],"onstoplinking":[5439490,5505028,5832706,6291457,6946818,8781827],"old":[3342338,7143425],"outputs":[655362,1441793,1638401,8650754],"ommited":[1769473],"onkasjointbreak":[458753,2031618,9437186],"omitted":[1769474]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_112.json b/docs/APIv1/fti/FTI_112.json new file mode 100644 index 00000000..9272080d --- /dev/null +++ b/docs/APIv1/fti/FTI_112.json @@ -0,0 +1 @@ +{"pure":[2686977,2818049],"physix":[2686977],"physical":[786434,1114114,1835010,2621441,2883589,3145729,3342337,3473410,3932161,4063235,4259841,4456450,4980737,5242881,5308417,5570561,5701633,7012354,7733251,8388609,8847361,9306113,9371649,9502726],"parameters":[524289,983041,1179649,1441793,1638401,1703937,1769473,1900545,1966081,2031617,2097153,2293761,2359297,2490369,2555905,2686980,2752513,2818052,2883585,3014657,3145729,3407873,3473409,3538945,3670017,3735553,3801089,3866625,4128769,4521985,4653057,4980737,5373953,7143425],"parsed":[4259841,5898241,9306113],"percentage":[2686978,2818050],"present":[7929857,8126465],"points":[262145,2490369,3407873,8060930],"performance":[2162689,2490369,2686978,2818049,3080193],"public":[196609,262145,327682,393217,458753,524289,589825,655361,720897,786433,851970,917506,983041,1048577,1114113,1179649,1245186,1310721,1376258,1441793,1507330,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424834,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949122,3014657,3080193,3145729,3211265,3276801,3342340,3407873,3473412,3538945,3604481,3670017,3735554,3801090,3866625,3932161,3997697,4063233,4128769,4194306,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111810,5177345,5242881,5308417,5373954,5439491,5505027,5570561,5636097,5701633,5767169,5832707,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946819,7012353,7077889,7143425,7208962,7274498,7340034,7405570,7471105,7536641,7602177,7667713,7733250,7798786,7864322,7929857,7995393,8060930,8126467,8192001,8257537,8323075,8388609,8454145,8519682,8585217,8650754,8716290,8781828,8847361,8912897,8978434,9043969,9109505,9175042,9240577,9306114,9371655,9437187,9502722,9568258,9633794,9699329,9764866,9830402],"prismatic":[655361,2818051,8650753],"parse":[1769474],"parameter":[3801089,4128769,4653057],"persisted":[4259842,4587521,5963777,7471105,8716289,9109505,9306114],"plain":[4980737],"playe":[9568257],"pending":[3735553],"persists":[131073],"private":[8323073],"produce":[1769473],"point":[524289,3014657,4980737,6029314,6750209,7077889,8060930],"physics":[327681,720897,1835009,2031617,3342337,3473412,7864321,8126466,9043969,9830401],"pee":[4259842,6553601,8912897,9306114],"physicalanchortransform":[8454145],"pickup":[4390913,5111809,7274497],"previous":[2686977,2818049],"performed":[3801089],"positiveinfinity":[2883585],"parent":[3342337,7143426,8847361],"peer":[1310721,1572865,3670021,3866627,4259847,5898241,5963777,6094850,6356993,6422530,7340033,7471105,7602177,7929858,8519681,8912897,9306119],"postpone":[1835009,3473409],"part":[196611,393217,524292,1179655,1572866,1703945,1769480,2293768,2752513,2949123,3145729,3342341,3473412,3735556,3801090,3866627,3932161,4128774,4259847,4325377,4521985,4587522,4653058,4784130,5373955,5439489,5898242,5963777,6094849,6225921,6553601,6619142,6684678,6946817,7012353,7143435,7208963,7405573,7471106,7602178,7733250,7929857,8126468,8257541,8323073,8519683,8650753,8716290,8912898,8978433,9175042,9306119,9371667,9568257,9633795,9764869],"primarily":[7733249],"possible":[786433,2359298,2883586,4063233,5242881,8585217,9502722,9764865],"physx":[983042,2097154,2686978,2818050,2883585,5242881,5701634,9502722],"position":[1769474,1966082,2293761,2686977,2818049,4259841,6029314,6750209,7077889,8060930,8388609,9306113],"presented":[8126466],"parts":[589827,1114113,1310722,1769474,2490370,2949122,3342339,3538946,3604482,3735554,3801091,4063233,4128769,4259841,4521986,5046273,5373957,5439489,5570561,6225922,6291458,6946817,7143425,7340034,7602177,7733249,8519681,8781826,8978433,9306113,9371656,9502722,9633793],"party":[3342337,7733249,8126465],"part2":[7143428],"part1":[7143428],"possibility":[3801089],"parsing":[1769473],"peers":[1900545,4259841,4521985,5767170,7602177,8912898,9306113],"player":[5373953,8126468],"primary":[7929858],"partmodule":[3342337,5439489,5505025,5832705,6946817,8781825,9437185],"properties":[655362,983041,1441793,1638401,2097153,2293762,3211266,3276802,3932162,3997698,4063234,4259842,4390914,4587522,4980737,5308418,6029314,6291458,7143425,7274497,7733249,7798785,8060929,8650754,8716289,8781825,8978433,9306113,9371649,9502721,9633793],"pressed":[4194305,5111809],"pivots":[2490369],"pull":[2883585],"pick":[4521985,4980737],"positive":[4653058,5242881,5701633,9240577],"parsenodefromstring":[196609,1769474,7208961],"provided":[2162689,4128769,7143425],"plan":[2686978,2818050],"physicsutils":[327682,720897,9830401],"page":[131073,2228228],"physically":[5570561],"provide":[3342337],"physxperformance":[2818049],"property":[4194306,4456450,4521985,4718594,4784130,4849666,4915202,5046274,5111810,5177346,5242882,5439490,5505026,5570562,5636098,5701634,5767170,5832706,5898242,5963778,6094850,6160386,6225922,6356994,6422530,6553602,6619138,6684674,6750210,6815746,6881282,6946818,7012354,7077890,7405570,7471106,7536642,7602178,7667714,7929858,7995394,8192002,8257538,8323074,8388610,8454146,8585218,8847363,8912898,9043970,9109506,9240578,9699330,9764869],"piece":[9371649],"par":[196609,1769474,2621441,3342337,5898241,7208962,7929857,9043969,9240577,9633793],"posibility":[3801089],"positions":[2162689,8454145],"path":[5177345]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_114.json b/docs/APIv1/fti/FTI_114.json new file mode 100644 index 00000000..e052b4c8 --- /dev/null +++ b/docs/APIv1/fti/FTI_114.json @@ -0,0 +1 @@ +{"ratio":[8192002],"resetting":[1966081],"retract":[4653058],"resetjoint":[655361,983041,1966082,2097153,2686977,2818049,8650753],"root":[524289,7143425],"rule":[4653057],"rescale":[1769473],"represent":[2162689],"right":[1966081,4653057],"reset":[983041,1966083,2097153,4521985],"remember":[1966081],"reaches":[4653057],"reached":[5242881],"rendering":[262146,2162689,2490369,3342337,8060931],"rapidly":[2883585],"representations":[3473409],"remarks":[524289,983041,1179649,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2490369,2555905,2621441,2686977,2752513,2818051,2883585,2949121,3014657,3080193,3145729,3407873,3473409,3538945,3670017,3735553,3866625,4128769,4325377,4521985,4653057,4784129,4980737,5242881,5373953,5439489,5505025,5701633,5767169,5832705,5898241,5963777,6094849,6225921,6488065,6750209,6946817,7077889,7143425,7405569,7471105,7602177,7733249,7929857,8060929,8126465,8192001,8257537,8454145,8519681,8585217,8781825,8847361,8912897,9043969,9175041,9240577,9306113,9371649,9437185,9502721,9633793,9764865],"required":[262145,1769473,2162689,2490369,3080193,3407873,3538945,4653057,5898242,7602177,8060929],"reasons":[2686977,2818049],"rendered":[8060929],"renderername":[8323074],"receive":[8519681],"restict":[3342337,9502721],"rigibody":[4456449],"retracted":[9240578],"rightsample":[3342337],"rated":[2490369,3080193],"range":[2097153,2883585],"reported":[3145729,3801089,5373953],"refuse":[3735553],"require":[1769473,3538945],"releasecable":[393217,4325378,4653057,6488065,8454145,8978433],"role":[4521985],"reserve":[3997697,8585217,8978433],"real":[2883588,5701633,9502721,9568257],"react":[4521985],"reduce":[2883585],"rotation":[1966082,2686980],"reject":[9175041],"rejectinglinks":[9175041,9371653,9633795],"reporttolog":[3801091],"requests":[1114113,2555905,7733249],"render":[2162689],"return":[524289,1441793,1638401,1769473,1900545,2293761,2359297,2818049,2949123,3145729,3407873,3473410,3538945,3670017,3735556,3801093,4128769,4521985,4980737,5373956,7143425,7405570,8126465,8192001,9371655,9764866],"represents":[8323073,9306113],"realcablelength":[2883585,3014657,4063233,5242881,5701634,9502722],"relative":[1966082,2818049,3342337,8257537,9502721],"rbairdragmult":[4980738],"release":[3342337],"responsible":[4653057,8060929],"reporttogui":[3801091],"recieve":[8519681],"result":[983041,1966081,2097153,2686977,2818049,3473409,4128769,8126465],"relased":[3342337],"reports":[3538945],"rigidbody":[1048577,3014658,4063233,4456452,4980742,7864321,9502721],"redirected":[1],"resources":[983041,1179649,1703937,1769473,2097153,2293761,2359297,2686977,2818049,3014657,3473409,4456449,8847361],"released":[3342338,8912897],"renderers":[4259841,8192001,8388609,9306113],"requested":[2228225],"rigid":[1769473,6029313,8060929,8257537,8847361],"rounded":[2883585],"restricted":[2686977],"ready":[720897,2424833,4521985,9175041,9830401],"remove":[5439493,5505029,5832709,6946821,8781829],"regardless":[1966081,2686977,2818049,3801089],"requires":[4128769],"reducing":[6488065],"renderer":[2162691,2490371,3080193,3407873,5308417,6029314,6160385,6750209,6815745,7077889,8060931,8323074,9371649],"randerer":[6029313,6160385,8060929],"reason":[4521985],"replicates":[4980737],"retracting":[3997697,8978433,9699329],"removed":[3342337],"respresented":[2162689],"restore":[3145729,7143425],"resource":[5177345],"returns":[196609,1900545,4063233,5701633,7208961,7405569,9371649,9502721,9764865],"request":[327681,524289,851969,917505,983041,1179649,1245185,1376257,1441793,1507329,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3407873,3473409,3538945,3670017,3735553,3801089,3866625,4128769,4194305,4325377,4456449,4521985,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6094849,6160385,6225921,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175044,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"retry":[4653057],"reference":[196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"resisting":[4980737],"representation":[196609,262145,1900545,3080193,7208961,8060930,8192001],"record":[2293761],"refused":[4521985],"returning":[3735553]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_115.json b/docs/APIv1/fti/FTI_115.json new file mode 100644 index 00000000..0ed1da9e --- /dev/null +++ b/docs/APIv1/fti/FTI_115.json @@ -0,0 +1 @@ +{"shrinked":[6029313,8060929,8192002],"springforce":[2097154,2686980,2818052],"source":[327681,524289,589826,786434,851969,917505,983041,1114114,1179649,1245185,1376257,1441793,1507329,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162690,2293761,2359300,2424833,2490373,2555905,2621442,2686977,2752514,2818049,2883586,2949130,3014662,3080193,3145733,3211265,3276802,3342339,3407876,3473415,3538945,3670018,3735564,3801099,3866625,3932161,4063234,4128773,4194305,4259842,4325377,4456449,4521988,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242882,5373963,5439495,5505033,5570562,5636097,5701634,5767170,5832713,5898241,5963777,6029313,6094849,6160385,6225921,6291458,6356993,6422529,6488065,6553601,6619138,6684673,6750209,6815745,6881285,6946823,7012353,7077891,7143425,7208961,7274497,7340033,7405576,7471105,7536641,7602177,7667715,7733252,7798788,7864321,7929857,7995393,8060930,8126470,8192001,8257537,8323073,8388609,8454146,8519682,8585217,8650753,8716289,8781833,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306115,9371680,9437185,9502726,9568257,9633803,9699329,9764870,9830401],"sort":[65537],"stopepd":[5439489,5505025,5832705,6946817,8781825],"syntax":[327681,524289,851969,917505,983041,1179649,1245185,1376257,1441793,1507329,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3407873,3473409,3538945,3670017,3735553,3801089,3866625,4128769,4194305,4325377,4456449,4521985,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6094849,6160385,6225921,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"sets":[393219,655364,786433,983041,1114113,2097153,2686977,2818049,2883585,3145729,4325377,4653057,6029314,6488065,7536641,7733249,7995393,8060930,8650756,8978435,9371649,9502721],"sample":[9371649],"stops":[786433,1835009,9502721],"subscribers":[8781826],"specifies":[2293761,3342337,3473409,3735553,9568257],"simplestatemachine":[9371649],"specified":[786433,2490369,3014657,3538945,9502721],"stretch":[6488065,8192001],"sourcenode":[4128770],"shift_y":[4194305,5111809],"significant":[4128770],"springs":[1966081],"selectial":[1048577,4980737,7864321],"states":[3801089,9371649],"setupprismaticjoint":[655361,2818050,8650753],"srcpart":[2949122,3473410,3735554,3801090,5373954,7405570,8126466,9371656],"springjoint":[1441794],"setting":[1966081,2686977,2818049,2883585,3801089,4653057,7929857,8847361,9043969,9764865],"setupdistancejoint":[655361,2097154,8650753],"stretching":[2818049,8192001],"surface":[2490369],"setcablelength":[786433,2883586,5242881,9502722],"stop":[4653057],"second":[7143425,9240577,9699329],"settransitionconstraint":[9371653],"synchronously":[3866625],"secondary":[2686977],"sorry":[131073,2228225],"search":[65537,2228225],"setup":[983041,2097153,2686977,2818049,5898241],"send":[196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"speed":[393217,3997699,4653064,8978436,9043971,9240583,9699330],"stack":[2293761,4128769],"successful":[589825,3538945,3801089,9371649],"sent":[3866625,8847361],"settings":[720897,1441793,1507329,1638401,1769473,2686978,2752513,2818050,3342337,4521985,7274497,9240577,9830401],"signficant":[4128769],"startrenderer":[262145,2162689,2490370,6750209,6815745,7077889,8060929],"single":[2031617,2097155,2686982,2818054,2883585,4259841,4325377,4653057,5046273,5242882,5701633,6488065,7602177,7929857,8192001,8257537,8454146,8585217,9043970,9240579,9306113,9502721,9699330],"strict":[9371649],"setmotor":[393217,4325377,4653058,6488065,8257537,8454145,8978433,9043969,9240578,9699329],"set":[983041,1966081,2097153,2555905,2686982,2818053,2883587,3014657,3801089,4521985,4653058,6225921,7536641,7995393,8192001,8323073,8847361,9109505,9175041,9240577,9502721,9764865],"specifics":[9502722],"speeds":[9043969],"sources":[2949121,3735553],"silently":[3801089],"said":[4653057],"supported":[2949121,3735553,5373953,9371649,9437185],"spherical":[655361,2686979,8650753],"strain":[2883585],"separated":[1769473,4653057],"state":[655361,1966084,2162689,2555905,2621442,2752513,3342338,3866626,4259842,4653057,5046273,5439489,6029313,6094849,6356994,6422529,6553601,6815745,6946817,7929858,8060929,8126465,8192001,8257537,8519681,8650753,8847361,8912897,9175044,9306115,9371652,9437186,9633795,9764869],"significantly":[4980737,6029313,8060929,8192001],"share":[6094849,8912897],"slow":[3080193],"starts":[262145,589825,786433,2490369,3014657,3735553,8060929,9371649,9502721],"shrink":[8192001],"stoprenderer":[262145,2162690,8060929],"springdamper":[2097154],"staring":[3538945],"standard":[2686977,2818049],"startphysicalhead":[786433,1835009,3014658,5242881,9502721],"sndpathbipwrong":[4390913,5177346,7274497],"sounds":[5177345],"succeed":[5373953],"specific":[2162689,3080193,6225921,9175041],"site":[131073],"size":[1769476,2293761],"string":[196609,655362,1441795,1638403,1769479,1900547,2293762,2359298,3407874,4194307,4784131,5111811,5177347,5767171,6094851,6160387,7208961,7929858,7995394,8323073,8650754],"selected":[1769473],"start":[2949121,6815745],"situation":[2293761],"setupsourcestatemodel":[9371649],"startlinking":[589825,2949122,3735555,3801089,5373955,9371651],"small":[1769473,2293761],"stretchratio":[6029313,8060929,8192002],"simple":[3342337,7798785],"started":[2490369,3407873,3735553,4456449,5373954,5439489,5505025,5701633,5832706,6029313,6750209,6815745,6946817,7077889,8060929,8781825],"setupfixedjoint":[655361,983042,8650753],"specialized":[9306113],"showing":[3801089],"stopphysicalhead":[786433,1835010,3014657,9502721],"system":[1769474,1966081,2031617,2097155,2293761,2555905,2686982,2752513,2818054,2883585,3801091,3866625,4128769,4521985,4653057,4980737,9830401],"starting":[1769473,3014657],"setcoupleonlinkmode":[1114113,4521986,6225921,7602177,7733249],"support":[4521986,7602177,9175041],"separate":[9502722],"sink":[9633793],"shadernameoverride":[6029313,7995394,8060929],"sound":[3473409,4390913,5177345,7274497],"sourcetransform":[6029313,7077890,8060929],"spindel":[3997698,8978434,9043969,9240577],"similar":[7929857],"subscriber":[8781825],"stretchcable":[393217,4325377,4653057,6488066,8454145,8978433],"sate":[8126465],"safe":[2621441,3473409],"strong":[458753,1769473,2031617,2883585,9437185],"shader":[6029313,7995395,8060929],"special":[2883585],"sense":[3801089],"spring":[2097154,2686977,2818051],"simpley":[4194305,5111809],"setupsphericaljoint":[655361,2686978,8650753],"successfully":[3145729,3538945,3735553,5373954,5439489,6291457,8781825],"strength":[2097153],"springdamperratio":[2686978,2818050],"setter":[8192001],"stopped":[2162691,5505025,6291457,8781825],"stretched":[5701633,6029313,8060929,8192002],"static":[327681,851969,917505,1245185,1376257,1507329,2424833,2949121,3473409,3735553,3801089,5373953,7405569,8126465,9371653,9764865,9830401],"shortcutsdemo":[4194305,5111809],"srcpeer":[3670018],"stay":[2686977],"scope":[1769473,4784129,5439489,6946817]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_116.json b/docs/APIv1/fti/FTI_116.json new file mode 100644 index 00000000..5b16c9c6 --- /dev/null +++ b/docs/APIv1/fti/FTI_116.json @@ -0,0 +1 @@ +{"tools":[3342339,7340033,7864321,8650753],"transition":[9371649,9633793,9764866],"takes":[3342337,8060929],"taken":[4259841,8912897,9306113],"types":[3342337,5767169,8126465],"three":[2686977],"tiny":[1769473],"try":[131073,2228225,5242881,9502721],"techniques":[3080193],"thumb":[4653057],"title":[65537],"triggred":[3866625],"todominantvessel":[4128771],"tranistion":[9175041],"top":[196609,262145,393217,458753,589825,655361,720897,786433,1048577,1114113,1310721,1572865,2228225,3211265,3276801,3604481,3932161,3997697,4063233,4259841,4390913,4587521,5308417,6029313,6291457,7208961,7274497,7340033,7733250,7798785,7864321,8060930,8519681,8650753,8716289,8781825,8978434,9306113,9371650,9437185,9502722,9633793,9830401],"two":[589826,1310722,1769475,2097153,2949121,3342338,3538945,3604482,3735553,3801089,4128770,5373954,5439489,6291458,6946817,7143425,7340034,8060929,8781826,9371654,9633793],"tgtpart":[2949122,3735554,3801090,5373954,9371652,9764866],"text":[1441793,1638401],"targettransform":[6029313,6750210,8060929],"trying":[9240577],"teh":[4718593],"transform":[196609,524292,1835009,2162690,2293763,2359297,2490372,3014660,3407876,4259841,5242881,6029314,6750214,6815746,7077894,7208961,8060930,8388611,9306113],"transitions":[3538945],"turns":[4653057,8847361],"transformation":[8388609],"triggers":[458753,1572866,2031617,2752514,3866625,5439489,5505025,5832705,6291460,6946817,8519682,8781828,8847361,9437185],"track":[7929857],"thrown":[8781825,9764865],"transformations":[8060929],"triggered":[3342337,3866625,4521985,8781825],"typo":[2228225],"trasnform":[524289],"thrid":[8126465],"time":[2162689,2555905,3342337,3735553,4653058,7929857,9240577],"target":[589825,786433,1114114,2162689,2359299,2490372,2621441,2752513,2883585,2949126,3145732,3276802,3342338,3407875,3473411,3538947,3670019,3735558,3801099,3932161,4063234,4128771,4521987,4653058,4849668,4915202,4980738,5242881,5308417,5373962,5439490,5505026,5570561,5701633,5832706,6029313,6750210,6946818,7405570,7733251,7798787,8060929,8126466,8454145,8519681,8781826,9043969,9371658,9502724,9633807,9764868],"targets":[2949121,3735553],"tells":[720897,2162689,2424833,2949121,3473409,3735553,3801089,3866625,3932164,3997697,4259843,4915201,4980737,5373953,5570561,6029314,6225921,6422529,6553601,6815745,7667713,7733252,8060930,8126465,8257537,8847361,8912897,8978433,9306115,9371651,9633793,9830401],"trigger":[2883586,4194305,4390914,4521985,5111809,7274498,9764865],"true":[2555905,2686977,2818049,2949121,3145729,3538945,3735554,3801095,4128769,4521985,5373954,5570561,6225922,6553601,8257537,9371650],"touched":[1966081],"torque":[2686979],"throw":[2621441],"treated":[2162689],"targetspeed":[4653059],"targe":[9633793],"tate":[3276801,4718593,7798785],"temporally":[6029314,7536641,7995393,8060930],"triggering":[8781825],"targetnode":[4128770],"topic":[1,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"traget":[8257537],"times":[2490369],"theoretical":[3801089],"type":[196609,262145,327681,393217,458753,524291,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179650,1245185,1310721,1376257,1441794,1507329,1572865,1638402,1703938,1769477,1900546,1966081,2031618,2097156,2293765,2359299,2424833,2490370,2555905,2686983,2752514,2818055,2883585,3014658,3145731,3211265,3276801,3407875,3473409,3538947,3670018,3735555,3801093,3866626,3932161,3997697,4063233,4128772,4194305,4259842,4390913,4456449,4521986,4587521,4653057,4718594,4784129,4849665,4915201,4980740,5046273,5111809,5177345,5242881,5308417,5373954,5439489,5505025,5570561,5636097,5701633,5767170,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143429,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126466,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9240577,9306114,9371649,9437185,9502721,9633793,9699329,9764865,9830401],"third":[3342337,7733249],"till":[1835009,3473409,3997697,8454145,8978433]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_117.json b/docs/APIv1/fti/FTI_117.json new file mode 100644 index 00000000..13490d60 --- /dev/null +++ b/docs/APIv1/fti/FTI_117.json @@ -0,0 +1 @@ +{"untils":[720897,1245185,9830401],"unbreakable":[1114113,2555908,7733249],"url":[2228225,4390913,5177345,7274497],"undefined":[6750209,7077889],"uninitialized":[9568257],"unexpected":[2293761],"update":[262145,1835009,2490370,2686978,2818050,3080194,3473410,8060929],"utils":[327681,720899,851969,917505,9830403],"unit":[2818049],"unique":[1769473,4784129,6029313,6160385,8060929],"uint":[7471105],"unity3d":[8847361],"unrestricted":[2686977],"unityengine":[983041,1441793,1638401,1966081,2031617,2097153,2293761,2490370,2686977,2818049,3014657,3407874,4980737],"unlocks":[8257537],"unlocked":[2949121],"undocks":[8257537],"uint32":[7471105],"updated":[2293761,3145729],"unity":[2031617,3473409,4194305,5111809],"unspecified":[8126465],"user":[196609,1900546,2359297,2949121,3407873,3473409,3735553,3801089,5373953,7208961,8126465,9371650],"untiy3d":[2359297,3014658,3473410,4456449],"using":[2686977,2818049,3342337,5439489,6946817],"useful":[1900545],"unavailable":[9175041],"updatelink":[262145,3080194,8060930],"used":[1769473,3014657,4653057,5767169,6029313,6160385,7536641,7929857,7995393,8060929,8126465,8912897,9175041,9568257],"unused":[6488065],"unblocked":[3866625],"unchanged":[2686977]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_118.json b/docs/APIv1/fti/FTI_118.json new file mode 100644 index 00000000..fb61ce0c --- /dev/null +++ b/docs/APIv1/fti/FTI_118.json @@ -0,0 +1 @@ +{"valid":[3670017,4980737],"values":[2490369,2883585,4653058,8454145],"vessel":[1310721,4128777,4980741,5963777,7143429,7340033,7471105,8257538,9109505],"vessels":[1310721,3342337,4128770,4521985,6225921,7340033,8716289],"vesselinfo2":[7143426],"vesselinfo1":[7143426],"virtual":[9437185],"various":[3342341,5242881,7208961,7274497,7340033,7864321,8650753,9043969],"view":[327681,524289,851969,917505,983041,1179649,1245185,1376257,1441793,1507329,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3407873,3473409,3538945,3670017,3735553,3801089,3866625,4128769,4194305,4325377,4456449,4521985,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6094849,6160385,6225921,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"vesse":[4587521,8716289,9109505],"versions":[3670017],"vesselinfo":[4587521,8716289,9109506],"vary":[3342337],"value":[327681,393217,524289,851969,917505,1245185,1376257,1441793,1507329,1638401,1769476,1900545,2293761,2359297,2424833,2818049,2883588,3145729,3407873,3538945,3670017,3735553,3801089,4128769,4194305,4325377,4456449,4521985,4653063,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242883,5373953,5439489,5505025,5570561,5636097,5701633,5767170,5832705,5898241,5963778,6094849,6160385,6225921,6356993,6422529,6553601,6619137,6684673,6750210,6815745,6881281,6946817,7012353,7077890,7143425,7405569,7471106,7536641,7602177,7667713,7929857,7995393,8126465,8192002,8257537,8323073,8388609,8454146,8585217,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9568258,9699329,9764868],"verifies":[262145,589825,3407873,3801089,8060929,9371649],"visual":[3473409,8192001],"var":[2949122,3342338,3473409,3735554,3801090,4194311,5111815,5373954,7405569,8126465,9371653,9764865],"variable":[9502721],"version":[327681,524289,851969,917505,983041,1179649,1245185,1376257,1441793,1507329,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3342342,3407873,3473409,3538946,3670017,3735553,3801089,3866625,4128769,4194305,4325377,4456449,4521985,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6094849,6160385,6225921,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830402],"void":[983041,1179649,1703937,1835009,1966081,2031617,2097153,2162689,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3342337,3473410,3866625,4194305,4325377,4653057,4980737,5111809,5439494,5505030,5832710,6488065,6946822,8126465,8323073,8781830,9371650,9437185]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_119.json b/docs/APIv1/fti/FTI_119.json new file mode 100644 index 00000000..f6211324 --- /dev/null +++ b/docs/APIv1/fti/FTI_119.json @@ -0,0 +1 @@ +{"warp":[2555905],"waitforendofframe":[3473409],"wants":[4259841,7929857,9306113],"web":[2228225],"working":[9043969],"world":[9043969,9371649,9633797],"warning":[1703937,2293761,9437185],"works":[5701633],"winch":[393218,3342337,3997698,4653059,6488065,8257539,8454145,8585218,8978437],"warnings":[3801089],"workflow":[8126465],"work":[3342337,3866625]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_121.json b/docs/APIv1/fti/FTI_121.json new file mode 100644 index 00000000..6edce9ec --- /dev/null +++ b/docs/APIv1/fti/FTI_121.json @@ -0,0 +1 @@ +{"yield":[3473409],"yup":[4194305,5111809]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_122.json b/docs/APIv1/fti/FTI_122.json new file mode 100644 index 00000000..e114ba02 --- /dev/null +++ b/docs/APIv1/fti/FTI_122.json @@ -0,0 +1 @@ +{"zavoychinskiy":[196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"zero":[4653059,5242881,5701633],"zeroed":[1966081]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_97.json b/docs/APIv1/fti/FTI_97.json new file mode 100644 index 00000000..20db2158 --- /dev/null +++ b/docs/APIv1/fti/FTI_97.json @@ -0,0 +1 @@ +{"assign":[9764865],"allow":[1114113,2097153,2359297,7733249,7929857,9502721],"applygravity":[1048577,4980738,7864321],"attaches":[786433,3014657,9502721],"anglelimitdamperratio":[2686978],"align":[4259841,4653057,7929857,9306113],"assembly":[327681,524289,851969,917505,983041,1179649,1245185,1376257,1441793,1507329,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3342338,3407873,3473409,3538945,3670017,3735553,3801089,3866625,4128769,4194305,4325377,4456449,4521985,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6094849,6160385,6225921,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"attachmethod":[1769474],"applies":[1048577,4980737,7864321],"applied":[458753,2031618,2686977,2818049,2883585,5701633,9437185],"algorithm":[3080193],"approach":[3670017,9175041],"allocated":[9175041],"actual":[393217,1769473,2031617,2883585,3014657,3801089,4063233,5701633,6225921,6488065,7602177,8454145,8978433,9240577,9371649,9502723],"active":[4128769,6029313,6815745,8060929],"able":[5767169,9633793],"addnode":[196609,1703938,7208961,7602177],"adjust":[5242881,7929857,8060929,9502721],"allows":[1769473,3342337,3866625,7929857,8978433],"addstatehandlers":[9371649],"adjustjoint":[1114113,2555906,7733249],"arbitary":[4784129],"anchors":[786433,2883585,4063234,4259841,5242881,5701633,8388609,9306113,9502723],"affects":[8192001],"accumulated":[1966081],"anglelimitforce":[2686978],"assumes":[2686977,2818049,7405569,9371649,9764865],"assumed":[1769473],"adds":[196609,1703937,7208961],"assuming":[2949121,3735553,3801089,5373953,9371649],"attach":[196614,524291,720897,917505,1179650,1572865,1703939,1769475,1900545,2293763,3014657,3342337,3866625,4128771,4259846,5898243,6094851,6553601,7208967,7602179,7929857,8519681,8912899,9175041,9306118,9830401],"attempted":[4653057],"atmosphere":[4980737],"atatched":[2293761],"avoid":[2883585,3080193,3801089],"alt_y":[4194305,5111809],"api":[65537,131073,196609,262145,327684,393217,458753,524292,589825,655361,720898,786433,851972,917508,983044,1048577,1114113,1179652,1245188,1310721,1376260,1441796,1507332,1572865,1638404,1703940,1769476,1835012,1900548,1966084,2031620,2097156,2162692,2228225,2293764,2359300,2424837,2490372,2555908,2621444,2686980,2752516,2818052,2883588,2949127,3014660,3080196,3145732,3211265,3276801,3342347,3407876,3473414,3538948,3604481,3670020,3735559,3801094,3866628,3932161,3997697,4063233,4128772,4194308,4259841,4325380,4390913,4456452,4521988,4587521,4653060,4718596,4784132,4849668,4915204,4980740,5046276,5111812,5177348,5242884,5308417,5373959,5439492,5505028,5570564,5636100,5701636,5767172,5832708,5898244,5963780,6029313,6094852,6160388,6225924,6291457,6356996,6422532,6488068,6553604,6619140,6684676,6750212,6815748,6881284,6946820,7012356,7077892,7143428,7208964,7274500,7340036,7405572,7471108,7536644,7602180,7667716,7733252,7798788,7864324,7929860,7995396,8060932,8126472,8192004,8257540,8323076,8388612,8454148,8519684,8585220,8650756,8716292,8781828,8847364,8912900,8978436,9043972,9109508,9175044,9240580,9306116,9371657,9437188,9502724,9568261,9633796,9699332,9764868,9830406],"axes":[2686978],"axis":[2686978,2818053],"avalable":[9175041],"accepted":[4521985,9175041],"attempt":[3801089,4653058],"argument":[5439489,5505025,5832705,6946817],"actually":[9240577,9437185],"added":[524289,1769474],"administrator":[131073],"angle":[2686979],"allowing":[1769473],"affect":[1048577,3866625,4653057,4980737,5242881,7864321],"attachnodesutils":[720897,917506,9830401],"accordingly":[2490369,4521985],"add":[1703939,5439493,5505029,5832709,6946821,8781829],"attached":[4128769,8257537],"angular":[1966081,2686979],"actor":[3276802,3342337,3538947,3735554,4718596,5373953,7798786,8126466],"actortype":[3473410],"arbitrary":[4521985,5767169,6094849,6160385],"anymore":[2162689],"available":[2228225,4980737,5963777,7471105,8257537,9175041,9371662,9633798,9764865],"accept":[2490369,9175043],"applying":[2097153,2686977],"allowed":[393217,2490369,2818050,4063233,4325377,4653058,5046273,8978433,9371649,9502722,9633793],"acceptinglinks":[9175041,9633796],"associated":[5373953],"apply":[2097153,2686980,2818052,4980737],"assigning":[9764865],"address":[2228225],"array":[2359297,3407873],"attachnode":[524290,1179653,1703941,1769474,1900546,2293764,4128772,4259841,5898244,7602181,9306113],"air":[4980737],"alaready":[1703937],"affected":[8126466,8454145],"adjustments":[1966081],"aligned":[4259841,6029314,6750209,7077889,8060930,8388609,9306113],"ability":[3342337,4259841,8912897,9306113],"action":[3473410,3735553,3801089,4390913,4521985,4718593,5177345,7274497,8126465,9371649,9633793],"actors":[3473409],"alas":[4980737],"attachnodemethod":[2293761],"actions":[2031617,9175041,9371649,9633793],"automatically":[1,1769473,4653057],"affecting":[1966081],"arguments":[2490369],"appropriate":[8781825],"anglelimit":[2686980],"additionally":[7143425],"assemblies":[3342337]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_98.json b/docs/APIv1/fti/FTI_98.json new file mode 100644 index 00000000..c1692b99 --- /dev/null +++ b/docs/APIv1/fti/FTI_98.json @@ -0,0 +1 @@ +{"breakforce":[2031618,9437186],"brand":[2883585],"breakcurrentlink":[589825,3473412,3538945,5373953,8126465,9371652],"brokenjointlistenerexample":[9437185],"box":[2228225],"broke":[9371650,9633793],"beween":[262145,3407873,8060929],"blocked":[1572865,3866627,8519681],"built":[3342337],"breaking":[3342337,9437185],"bool":[2424833,2555905,2752513,2949121,3145729,3538945,3735554,3801093,3866625,4128769,4521986,5373954,5570561,6225921,6422529,6553601,6815745,8257537,8847361,8912897,9371650],"block":[1441793,1638401,7929857],"base":[3342338,4259841,4980737,5439489,5505025,5832705,6029314,6750209,6946817,7077889,7733249,8060930,8388609,8781825,9306114],"body":[1048577,1966081,4980737,7864321],"boundary":[2883585],"behave":[2555905],"breaks":[589825,1310721,3473409,7143425,7340033,9371649],"bad":[4653057],"bit":[9502721],"break":[2031617,3342337,3473409],"beginning":[6029313,7077889,8060929],"bound":[6094849],"belong":[1310721,1703937,4128769,5898241,7340033],"boolean":[2424833,2555905,2752513,3145729,3538945,3735553,3801092,3866625,4128769,4521987,5373956,5439489,5570561,6225922,6422529,6553601,6815745,6946817,7602178,8257537,8847361,8912897],"bodies":[2818049,6029313,8060929,8847361],"broken":[458753,1835009,1966081,2031617,3473410,5439489,5505025,5832705,6291457,6946818,8781826,8912897,9437186,9633793]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_99.json b/docs/APIv1/fti/FTI_99.json new file mode 100644 index 00000000..8fa78ecf --- /dev/null +++ b/docs/APIv1/fti/FTI_99.json @@ -0,0 +1 @@ +{"clear":[9175041],"currectly":[4259841,6422529,9306113],"coupling":[1769474,3932161,4128771,4521988,6094849,6225921,7143426,7602178,7733249],"creates":[196611,524289,1769473,2293761,4128769,7208963],"created":[1572865,1769474,1966081,2293761,2359297,2752513,2883587,3145730,3342337,3932161,5242881,5439489,5505025,5570561,5701633,5832705,6946817,7733249,8519681,8781825,9502722],"connecting":[8060929],"check":[2228225,3342337,3801091,7929857,8126465],"constrained":[2818049],"cfgattachnodename":[4259841,6094850,7929857,9306113],"crossfeedallowed":[1769474],"connectparts":[2949121,3735553,5373953,9371649],"completely":[1769473,2686977],"connect":[524289,3801089,5767169,9633794],"colliders":[3342337,8060929,8847361],"cfgdependentnodenames":[4259841,7929858,9306113],"creation":[5898241],"cfgmotormaxspeed":[3997697,8978433,9043969,9699330],"couplenode":[4259841,4521985,7602178,9306113],"cfgrenderername":[6029313,6160386,8060929,8323073],"callers":[2490369,2555905,3080193],"controlling":[4653057],"comparing":[6029313,8060929,8192001],"coordinating":[3866625],"create":[524289,1769474,2293762],"coupleonlinkmode":[3145729,3932161,4521985,6225922,7733249,8257537],"changing":[2686977,2818049,4653057],"control":[7929857,9240577],"conditions":[5373953,9043969],"com":[196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"coded":[4194305,5111809],"components":[1966081],"code":[3342337,3670017,3801089,7733249,8126465,9437185,9502721,9764865],"clearly":[3342337],"couple":[1114113,4128769,4259841,4521986,6225921,7602177,7733249,9306113],"core":[3473409],"checked":[3801089,4194305,5111809,5373953],"createnode":[196609,2293762,7208961],"comma":[1769473],"cross":[1769473],"configuration":[2686977,2818049,4653057],"combindations":[2686977,2818049],"caller":[3801089,4521985,7602177],"currentcablelength":[3997697,4653057,6488065,8454146,8978433],"cancels":[262145,589825,2162689,2949121,8060929,9371649],"child":[4128769,7143427],"coupleparts":[1310721,4128770,7340033,7602177],"commands":[4653057],"cfgjointname":[3932161,4784130,7733249],"checkconstraints":[1114113,2359298,3145730,7733249],"connects":[2949121,3735553,3801089,5373953,9371649],"comments":[196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401],"ctrl_y":[4194305,5111809],"cable":[393218,2883586,3014658,3342337,3997700,4063233,4325377,4456449,4653063,5701633,6488067,8257538,8454146,8585218,8978438,9240579,9502722,9699329],"closest":[2883585,4980737],"color":[6029313,7536645,8060929],"compatible":[5767169],"checks":[1114113,2359297,7733249,9371649],"call":[983041,1835009,2097153,2162690,2490369,3080193,3145729,3407873,3473409,4653058,5373953,9371652],"ctrl2_y":[4194305,5111809],"collection":[5439489,5505025,5832705,6946817,8781825],"contain":[2228225],"calls":[8192001,9568257],"classes":[3342337],"consists":[1769473],"common":[720897,1507329,9830401],"choice":[4980737],"connection":[458753,1966081,2031617,2555905,6029314,6750209,7077889,7143426,8060930,9371650,9437185],"calculate":[8454145],"checkifconnected":[9371649],"collision":[8847361],"calling":[2883585,3080193,9437185],"conflict":[3342337],"cancellinking":[589825,2949123,3735554,3801089,5373953,9371651],"complete":[9306113,9568258],"commonconfig":[720897,1507330,9830401],"controls":[7733249],"changed":[2555905,2818049,2883585,3276801,3342337,4718593,7798785,8126465,9437185],"changes":[1114113,3342339,4521985,7733249,8126465,8519681,9764867],"cancel":[3801089,9568257],"contact":[131073],"connectpartswithcheck":[3801089],"choose":[2162689],"ctrl":[4194305,5111809],"cycles":[4521985],"configurablejoint":[983043,1638402,1966082,2097155,2686979,2818051],"consistent":[655361,983041,1966083,2097153,8650753],"cooperate":[7929857],"coloroverride":[6029313,7536642,8060929],"callbacks":[8781825],"createjoint":[1114113,2621441,3145730,7733249],"cancelled":[5373953,9371650],"care":[3342337,7929857,8060929,8192001,9437185],"case":[3342337,4653057,5373953,6094849],"constant":[2490369,5046273],"completed":[2752513,9371649],"copy":[327681,524289,851969,917505,983041,1179649,1245185,1376257,1441793,1507329,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949122,3014657,3080193,3145729,3342338,3407873,3473411,3538945,3670017,3735554,3801090,3866625,4128769,4194306,4325377,4456449,4521985,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111810,5177345,5242881,5373954,5439490,5505026,5570561,5636097,5701633,5767169,5832706,5898241,5963777,6094849,6160385,6225921,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946818,7012353,7077889,7143425,7208961,7274497,7340033,7405570,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126466,8192001,8257537,8323074,8388609,8454145,8519681,8585217,8650753,8716289,8781826,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371654,9437186,9502721,9568257,9633793,9699329,9764866,9830401],"currect":[3342337,9175041],"checkcanlinkto":[589825,3801091,5373953,9371649],"constraints":[1114113,2359297,2686977,2949121,3735553,5373953,7733249,9371649],"coordinate":[1966081],"cfgmaxcablelength":[2883587,3997697,4063233,4325377,4653057,5046274,5242881,8585218,8978433,9502721],"checkstates":[3801090],"cleanup":[2621441],"creating":[589825,1966081,2949121,3538945,5373953,9371649],"closer":[9502721],"collider":[8847362],"couples":[1310721,4128769,7340033],"coupled":[4128769,4521985,6225922],"connected":[1179649,1310721,1966082,2162689,3473411,7143425,7340033,7405569,8126467,9371653,9764865],"cannonical":[655362,983041,2097153,8650754],"coroutine":[1835009,3473409],"cases":[4521985],"consider":[2686978,2818050,3080193,5439489,6946817],"called":[262145,1835009,2031617,2621441,2883585,3080193,3145729,3473410,8060929,8781825],"continue":[3342337],"checkcolliderhits":[262145,3407874,8060929],"config":[196609,720897,1507329,1769473,7208961,7929857,9830401],"callback":[5439490,5505026,5832706,6946818,9437185],"class":[327681,720897,851969,917505,1245185,1376257,1507329,2424833,3342338,3473409,5439489,5505025,5832705,6946817,8781825,9437185,9830402],"checking":[3801089],"cost":[2162689,3080193],"current":[1114113,2883585,3932163,3997697,4194305,4259841,4521985,4653057,4915201,5111809,6225921,6356994,6422529,7667713,7733252,8847361,8978433,9240578,9306113],"calm":[2097153],"change":[2686978,2752513,2818050,3342337,3473409,3670017,4521986,4653058,5439489,6946817,7929857,9764865],"cfglinktype":[2949122,3735554,3801090,4259841,5373954,5767170,9306113,9371650],"configured":[2883585],"connector":[393217,3997697,4194305,4325377,4390914,4653061,5111809,6488065,7274498,8257541,8454145,8585217,8978434],"container":[3342337,7274497]} \ No newline at end of file diff --git a/docs/APIv1/fti/FTI_Files.json b/docs/APIv1/fti/FTI_Files.json new file mode 100644 index 00000000..e75be3e8 --- /dev/null +++ b/docs/APIv1/fti/FTI_Files.json @@ -0,0 +1 @@ +["KAS API v1 - Redirect\u0000index.html\u000018","KAS API v1 - Search\u0000search.html\u000012","General Error\u0000html/GeneralError.htm\u000033","IAttachNodesUtils Methods\u0000html/Methods_T_KASAPIv1_IAttachNodesUtils.htm\u0000100","ILinkRenderer Methods\u0000html/Methods_T_KASAPIv1_ILinkRenderer.htm\u000074","KASAPI.PhysicsUtils Field\u0000html/F_KASAPIv1_KASAPI_PhysicsUtils.htm\u000068","IWinchControl Methods\u0000html/Methods_T_KASAPIv1_IWinchControl.htm\u000080","IKasJointEventsListener Methods\u0000html/Methods_T_KASAPIv1_IKasJointEventsListener.htm\u000055","IAttachNodesUtils.GetTransformForNode Method\u0000html/M_KASAPIv1_IAttachNodesUtils_GetTransformForNode.htm\u0000139","ILinkSource Methods\u0000html/Methods_T_KASAPIv1_ILinkSource.htm\u0000102","IJointUtils Methods\u0000html/Methods_T_KASAPIv1_IJointUtils.htm\u0000109","KASAPI Fields\u0000html/Fields_T_KASAPIv1_KASAPI.htm\u000082","ILinkCableJoint Methods\u0000html/Methods_T_KASAPIv1_ILinkCableJoint.htm\u000077","KASAPI.LinkUtils Field\u0000html/F_KASAPIv1_KASAPI_LinkUtils.htm\u000068","KASAPI.AttachNodesUtils Field\u0000html/F_KASAPIv1_KASAPI_AttachNodesUtils.htm\u000069","IJointUtils.SetupFixedJoint Method\u0000html/M_KASAPIv1_IJointUtils_SetupFixedJoint.htm\u0000123","IPhysicsUtils Methods\u0000html/Methods_T_KASAPIv1_IPhysicsUtils.htm\u000051","ILinkJoint Methods\u0000html/Methods_T_KASAPIv1_ILinkJoint.htm\u000093","IAttachNodesUtils.DropNode Method\u0000html/M_KASAPIv1_IAttachNodesUtils_DropNode.htm\u0000126","KASAPI.JointUtils Field\u0000html/F_KASAPIv1_KASAPI_JointUtils.htm\u000068","ILinkUtils Methods\u0000html/Methods_T_KASAPIv1_ILinkUtils.htm\u000073","KASAPI.KasEvents Field\u0000html/F_KASAPIv1_KASAPI_KasEvents.htm\u000068","IJointUtils.DumpSpringJoint Method\u0000html/M_KASAPIv1_IJointUtils_DumpSpringJoint.htm\u000096","KASAPI.CommonConfig Field\u0000html/F_KASAPIv1_KASAPI_CommonConfig.htm\u000069","ILinkStateEventListener Methods\u0000html/Methods_T_KASAPIv1_ILinkStateEventListener.htm\u000070","IJointUtils.DumpJoint Method\u0000html/M_KASAPIv1_IJointUtils_DumpJoint.htm\u000096","IAttachNodesUtils.AddNode Method\u0000html/M_KASAPIv1_IAttachNodesUtils_AddNode.htm\u0000166","IAttachNodesUtils.ParseNodeFromString Method\u0000html/M_KASAPIv1_IAttachNodesUtils_ParseNodeFromString.htm\u0000449","ILinkCableJoint.StopPhysicalHead Method\u0000html/M_KASAPIv1_ILinkCableJoint_StopPhysicalHead.htm\u0000127","IAttachNodesUtils.NodeId Method\u0000html/M_KASAPIv1_IAttachNodesUtils_NodeId.htm\u0000115","IJointUtils.ResetJoint Method\u0000html/M_KASAPIv1_IJointUtils_ResetJoint.htm\u0000239","IKasJointEventsListener.OnKASJointBreak Method\u0000html/M_KASAPIv1_IKasJointEventsListener_OnKASJointBreak.htm\u0000140","IJointUtils.SetupDistanceJoint Method\u0000html/M_KASAPIv1_IJointUtils_SetupDistanceJoint.htm\u0000204","ILinkRenderer.StopRenderer Method\u0000html/M_KASAPIv1_ILinkRenderer_StopRenderer.htm\u0000151","Page Not Found\u0000html/PageNotFound.htm\u000067","IAttachNodesUtils.CreateNode Method\u0000html/M_KASAPIv1_IAttachNodesUtils_CreateNode.htm\u0000231","ILinkJoint.CheckConstraints Method\u0000html/M_KASAPIv1_ILinkJoint_CheckConstraints.htm\u0000136","KASAPI.isLoaded Field\u0000html/F_KASAPIv1_KASAPI_isLoaded.htm\u000075","ILinkRenderer.StartRenderer Method\u0000html/M_KASAPIv1_ILinkRenderer_StartRenderer.htm\u0000229","ILinkJoint.AdjustJoint Method\u0000html/M_KASAPIv1_ILinkJoint_AdjustJoint.htm\u0000135","ILinkJoint.DropJoint Method\u0000html/M_KASAPIv1_ILinkJoint_DropJoint.htm\u0000116","IJointUtils.SetupSphericalJoint Method\u0000html/M_KASAPIv1_IJointUtils_SetupSphericalJoint.htm\u0000486","ILinkStateEventListener.OnKASLinkedState Method\u0000html/M_KASAPIv1_ILinkStateEventListener_OnKASLinkedState.htm\u0000130","IJointUtils.SetupPrismaticJoint Method\u0000html/M_KASAPIv1_IJointUtils_SetupPrismaticJoint.htm\u0000491","ILinkCableJoint.SetCableLength Method\u0000html/M_KASAPIv1_ILinkCableJoint_SetCableLength.htm\u0000308","ILinkSource.CancelLinking Method\u0000html/M_KASAPIv1_ILinkSource_CancelLinking.htm\u0000330","ILinkCableJoint.StartPhysicalHead Method\u0000html/M_KASAPIv1_ILinkCableJoint_StartPhysicalHead.htm\u0000160","ILinkRenderer.UpdateLink Method\u0000html/M_KASAPIv1_ILinkRenderer_UpdateLink.htm\u0000116","ILinkJoint.CreateJoint Method\u0000html/M_KASAPIv1_ILinkJoint_CreateJoint.htm\u0000191","ILinkTarget Properties\u0000html/Properties_T_KASAPIv1_ILinkTarget.htm\u000045","IKasLinkEvent Properties\u0000html/Properties_T_KASAPIv1_IKasLinkEvent.htm\u000054","KASAPIv1 Namespace\u0000html/N_KASAPIv1.htm\u0000555","ILinkRenderer.CheckColliderHits Method\u0000html/M_KASAPIv1_ILinkRenderer_CheckColliderHits.htm\u0000135","ILinkSource.BreakCurrentLink Method\u0000html/M_KASAPIv1_ILinkSource_BreakCurrentLink.htm\u0000440","ILinkSource.LinkToTarget Method (LinkActorType, ILinkTarget)\u0000html/M_KASAPIv1_ILinkSource_LinkToTarget_1.htm\u0000174","ILinkSource.LinkToTarget Method\u0000html/Overload_KASAPIv1_ILinkSource_LinkToTarget.htm\u000054","ILinkUtils.FindLinkPeer Method\u0000html/M_KASAPIv1_ILinkUtils_FindLinkPeer.htm\u0000146","ILinkSource.StartLinking Method\u0000html/M_KASAPIv1_ILinkSource_StartLinking.htm\u0000399","ILinkSource.CheckCanLinkTo Method\u0000html/M_KASAPIv1_ILinkSource_CheckCanLinkTo.htm\u0000485","ILinkStateEventListener.OnKASNodeBlockedState Method\u0000html/M_KASAPIv1_ILinkStateEventListener_OnKASNodeBlockedState.htm\u0000170","ILinkJoint Properties\u0000html/Properties_T_KASAPIv1_ILinkJoint.htm\u000078","IWinchControl Properties\u0000html/Properties_T_KASAPIv1_IWinchControl.htm\u000099","ILinkCableJoint Properties\u0000html/Properties_T_KASAPIv1_ILinkCableJoint.htm\u000085","ILinkUtils.CoupleParts Method\u0000html/M_KASAPIv1_ILinkUtils_CoupleParts.htm\u0000297","ICommonConfig.keyDropConnector Property\u0000html/P_KASAPIv1_ICommonConfig_keyDropConnector.htm\u0000244","ILinkPeer Properties\u0000html/Properties_T_KASAPIv1_ILinkPeer.htm\u0000224","IWinchControl.ReleaseCable Method\u0000html/M_KASAPIv1_IWinchControl_ReleaseCable.htm\u000097","ICommonConfig Properties\u0000html/Properties_T_KASAPIv1_ICommonConfig.htm\u000068","ILinkCableJoint.headRb Property\u0000html/P_KASAPIv1_ILinkCableJoint_headRb.htm\u000095","ILinkJoint.SetCoupleOnLinkMode Method\u0000html/M_KASAPIv1_ILinkJoint_SetCoupleOnLinkMode.htm\u0000233","ILinkVesselInfo Properties\u0000html/Properties_T_KASAPIv1_ILinkVesselInfo.htm\u000051","IWinchControl.SetMotor Method\u0000html/M_KASAPIv1_IWinchControl_SetMotor.htm\u0000385","IKasLinkEvent.actor Property\u0000html/P_KASAPIv1_IKasLinkEvent_actor.htm\u000084","ILinkJoint.cfgJointName Property\u0000html/P_KASAPIv1_ILinkJoint_cfgJointName.htm\u000094","IKasLinkEvent.target Property\u0000html/P_KASAPIv1_IKasLinkEvent_target.htm\u000077","ILinkJoint.linkTarget Property\u0000html/P_KASAPIv1_ILinkJoint_linkTarget.htm\u000087","IPhysicsUtils.ApplyGravity Method\u0000html/M_KASAPIv1_IPhysicsUtils_ApplyGravity.htm\u0000198","ILinkCableJoint.cfgMaxCableLength Property\u0000html/P_KASAPIv1_ILinkCableJoint_cfgMaxCableLength.htm\u000094","ICommonConfig.keyPickupConnector Property\u0000html/P_KASAPIv1_ICommonConfig_keyPickupConnector.htm\u0000244","ICommonConfig.sndPathBipWrong Property\u0000html/P_KASAPIv1_ICommonConfig_sndPathBipWrong.htm\u000089","ILinkCableJoint.deployedCableLength Property\u0000html/P_KASAPIv1_ILinkCableJoint_deployedCableLength.htm\u0000166","ILinkSource Properties\u0000html/Properties_T_KASAPIv1_ILinkSource.htm\u000060","ILinkSource.LinkToTarget Method (ILinkTarget)\u0000html/M_KASAPIv1_ILinkSource_LinkToTarget.htm\u0000449","IKasEvents.OnLinkCreated Property\u0000html/P_KASAPIv1_IKasEvents_OnLinkCreated.htm\u0000346","IKasEvents.OnStopLinking Property\u0000html/P_KASAPIv1_IKasEvents_OnStopLinking.htm\u0000322","ILinkJoint.isLinked Property\u0000html/P_KASAPIv1_ILinkJoint_isLinked.htm\u000089","ILinkPeer.otherPeer Property\u0000html/P_KASAPIv1_ILinkPeer_otherPeer.htm\u000088","ILinkCableJoint.realCableLength Property\u0000html/P_KASAPIv1_ILinkCableJoint_realCableLength.htm\u0000159","ILinkPeer.cfgLinkType Property\u0000html/P_KASAPIv1_ILinkPeer_cfgLinkType.htm\u0000108","IKasEvents.OnStartLinking Property\u0000html/P_KASAPIv1_IKasEvents_OnStartLinking.htm\u0000322","ILinkPeer.attachNode Property\u0000html/P_KASAPIv1_ILinkPeer_attachNode.htm\u0000122","ILinkPeer.linkModuleIndex Property\u0000html/P_KASAPIv1_ILinkPeer_linkModuleIndex.htm\u0000102","ILinkRenderer Properties\u0000html/Properties_T_KASAPIv1_ILinkRenderer.htm\u0000167","ILinkPeer.cfgAttachNodeName Property\u0000html/P_KASAPIv1_ILinkPeer_cfgAttachNodeName.htm\u0000155","ILinkRenderer.cfgRendererName Property\u0000html/P_KASAPIv1_ILinkRenderer_cfgRendererName.htm\u000093","ILinkJoint.coupleOnLinkMode Property\u0000html/P_KASAPIv1_ILinkJoint_coupleOnLinkMode.htm\u0000151","IKasEvents Properties\u0000html/Properties_T_KASAPIv1_IKasEvents.htm\u000083","ILinkPeer.linkState Property\u0000html/P_KASAPIv1_ILinkPeer_linkState.htm\u000083","ILinkPeer.isLinked Property\u0000html/P_KASAPIv1_ILinkPeer_isLinked.htm\u000089","IWinchControl.StretchCable Method\u0000html/M_KASAPIv1_IWinchControl_StretchCable.htm\u000098","ILinkPeer.isNodeBlocked Property\u0000html/P_KASAPIv1_ILinkPeer_isNodeBlocked.htm\u0000100","ILinkPeer.part Property\u0000html/P_KASAPIv1_ILinkPeer_part.htm\u000080","ILinkVesselInfo.part Property\u0000html/P_KASAPIv1_ILinkVesselInfo_part.htm\u000080","ILinkRenderer.targetTransform Property\u0000html/P_KASAPIv1_ILinkRenderer_targetTransform.htm\u0000118","ILinkRenderer.isStarted Property\u0000html/P_KASAPIv1_ILinkRenderer_isStarted.htm\u000088","IKasLinkEvent.source Property\u0000html/P_KASAPIv1_IKasLinkEvent_source.htm\u000077","IKasEvents.OnLinkBroken Property\u0000html/P_KASAPIv1_IKasEvents_OnLinkBroken.htm\u0000345","ILinkSource.linkJoint Property\u0000html/P_KASAPIv1_ILinkSource_linkJoint.htm\u000085","ILinkRenderer.sourceTransform Property\u0000html/P_KASAPIv1_ILinkRenderer_sourceTransform.htm\u0000118","ILinkUtils.DecoupleParts Method\u0000html/M_KASAPIv1_ILinkUtils_DecoupleParts.htm\u0000250","IAttachNodesUtils Interface\u0000html/T_KASAPIv1_IAttachNodesUtils.htm\u0000138","ICommonConfig Interface\u0000html/T_KASAPIv1_ICommonConfig.htm\u0000107","ILinkUtils Interface\u0000html/T_KASAPIv1_ILinkUtils.htm\u0000110","ILinkSource.linkTarget Property\u0000html/P_KASAPIv1_ILinkSource_linkTarget.htm\u0000193","ILinkPeer.linkPartId Property\u0000html/P_KASAPIv1_ILinkPeer_linkPartId.htm\u0000102","ILinkRenderer.colorOverride Property\u0000html/P_KASAPIv1_ILinkRenderer_colorOverride.htm\u000099","ILinkPeer.coupleNode Property\u0000html/P_KASAPIv1_ILinkPeer_coupleNode.htm\u0000145","ILinkJoint.linkSource Property\u0000html/P_KASAPIv1_ILinkJoint_linkSource.htm\u000087","ILinkJoint Interface\u0000html/T_KASAPIv1_ILinkJoint.htm\u0000214","IKasLinkEvent Interface\u0000html/T_KASAPIv1_IKasLinkEvent.htm\u000092","IPhysicsUtils Interface\u0000html/T_KASAPIv1_IPhysicsUtils.htm\u000089","ILinkPeer.cfgDependentNodeNames Property\u0000html/P_KASAPIv1_ILinkPeer_cfgDependentNodeNames.htm\u0000225","ILinkRenderer.shaderNameOverride Property\u0000html/P_KASAPIv1_ILinkRenderer_shaderNameOverride.htm\u000096","ILinkRenderer Interface\u0000html/T_KASAPIv1_ILinkRenderer.htm\u0000286","LinkActorType Enumeration\u0000html/T_KASAPIv1_LinkActorType.htm\u0000313","ILinkRenderer.stretchRatio Property\u0000html/P_KASAPIv1_ILinkRenderer_stretchRatio.htm\u0000144","IWinchControl.isConnectorLocked Property\u0000html/P_KASAPIv1_IWinchControl_isConnectorLocked.htm\u0000167","ILinkSource.linkRenderer Property\u0000html/P_KASAPIv1_ILinkSource_linkRenderer.htm\u0000142","ILinkPeer.nodeTransform Property\u0000html/P_KASAPIv1_ILinkPeer_nodeTransform.htm\u0000100","IWinchControl.currentCableLength Property\u0000html/P_KASAPIv1_IWinchControl_currentCableLength.htm\u0000151","ILinkStateEventListener Interface\u0000html/T_KASAPIv1_ILinkStateEventListener.htm\u0000138","IWinchControl.cfgMaxCableLength Property\u0000html/P_KASAPIv1_IWinchControl_cfgMaxCableLength.htm\u0000101","IJointUtils Interface\u0000html/T_KASAPIv1_IJointUtils.htm\u0000147","ILinkVesselInfo Interface\u0000html/T_KASAPIv1_ILinkVesselInfo.htm\u000090","IKasEvents Interface\u0000html/T_KASAPIv1_IKasEvents.htm\u0000400","ILinkRenderer.isPhysicalCollider Property\u0000html/P_KASAPIv1_ILinkRenderer_isPhysicalCollider.htm\u0000132","ILinkPeer.isLocked Property\u0000html/P_KASAPIv1_ILinkPeer_isLocked.htm\u0000154","IWinchControl Interface\u0000html/T_KASAPIv1_IWinchControl.htm\u0000188","IWinchControl.motorTargetSpeed Property\u0000html/P_KASAPIv1_IWinchControl_motorTargetSpeed.htm\u0000136","ILinkVesselInfo.vesselInfo Property\u0000html/P_KASAPIv1_ILinkVesselInfo_vesselInfo.htm\u000084","LinkState Enumeration\u0000html/T_KASAPIv1_LinkState.htm\u0000228","IWinchControl.motorCurrentSpeed Property\u0000html/P_KASAPIv1_IWinchControl_motorCurrentSpeed.htm\u0000192","ILinkPeer Interface\u0000html/T_KASAPIv1_ILinkPeer.htm\u0000301","ILinkSource Interface\u0000html/T_KASAPIv1_ILinkSource.htm\u00001146","IKasJointEventsListener Interface\u0000html/T_KASAPIv1_IKasJointEventsListener.htm\u0000218","ILinkCableJoint Interface\u0000html/T_KASAPIv1_ILinkCableJoint.htm\u0000350","GUILinkMode Enumeration\u0000html/T_KASAPIv1_GUILinkMode.htm\u0000116","ILinkTarget Interface\u0000html/T_KASAPIv1_ILinkTarget.htm\u0000340","IWinchControl.cfgMotorMaxSpeed Property\u0000html/P_KASAPIv1_IWinchControl_cfgMotorMaxSpeed.htm\u000090","ILinkTarget.linkSource Property\u0000html/P_KASAPIv1_ILinkTarget_linkSource.htm\u0000271","KASAPI Class\u0000html/T_KASAPIv1_KASAPI.htm\u0000124"] \ No newline at end of file diff --git a/docs/APIv1/html/F_KASAPIv1_KASAPI_AttachNodesUtils.htm b/docs/APIv1/html/F_KASAPIv1_KASAPI_AttachNodesUtils.htm new file mode 100644 index 00000000..9800ccbd --- /dev/null +++ b/docs/APIv1/html/F_KASAPIv1_KASAPI_AttachNodesUtils.htm @@ -0,0 +1,26 @@ +KASAPI.AttachNodesUtils Field

    KASAPIAttachNodesUtils Field

    KAS attach nodes utils.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public static IAttachNodesUtils AttachNodesUtils
    Request Example + View Source

    Field Value

    Type: IAttachNodesUtils
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/F_KASAPIv1_KASAPI_CommonConfig.htm b/docs/APIv1/html/F_KASAPIv1_KASAPI_CommonConfig.htm new file mode 100644 index 00000000..4e4c7e64 --- /dev/null +++ b/docs/APIv1/html/F_KASAPIv1_KASAPI_CommonConfig.htm @@ -0,0 +1,26 @@ +KASAPI.CommonConfig Field

    KASAPICommonConfig Field

    KAS common config settings.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public static ICommonConfig CommonConfig
    Request Example + View Source

    Field Value

    Type: ICommonConfig
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/F_KASAPIv1_KASAPI_JointUtils.htm b/docs/APIv1/html/F_KASAPIv1_KASAPI_JointUtils.htm new file mode 100644 index 00000000..42bccaaa --- /dev/null +++ b/docs/APIv1/html/F_KASAPIv1_KASAPI_JointUtils.htm @@ -0,0 +1,26 @@ +KASAPI.JointUtils Field

    KASAPIJointUtils Field

    KAS joints untils.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public static IJointUtils JointUtils
    Request Example + View Source

    Field Value

    Type: IJointUtils
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/F_KASAPIv1_KASAPI_KasEvents.htm b/docs/APIv1/html/F_KASAPIv1_KASAPI_KasEvents.htm new file mode 100644 index 00000000..84980e3c --- /dev/null +++ b/docs/APIv1/html/F_KASAPIv1_KASAPI_KasEvents.htm @@ -0,0 +1,26 @@ +KASAPI.KasEvents Field

    KASAPIKasEvents Field

    KAS global events.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public static IKasEvents KasEvents
    Request Example + View Source

    Field Value

    Type: IKasEvents
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/F_KASAPIv1_KASAPI_LinkUtils.htm b/docs/APIv1/html/F_KASAPIv1_KASAPI_LinkUtils.htm new file mode 100644 index 00000000..44a8c391 --- /dev/null +++ b/docs/APIv1/html/F_KASAPIv1_KASAPI_LinkUtils.htm @@ -0,0 +1,26 @@ +KASAPI.LinkUtils Field

    KASAPILinkUtils Field

    KAS link utils.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public static ILinkUtils LinkUtils
    Request Example + View Source

    Field Value

    Type: ILinkUtils
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/F_KASAPIv1_KASAPI_PhysicsUtils.htm b/docs/APIv1/html/F_KASAPIv1_KASAPI_PhysicsUtils.htm new file mode 100644 index 00000000..f6eaa77f --- /dev/null +++ b/docs/APIv1/html/F_KASAPIv1_KASAPI_PhysicsUtils.htm @@ -0,0 +1,26 @@ +KASAPI.PhysicsUtils Field

    KASAPIPhysicsUtils Field

    KAS physics utils.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public static IPhysicsUtils PhysicsUtils
    Request Example + View Source

    Field Value

    Type: IPhysicsUtils
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/F_KASAPIv1_KASAPI_isLoaded.htm b/docs/APIv1/html/F_KASAPIv1_KASAPI_isLoaded.htm new file mode 100644 index 00000000..901bde55 --- /dev/null +++ b/docs/APIv1/html/F_KASAPIv1_KASAPI_isLoaded.htm @@ -0,0 +1,26 @@ +KASAPI.isLoaded Field

    KASAPIisLoaded Field

    Tells if API V1 was loaded and ready to use.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public static bool isLoaded
    Request Example + View Source

    Field Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Fields_T_KASAPIv1_KASAPI.htm b/docs/APIv1/html/Fields_T_KASAPIv1_KASAPI.htm new file mode 100644 index 00000000..fd8c014d --- /dev/null +++ b/docs/APIv1/html/Fields_T_KASAPIv1_KASAPI.htm @@ -0,0 +1,10 @@ +KASAPI Fields

    KASAPI Fields

    The KASAPI type exposes the following members.

    Fields
    +   + NameDescription
    Public fieldStatic memberAttachNodesUtils
    KAS attach nodes utils.
    Public fieldStatic memberCommonConfig
    KAS common config settings.
    Public fieldStatic memberisLoaded
    Tells if API V1 was loaded and ready to use.
    Public fieldStatic memberJointUtils
    KAS joints untils.
    Public fieldStatic memberKasEvents
    KAS global events.
    Public fieldStatic memberLinkUtils
    KAS link utils.
    Public fieldStatic memberPhysicsUtils
    KAS physics utils.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/GeneralError.htm b/docs/APIv1/html/GeneralError.htm new file mode 100644 index 00000000..257af1bf --- /dev/null +++ b/docs/APIv1/html/GeneralError.htm @@ -0,0 +1,29 @@ + + + + + + + + + General Error + + + + + + + + + + +
    +

    We're sorry, a general error has occurred.

    +

    Please try to load the page again. If the error persists, please contact the site administrator.

    +
    + + + diff --git a/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_AddNode.htm b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_AddNode.htm new file mode 100644 index 00000000..8a44adeb --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_AddNode.htm @@ -0,0 +1,34 @@ +IAttachNodesUtils.AddNode Method

    IAttachNodesUtilsAddNode Method

    Adds an existing attach node into the part.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void AddNode(
    +	Part part,
    +	AttachNode attachNode
    +)
    Request Example + View Source

    Parameters

    part
    Type: (Default Namespace)Part
    The part to add the node into.
    attachNode
    Type: (Default Namespace)AttachNode
    The attach node to add.
    Remarks
    + If the node doesn't belong to the part, then the owner will be fixed and a warning logged. + Normally, it's not expected to add an attach node into a part that doesn't own it. If the node + is alaready in the part, then this method does nothing. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_CreateNode.htm b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_CreateNode.htm new file mode 100644 index 00000000..1d33ba82 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_CreateNode.htm @@ -0,0 +1,39 @@ +IAttachNodesUtils.CreateNode Method

    IAttachNodesUtilsCreateNode Method

    Creates a new attach node on the part.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    AttachNode CreateNode(
    +	Part part,
    +	string nodeName,
    +	Transform nodeTransform
    +)
    Request Example + View Source

    Parameters

    part
    Type: (Default Namespace)Part
    Part to create node for.
    nodeName
    Type: SystemString
    Name of the node to create.
    nodeTransform
    Type: UnityEngineTransform
    Transform that specifies node position and orientation.

    Return Value

    Type: AttachNode
    New attach node atatched to the part.
    Remarks
    + It's expected there is no node with the same name on the part already. If there is one, then + no extra node will be created, and the properties of the existing node will be updated instead + (see below). However, it's an unexpected situation, so a warning record will be logged. +

    + The node will have the following properties: +

    • Size is "small".
    • Attach method is FIXED_JOINT.
    • Node type is Stack.

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_DropNode.htm b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_DropNode.htm new file mode 100644 index 00000000..634692db --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_DropNode.htm @@ -0,0 +1,31 @@ +IAttachNodesUtils.DropNode Method

    IAttachNodesUtilsDropNode Method

    Drops the attach node on the part.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void DropNode(
    +	Part part,
    +	AttachNode attachNode
    +)
    Request Example + View Source

    Parameters

    part
    Type: (Default Namespace)Part
    The part to drop the node on.
    attachNode
    Type: (Default Namespace)AttachNode
    The attach node to drop.
    Remarks
    Doesn't drop the node if it's connected to a part.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_GetTransformForNode.htm b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_GetTransformForNode.htm new file mode 100644 index 00000000..f77333d0 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_GetTransformForNode.htm @@ -0,0 +1,29 @@ +IAttachNodesUtils.GetTransformForNode Method

    IAttachNodesUtilsGetTransformForNode Method

    Gets or creates a transform object for the attach node.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Transform GetTransformForNode(
    +	Part ownerPart,
    +	AttachNode an
    +)
    Request Example + View Source

    Parameters

    ownerPart
    Type: (Default Namespace)Part
    The part that owns the node.
    an
    Type: (Default Namespace)AttachNode
    The attach node to create the transform for.

    Return Value

    Type: Transform
    The object that matches the attach node connect point.
    Remarks
    The trasnform is added into the root of the part model.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_NodeId.htm b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_NodeId.htm new file mode 100644 index 00000000..22caf729 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_NodeId.htm @@ -0,0 +1,28 @@ +IAttachNodesUtils.NodeId Method

    IAttachNodesUtilsNodeId Method

    Returns a user friendly attach node representation.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string NodeId(
    +	AttachNode an
    +)
    Request Example + View Source

    Parameters

    an
    Type: (Default Namespace)AttachNode
    The node to get the string for.

    Return Value

    Type: String
    The user friendly node description.
    Remarks
    It gives on the node and it's peers, which is useful when logging.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_ParseNodeFromString.htm b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_ParseNodeFromString.htm new file mode 100644 index 00000000..5df7fa64 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IAttachNodesUtils_ParseNodeFromString.htm @@ -0,0 +1,51 @@ +IAttachNodesUtils.ParseNodeFromString Method

    IAttachNodesUtilsParseNodeFromString Method

    Creates an attach node form the part's config definition string.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    AttachNode ParseNodeFromString(
    +	Part ownerPart,
    +	string def,
    +	string nodeId
    +)
    Request Example + View Source

    Parameters

    ownerPart
    Type: (Default Namespace)Part
    + The part to parse the node for. The new node will not be added to this part, but the + required settings from this part will be used to produce the node (e.g. the rescale + factor). +
    def
    Type: SystemString
    The string to parse.
    nodeId
    Type: SystemString
    The ID of the new node. Keep it unique in scope of the part.

    Return Value

    Type: AttachNode
    + The new node or null if parsing has failed. The created node will not be automatically + added to the part. +
    Remarks

    + The string format is exactly the same as for the part's attach node definition. It consists of + 10 parts, separated by a comma. Only the first 6 parts are mandatory, the others are optional. + The format is the following: + Position(X,Y,Z), Orientation(X,Y,Z), Size, AttachMethod, CrossFeedAllowed, IsRigid

    • Position is defined by the first 3 float numbers.
    • Orientation is defined by the next 3 float numbers.
    • Size is an integer number starting from 0 (tiny). If the size is omitted, it's + assumed to be 1 (small). When coupling two nodes, the minumim size of the two is + selected to create the actual joint. +
    • AttachMethod is a node attach type, which must be 0.
    • CrossFeedAllowed is 1 when the resources can flow thru this node, and 0 + when the flow must be forbidden. Note, that in order to enable the cross feed mode, the + oppossing node must be allowing it as well. If ommited, then the value is 1. +
    • IsRigid is 0 for the normal part joint, which allows some degree of freedom + under a strong force. Value 1 will instruct to create a completely locked joint. If + omitted, then the value is 0. Note, the the rigid joint will be created if any + of the two coupling nodes require it. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IJointUtils_DumpJoint.htm b/docs/APIv1/html/M_KASAPIv1_IJointUtils_DumpJoint.htm new file mode 100644 index 00000000..0a7df20a --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IJointUtils_DumpJoint.htm @@ -0,0 +1,28 @@ +IJointUtils.DumpJoint Method

    IJointUtilsDumpJoint Method

    Outputs all properties of the joint to the string.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string DumpJoint(
    +	ConfigurableJoint joint
    +)
    Request Example + View Source

    Parameters

    joint
    Type: UnityEngineConfigurableJoint
    Joint to dump settings for.

    Return Value

    Type: String
    Linefeed formatted block of text.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IJointUtils_DumpSpringJoint.htm b/docs/APIv1/html/M_KASAPIv1_IJointUtils_DumpSpringJoint.htm new file mode 100644 index 00000000..e90b34fb --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IJointUtils_DumpSpringJoint.htm @@ -0,0 +1,28 @@ +IJointUtils.DumpSpringJoint Method

    IJointUtilsDumpSpringJoint Method

    Outputs all properties of the joint to the string.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string DumpSpringJoint(
    +	SpringJoint joint
    +)
    Request Example + View Source

    Parameters

    joint
    Type: UnityEngineSpringJoint
    Joint to dump settings for.

    Return Value

    Type: String
    Linefeed formatted block of text.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IJointUtils_ResetJoint.htm b/docs/APIv1/html/M_KASAPIv1_IJointUtils_ResetJoint.htm new file mode 100644 index 00000000..195b6769 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IJointUtils_ResetJoint.htm @@ -0,0 +1,41 @@ +IJointUtils.ResetJoint Method

    IJointUtilsResetJoint Method

    Initializes joint to a consistent state.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void ResetJoint(
    +	ConfigurableJoint joint
    +)
    Request Example + View Source

    Parameters

    joint
    Type: UnityEngineConfigurableJoint
    Joint to reset.
    Remarks

    + It's not the same as creating a default joint. The state is consistent but different from the + default: +

    • All linear and angular drive modes set to Locked. +
    • All drives, springs and limits are zeroed.
    • The coordinate system is reset to local. Y looks up, and X looks right.
    • + The connected body is not touched. Connection, if any, won't be broken on the reset. +
    • + Any state accumulated so far (e.g. relative rotation or position) will be lost, and the joint + will remember the new relative rotation/position of the connected objects. +

    + Use this method before setting up a new or existing joint. By resetting the joint, you ensure + it's in a consistent state, and the further adjustments will always give the same result + regardless to how the joint was created and what components were affecting it. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupDistanceJoint.htm b/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupDistanceJoint.htm new file mode 100644 index 00000000..fa36532b --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupDistanceJoint.htm @@ -0,0 +1,41 @@ +IJointUtils.SetupDistanceJoint Method

    IJointUtilsSetupDistanceJoint Method

    Sets up a cannonical distance joint.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void SetupDistanceJoint(
    +	ConfigurableJoint joint,
    +	float springForce = 0f,
    +	float springDamper = 0f,
    +	float maxDistance = ∞f
    +)
    Request Example + View Source

    Parameters

    joint
    Type: UnityEngineConfigurableJoint
    The joint to setup.
    springForce (Optional)
    Type: SystemSingle
    + The strength of the spring that keeps the two objects in range. +
    springDamper (Optional)
    Type: SystemSingle
    The force to apply to calm down the oscillations.
    maxDistance (Optional)
    Type: SystemSingle
    + The maximum distance to allow between the obejcts before applying the spring force. +
    Remarks
    + This method does not set all the properties of the PhysX joint! To get a consistent + result, the joint must be reset via a ResetJoint(ConfigurableJoint) call before invoking this + method. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupFixedJoint.htm b/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupFixedJoint.htm new file mode 100644 index 00000000..fb102650 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupFixedJoint.htm @@ -0,0 +1,34 @@ +IJointUtils.SetupFixedJoint Method

    IJointUtilsSetupFixedJoint Method

    Sets up a cannonical fixed joint.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void SetupFixedJoint(
    +	ConfigurableJoint joint
    +)
    Request Example + View Source

    Parameters

    joint
    Type: UnityEngineConfigurableJoint
    The joint to setup.
    Remarks
    + This method does not set all the properties of the PhysX joint! To get a consistent + result, the joint must be reset via a ResetJoint(ConfigurableJoint) call before invoking this + method. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupPrismaticJoint.htm b/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupPrismaticJoint.htm new file mode 100644 index 00000000..e71a1aaa --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupPrismaticJoint.htm @@ -0,0 +1,75 @@ +IJointUtils.SetupPrismaticJoint Method

    IJointUtilsSetupPrismaticJoint Method

    Sets up joint so what it becomes a prismatic joint.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void SetupPrismaticJoint(
    +	ConfigurableJoint joint,
    +	float springForce = 0f,
    +	float springDamperRatio = 0.1f,
    +	float maxSpringForce = ∞f,
    +	float distanceLimit = ∞f,
    +	float distanceLimitForce = 0f,
    +	float distanceLimitDamperRatio = 0.1f
    +)
    Request Example + View Source

    Parameters

    joint
    Type: UnityEngineConfigurableJoint
    Joint to setup.
    springForce (Optional)
    Type: SystemSingle
    + Force to apply per unit of linear stretching to return the joined bodies back to the original + distance. Also, see remarks to the method. +
    springDamperRatio (Optional)
    Type: SystemSingle
    + Percentage of the spring force to use for dampering oscillation effect. +
    maxSpringForce (Optional)
    Type: SystemSingle
    + Maximum spring force to apply when joint distance deviates from the original. +
    distanceLimit (Optional)
    Type: SystemSingle
    + Maximum allowed distance relative to the original value. Also, see remarks to the method. +
    distanceLimitForce (Optional)
    Type: SystemSingle
    + Force to apply to keep distance in limits. If it's 0 then the limit is impassible. +
    distanceLimitDamperRatio (Optional)
    Type: SystemSingle
    + Percentage of the limit force to use for dampering oscillation effect. +
    Remarks

    + It's a standard PhysX configuration. Main axis is set to Z. Moving along it is allowed but can + be constrained by a spring and limit. Drive mode is set to + Position. +

    + Only main axis linear settings are changed. Consider using ResetJoint(ConfigurableJoint) to + eliminate side effects from the previous settings of the joint. +

    + Pure prismatic joint assumes 5 out of the 6 degrees of freedom to be locked (everything, + except the main axis linear motion). Consider setting enablePreprocessing + to true since it may improve PhysXperformance. +

    + For performance reasons some parameters combindations may result in different motion modes: +

    • + When springForce is Infinite or distanceLimit is + 0 the main axis linear movement mode is set to + Locked. If you plan to change force/limit don't forget + to update the modes as well. +
    • + When springForce is 0 and distanceLimit is + Infinite the main axis linear movement mode is set to + Free. If you plan to change either of the parameters + don't forget to update the mode as well. +

    + Regardless to the modes set all the other parameters are also applied. I.e. you don't need to + re-apply them when changing mode. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupSphericalJoint.htm b/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupSphericalJoint.htm new file mode 100644 index 00000000..51caeaec --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IJointUtils_SetupSphericalJoint.htm @@ -0,0 +1,71 @@ +IJointUtils.SetupSphericalJoint Method

    IJointUtilsSetupSphericalJoint Method

    Sets up joint so what it becomes a spherical hinge joint.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void SetupSphericalJoint(
    +	ConfigurableJoint joint,
    +	float springForce = 0f,
    +	float springDamperRatio = 0.1f,
    +	float maxSpringForce = ∞f,
    +	float angleLimit = ∞f,
    +	float angleLimitForce = 0f,
    +	float angleLimitDamperRatio = 0.1f
    +)
    Request Example + View Source

    Parameters

    joint
    Type: UnityEngineConfigurableJoint
    Joint to setup.
    springForce (Optional)
    Type: SystemSingle
    + Torque force to apply when joint angle deviates from the original. +
    springDamperRatio (Optional)
    Type: SystemSingle
    + Percentage of the torque force to use for dampering oscillation effect. +
    maxSpringForce (Optional)
    Type: SystemSingle
    + Maximum torque force to apply when joint angle deviates from the original. +
    angleLimit (Optional)
    Type: SystemSingle
    Maximum rotation angle (degrees) around Y or Z axis.
    angleLimitForce (Optional)
    Type: SystemSingle
    + Force to apply to keep joint in limits. If it's 0 then the limit is impassible. +
    angleLimitDamperRatio (Optional)
    Type: SystemSingle
    + Percentage of the limit force to use for dampering oscillation effect. +
    Remarks

    + It's a standard PhysiX configuration. Main axis is set to Z, and angular rotation around it is + completely unrestricted. Secondary axes are X&Y can be restricted by applying spring force + and/or limits. Drive mode is set to Position. +

    + Only angular settings are set. If joint had linear constraints defined they will stay + unchanged. Consider using ResetJoint(ConfigurableJoint) to eliminate side effects from the previous + settings of the joint. +

    + Pure spherical joint assumes 3 out of the 6 degrees of freedom to be locked (all the three + axes linear motions). Consider setting enablePreprocessing to true + since it may improve PhysX performance. +

    + For performance reasons some parameters combindations may result in different angular modes: +

    • + When springForce is Infinite or angleLimit is + 0 Y&Z rotation modes are set to Locked. If + you plan to change force/limit don't forget to update the modes as well. +
    • + When springForce is 0 and angleLimit is + Infinite Y&Z rotation modes are set to Free. + If you plan to change either of the parameters don't forget to update the modes as well. +

    + Regardless to the modes set all the other parameters are also applied. I.e. you don't need to + re-apply them when changing mode. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IKasJointEventsListener_OnKASJointBreak.htm b/docs/APIv1/html/M_KASAPIv1_IKasJointEventsListener_OnKASJointBreak.htm new file mode 100644 index 00000000..63b39a54 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IKasJointEventsListener_OnKASJointBreak.htm @@ -0,0 +1,34 @@ +IKasJointEventsListener.OnKASJointBreak Method

    IKasJointEventsListenerOnKASJointBreak Method

    + Triggers when a connection on the object is broken due to too strong force applied. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void OnKASJointBreak(
    +	GameObject hostObj,
    +	float breakForce
    +)
    Request Example + View Source

    Parameters

    hostObj
    Type: UnityEngineGameObject
    The game object that owns the joint.
    breakForce
    Type: SystemSingle
    The actual force that has been applied to break the joint.
    Remarks
    + This event is expected to be called from a Unity physics method. Not all actions can be done + from this kind of handlers. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkCableJoint_SetCableLength.htm b/docs/APIv1/html/M_KASAPIv1_ILinkCableJoint_SetCableLength.htm new file mode 100644 index 00000000..fa7eb300 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkCableJoint_SetCableLength.htm @@ -0,0 +1,48 @@ +ILinkCableJoint.SetCableLength Method

    ILinkCableJointSetCableLength Method

    + Sets the maximum possible distance between the source and the head/target physical anchors. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void SetCableLength(
    +	float length
    +)
    Request Example + View Source

    Parameters

    length
    Type: SystemSingle
    + The new length. The value must be in range [0; cfgMaxCableLength]. If the value is not + within the limits, then it's rounded to the closest boundary. Also, there are special values: +
    • PositiveInfinity. Set the length to the maximum possible value, configured via + cfgMaxCableLength. +
    • NegativeInfinity. Set the limit to the real distance, but only if the real distance is + less than the current limit. When the real distance is greater than the limit, it means the + cable is under a strain due to the physical forces, and nothing will be changed to not trigger + extra effects. +
    Remarks

    + Setting the new length may trigger the physical effects if the value is less than the real + cable length, since it will force the engine to pull the objects together. Don't reduce the + length too rapidly to avoid the strong forces applied. +

    + Calling for this method doesn't have any effect if the PhysX joint is not created. When a + brand new joint is created, it always has the distance limit set to the actual distance + between the physical objects. I.e. this method must be called after the physical joint + is created. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkCableJoint_StartPhysicalHead.htm b/docs/APIv1/html/M_KASAPIv1_ILinkCableJoint_StartPhysicalHead.htm new file mode 100644 index 00000000..31ef1c1a --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkCableJoint_StartPhysicalHead.htm @@ -0,0 +1,36 @@ +ILinkCableJoint.StartPhysicalHead Method

    ILinkCableJointStartPhysicalHead Method

    + Attaches the specified object to the source and starts the environmental forces on it. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void StartPhysicalHead(
    +	ILinkSource source,
    +	Transform headObjAnchor
    +)
    Request Example + View Source

    Parameters

    source
    Type: KASAPIv1ILinkSource
    The source object that owns the head.
    headObjAnchor
    Type: UnityEngineTransform
    + The transform at the head object to attach the cable to. It's also used as a starting point + to find the rigidbody. +
    Remarks
    + The cable maximum length will be set to the actual distance between the source and the head. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkCableJoint_StopPhysicalHead.htm b/docs/APIv1/html/M_KASAPIv1_ILinkCableJoint_StopPhysicalHead.htm new file mode 100644 index 00000000..761532e0 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkCableJoint_StopPhysicalHead.htm @@ -0,0 +1,31 @@ +ILinkCableJoint.StopPhysicalHead Method

    ILinkCableJointStopPhysicalHead Method

    Stops handling the physical head.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void StopPhysicalHead()
    Request Example + View Source
    Remarks
    + It must not be called from the physics update methods (e.g. FixedUpdate or + OnJointBreak) since the link's physical objects may be deleted immediately. If the link + needs to be broken from these methods, use a coroutine to postpone the call till the end of + the frame. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkJoint_AdjustJoint.htm b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_AdjustJoint.htm new file mode 100644 index 00000000..ac846a98 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_AdjustJoint.htm @@ -0,0 +1,31 @@ +ILinkJoint.AdjustJoint Method

    ILinkJointAdjustJoint Method

    Requests the joint to become unbreakable or normal.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void AdjustJoint(
    +	bool isUnbreakable = false
    +)
    Request Example + View Source

    Parameters

    isUnbreakable (Optional)
    Type: SystemBoolean
    If true then joint must become unbreakable.
    Remarks
    + Normally, joint is set to unbreakable on time warp, but in general callers may do it at any + moment. In unbreakable state joint must behave as a hard connection that cannot be changed or + destructed by any force.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkJoint_CheckConstraints.htm b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_CheckConstraints.htm new file mode 100644 index 00000000..ba1cffd9 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_CheckConstraints.htm @@ -0,0 +1,31 @@ +ILinkJoint.CheckConstraints Method

    ILinkJointCheckConstraints Method

    Checks if the joint constraints allow the link to be established.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string[] CheckConstraints(
    +	ILinkSource source,
    +	ILinkTarget target
    +)
    Request Example + View Source

    Parameters

    source
    Type: KASAPIv1ILinkSource
    The possible source of the link.
    target
    Type: KASAPIv1ILinkTarget
    The possible target of the link.

    Return Value

    Type: String
    + An empty array if the link can be created, or a list of user friendly errors otherwise. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkJoint_CreateJoint.htm b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_CreateJoint.htm new file mode 100644 index 00000000..99aa6dac --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_CreateJoint.htm @@ -0,0 +1,35 @@ +ILinkJoint.CreateJoint Method

    ILinkJointCreateJoint Method

    Sets up a physical joint between the source and target.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool CreateJoint(
    +	ILinkSource source,
    +	ILinkTarget target
    +)
    Request Example + View Source

    Parameters

    source
    Type: KASAPIv1ILinkSource
    The link's source. This part owns the joint module.
    target
    Type: KASAPIv1ILinkTarget
    The link's target.

    Return Value

    Type: Boolean
    true if joint was successfully created or updated.
    Remarks

    + This method can be called either to establish a new joint or to restore an existing link on + load. +

    + This method will call the CheckConstraints(ILinkSource, ILinkTarget) method to ensure there are no errors. + If there are some, then the link is not created and the errors are reported to the logs. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkJoint_DropJoint.htm b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_DropJoint.htm new file mode 100644 index 00000000..5ee45d72 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_DropJoint.htm @@ -0,0 +1,29 @@ +ILinkJoint.DropJoint Method

    ILinkJointDropJoint Method

    Destroys a physical link between the source and the target.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void DropJoint()
    Request Example + View Source
    Remarks
    + This is a cleanup method. It must be safe to execute in any joint state, and should not throw + any errors. E.g. it may get called when the part's state is incomplete. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkJoint_SetCoupleOnLinkMode.htm b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_SetCoupleOnLinkMode.htm new file mode 100644 index 00000000..fdced1ac --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkJoint_SetCoupleOnLinkMode.htm @@ -0,0 +1,39 @@ +ILinkJoint.SetCoupleOnLinkMode Method

    ILinkJointSetCoupleOnLinkMode Method

    Changes the current parts couple mode.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool SetCoupleOnLinkMode(
    +	bool isCoupleOnLink
    +)
    Request Example + View Source

    Parameters

    isCoupleOnLink
    Type: SystemBoolean
    The new settings of the mode.

    Return Value

    Type: Boolean
    true if the new mode has been accepted. The change may be refused for any reason by the + implementation, and the caller must react accordingly. +
    Remarks

    + When both the source and the target peers support coupling, this mode can be arbitrary set or + reset via the joint module. If the new mode is "coupling", and the source and the target + vessels are different, then a coupling action will trigger. If the new mode is "don't couple", + and the source and the target parts are coupled, then a decoupling event is triggered. In all + the other cases it's just a boolean property change. +

    + The modules must support the cycles and be ready to pick up the coupling role when the former + part has gave up. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_CheckColliderHits.htm b/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_CheckColliderHits.htm new file mode 100644 index 00000000..d0139896 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_CheckColliderHits.htm @@ -0,0 +1,31 @@ +ILinkRenderer.CheckColliderHits Method

    ILinkRendererCheckColliderHits Method

    Verifies that there are no obstacles beween the points.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string[] CheckColliderHits(
    +	Transform source,
    +	Transform target
    +)
    Request Example + View Source

    Parameters

    source
    Type: UnityEngineTransform
    Source node.
    target
    Type: UnityEngineTransform
    Target node.

    Return Value

    Type: String
    + An empty array if no hits were detected, or a list of user friendly errors otherwise. +
    Remarks
    The renderer is not required to be started for this method to call.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_StartRenderer.htm b/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_StartRenderer.htm new file mode 100644 index 00000000..295ed4af --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_StartRenderer.htm @@ -0,0 +1,41 @@ +ILinkRenderer.StartRenderer Method

    ILinkRendererStartRenderer Method

    Starts rendering a link between the objects.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void StartRenderer(
    +	Transform source,
    +	Transform target
    +)
    Request Example + View Source

    Parameters

    source
    Type: UnityEngineTransform
    The source node.
    target
    Type: UnityEngineTransform
    The target node.
    Remarks

    + This method only indicates that the link is to be drawn between the specified points. The + renderer is allowed to draw meshes even when not started. E.g. if there are constant parts of + the link like the joint pivots. +

    + The ends of the link are not required to be located at the surface of the owning parts. It's + up to the renderer to decide how to draw the link. +

    + It's OK to call this method multiple times with different or the same source/target arguments: + the renderer must accept the values and update accordingly. However, this operation is rated + as performance expensive, so the callers are discouraged to invoke this method too frequently + (e.g. on every frame update). +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_StopRenderer.htm b/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_StopRenderer.htm new file mode 100644 index 00000000..e50d3141 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_StopRenderer.htm @@ -0,0 +1,34 @@ +ILinkRenderer.StopRenderer Method

    ILinkRendererStopRenderer Method

    Cancels rendering the link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void StopRenderer()
    Request Example + View Source
    Remarks
    + The stopped renderer is not required to not render anything. The stopped state only tells + that the source and the target positions provided to the StartRenderer(Transform, Transform) method + must not be respresented as connected anymore. A specific renderer implementation is free to + choose how to represent this mode. +

    + It's OK to call this method multiple time. If the renderer is already stopped the call must be + treated as NO-OP with a little or no performance cost. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_UpdateLink.htm b/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_UpdateLink.htm new file mode 100644 index 00000000..81ce67f8 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkRenderer_UpdateLink.htm @@ -0,0 +1,32 @@ +ILinkRenderer.UpdateLink Method

    ILinkRendererUpdateLink Method

    Called when a link representation update is required.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void UpdateLink()
    Request Example + View Source
    Remarks
    + The performance cost of this method is rated as moderate. The callers should consider + optimization techniques to avoid calling this method on the every frame update. +

    + A specific renderer implementation may introduce own optimization algorithm when the call + becomes too heavy and slow. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkSource_BreakCurrentLink.htm b/docs/APIv1/html/M_KASAPIv1_ILinkSource_BreakCurrentLink.htm new file mode 100644 index 00000000..54ce63a4 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkSource_BreakCurrentLink.htm @@ -0,0 +1,61 @@ +ILinkSource.BreakCurrentLink Method

    ILinkSourceBreakCurrentLink Method

    Breaks the link between the source and the target.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void BreakCurrentLink(
    +	LinkActorType actorType
    +)
    Request Example + View Source

    Parameters

    actorType
    Type: KASAPIv1LinkActorType
    + Specifies what initiates the action. The final result of the action doesn't depend on it, but + the visual and sound representations may differ for the different actors. +
    Remarks
    + It must not be called from the physics update methods (e.g. FixedUpdate or + OnJointBreak) since the link's physical objects may be deleted immediately. If the link + needs to be broken from these methods, use a coroutine to postpone the call till the end of + the frame. +
    Examples
    // Disconnects the source part from its target. Only once source can be connected on the part.
    +// And it can be connected to the exactly one target.
    +public static void DisconnectParts(Part srcPart) {
    +  var source = srcPart.FindModulesImplementing<ILinkSource>()
    +      .FirstOrDefault(s => s.linkTarget != null);
    +  if (source == null) {
    +    Debug.LogWarningFormat("Part is not connected to anything");
    +    return;
    +  }
    +  // LinkActorType.API tells the implementation to not execute any user facing effects on the
    +  // link. See LinkActorType for more details.
    +  source.BreakCurrentLink(LinkActorType.API);
    +}
    Examples
    public class ILinkSourceExample_BreakFromPhysyicalMethod : MonoBehaviour {
    +  public ILinkSource linkSource;
    +
    +  // This method is called by Unity core during the physics update.
    +  IEnumerable OnJointBreak(float force) {
    +    Debug.LogWarningFormat("Link is broken with force: {0}", force);
    +    // Don't break the link from the physics methods! 
    +    yield return new WaitForEndOfFrame();
    +    // Now it's safe to change the physical objects.
    +    if (linkSource != null && linkSource.linkTarget != null) {
    +      linkSource.BreakCurrentLink(LinkActorType.Physics);
    +    }
    +  }
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkSource_CancelLinking.htm b/docs/APIv1/html/M_KASAPIv1_ILinkSource_CancelLinking.htm new file mode 100644 index 00000000..8a7b9120 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkSource_CancelLinking.htm @@ -0,0 +1,47 @@ +ILinkSource.CancelLinking Method

    ILinkSourceCancelLinking Method

    Cancels the linking mode without creating a link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void CancelLinking()
    Request Example + View Source
    Remarks
    + All the sources and targets, that got locked on the mode start, will be unlocked. +
    Examples
    // Connects two parts assuming the source and the target parts own exactly one link module. 
    +public static bool ConnectParts(Part srcPart, Part tgtPart) {
    +  var source = srcPart.FindModuleImplementing<ILinkSource>();
    +  var target = tgtPart.FindModuleImplementing<ILinkTarget>();
    +  if (source == null || target == null || source.cfgLinkType != target.cfgLinkType) {
    +    Debug.LogError("Source and target cannot link");
    +    return false;
    +  }
    +  // GUILinkMode.API mode tells the implementation to not execute any user facing effects on the
    +  // link. See GUILinkMode for more details. 
    +  if (!source.StartLinking(GUILinkMode.API, LinkActorType.API) || !source.LinkToTarget(target)) {
    +    // Here we can only fail due to the constraints. E.g. the link mode is not supported, or the
    +    // joint module doesn't give the green light.
    +    Debug.LogError("Linking failed");
    +    source.CancelLinking();
    +    return false;
    +  }
    +  Debug.LogFormat("Established link with part: id={0}", source.linkPartId);
    +  return true;
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkSource_CheckCanLinkTo.htm b/docs/APIv1/html/M_KASAPIv1_ILinkSource_CheckCanLinkTo.htm new file mode 100644 index 00000000..feeecf0c --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkSource_CheckCanLinkTo.htm @@ -0,0 +1,62 @@ +ILinkSource.CheckCanLinkTo Method

    ILinkSourceCheckCanLinkTo Method

    Verifies if a link between the parts can be successful.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool CheckCanLinkTo(
    +	ILinkTarget target,
    +	bool checkStates = true,
    +	bool reportToGUI = false,
    +	bool reportToLog = true
    +)
    Request Example + View Source

    Parameters

    target
    Type: KASAPIv1ILinkTarget
    The target to connect with.
    checkStates (Optional)
    Type: SystemBoolean
    + Tells if the source and target states needs to be checked. This check can be disabled when + checking for a "theoretical" posibility of the link. However, keep in mind that before doing + the actual link, the full check will be performed. +
    reportToGUI (Optional)
    Type: SystemBoolean
    + If true then the errors will be reported to the UI letting the user know that the link + cannot be made. +
    reportToLog (Optional)
    Type: SystemBoolean
    + If true then the errors will be logged to the logs as warnings. Disabling of such a + logging makes sense when the caller code only needs to check for the possibility of the link + (e.g. when showing the UI elements). If reportToGUI set to true then + the errors will be logged regardless to the setting of this parameter. +

    Return Value

    Type: Boolean
    true if the link can be made.
    Examples
    // Connects two parts assuming the source and the target parts own exactly one link module.
    +// Does not attempt the link if it's obstructed to avoid a GUI error message.
    +public static bool ConnectPartsWithCheck(Part srcPart, Part tgtPart) {
    +  var source = srcPart.FindModuleImplementing<ILinkSource>();
    +  var target = tgtPart.FindModuleImplementing<ILinkTarget>();
    +  if (source == null || target == null || source.cfgLinkType != target.cfgLinkType) {
    +    Debug.LogError("Source and target cannot link");
    +    return false;
    +  }
    +  if (!source.CheckCanLinkTo(target, reportToLog: false)) {
    +    Debug.Log("Link is obstructed. Silently cancel the action");
    +    return false;
    +  }
    +  if (!source.StartLinking(GUILinkMode.API, LinkActorType.API) || !source.LinkToTarget(target)) {
    +    Debug.LogError("Linking failed");
    +    source.CancelLinking();
    +    return false;
    +  }
    +  return true;
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkSource_LinkToTarget.htm b/docs/APIv1/html/M_KASAPIv1_ILinkSource_LinkToTarget.htm new file mode 100644 index 00000000..06584515 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkSource_LinkToTarget.htm @@ -0,0 +1,58 @@ +ILinkSource.LinkToTarget Method (ILinkTarget)

    ILinkSourceLinkToTarget Method (ILinkTarget)

    Establishes a link between two parts.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool LinkToTarget(
    +	ILinkTarget target
    +)
    Request Example + View Source

    Parameters

    target
    Type: KASAPIv1ILinkTarget
    The target to link with.

    Return Value

    Type: Boolean
    true if the parts were linked successfully.
    Remarks

    + The linking mode must be started via the StartLinking(GUILinkMode, LinkActorType) call for this method to + succeed. +

    + If the link has been established successfully, the source and the target parts become + associated with each other. +

    + The link conditions will be checked via CheckCanLinkTo(ILinkTarget, Boolean, Boolean, Boolean) before creating the link. + If the were errors, they will be reported to GUI if the linking mode was started with actor + Player. The linking mode won't be cancelled in case of the link + failure. +

    Examples
    // Connects two parts assuming the source and the target parts own exactly one link module. 
    +public static bool ConnectParts(Part srcPart, Part tgtPart) {
    +  var source = srcPart.FindModuleImplementing<ILinkSource>();
    +  var target = tgtPart.FindModuleImplementing<ILinkTarget>();
    +  if (source == null || target == null || source.cfgLinkType != target.cfgLinkType) {
    +    Debug.LogError("Source and target cannot link");
    +    return false;
    +  }
    +  // GUILinkMode.API mode tells the implementation to not execute any user facing effects on the
    +  // link. See GUILinkMode for more details. 
    +  if (!source.StartLinking(GUILinkMode.API, LinkActorType.API) || !source.LinkToTarget(target)) {
    +    // Here we can only fail due to the constraints. E.g. the link mode is not supported, or the
    +    // joint module doesn't give the green light.
    +    Debug.LogError("Linking failed");
    +    source.CancelLinking();
    +    return false;
    +  }
    +  Debug.LogFormat("Established link with part: id={0}", source.linkPartId);
    +  return true;
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkSource_LinkToTarget_1.htm b/docs/APIv1/html/M_KASAPIv1_ILinkSource_LinkToTarget_1.htm new file mode 100644 index 00000000..3d87270b --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkSource_LinkToTarget_1.htm @@ -0,0 +1,33 @@ +ILinkSource.LinkToTarget Method (LinkActorType, ILinkTarget)

    ILinkSourceLinkToTarget Method (LinkActorType, ILinkTarget)

    Establishes a link between two parts.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool LinkToTarget(
    +	LinkActorType actor,
    +	ILinkTarget target
    +)
    Request Example + View Source

    Parameters

    actor
    Type: KASAPIv1LinkActorType
    The actor, who initiated the link.
    target
    Type: KASAPIv1ILinkTarget
    The target to link with.

    Return Value

    Type: Boolean
    true if the parts were linked successfully.
    Remarks
    + This version of the method doesn't require staring the linking mode. All the required + transitions are done internally, and the method only reports if the link was successful or + not. No GUI mode can be specified when creating a link like this. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkSource_StartLinking.htm b/docs/APIv1/html/M_KASAPIv1_ILinkSource_StartLinking.htm new file mode 100644 index 00000000..54a20402 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkSource_StartLinking.htm @@ -0,0 +1,54 @@ +ILinkSource.StartLinking Method

    ILinkSourceStartLinking Method

    Starts the linking mode of this source.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool StartLinking(
    +	GUILinkMode mode,
    +	LinkActorType actor
    +)
    Request Example + View Source

    Parameters

    mode
    Type: KASAPIv1GUILinkMode
    + Defines how the pending link should be displayed. See GUILinkMode for more + details. +
    actor
    Type: KASAPIv1LinkActorType
    Specifies how the action has been initiated.

    Return Value

    Type: Boolean
    true if the mode has successfully started.
    Remarks

    + Only one source at the time can be linking. If the part has more sources or targets, they are + expected to become Locked. +

    A module can refuse the mode by returning false.

    Examples
    // Connects two parts assuming the source and the target parts own exactly one link module. 
    +public static bool ConnectParts(Part srcPart, Part tgtPart) {
    +  var source = srcPart.FindModuleImplementing<ILinkSource>();
    +  var target = tgtPart.FindModuleImplementing<ILinkTarget>();
    +  if (source == null || target == null || source.cfgLinkType != target.cfgLinkType) {
    +    Debug.LogError("Source and target cannot link");
    +    return false;
    +  }
    +  // GUILinkMode.API mode tells the implementation to not execute any user facing effects on the
    +  // link. See GUILinkMode for more details. 
    +  if (!source.StartLinking(GUILinkMode.API, LinkActorType.API) || !source.LinkToTarget(target)) {
    +    // Here we can only fail due to the constraints. E.g. the link mode is not supported, or the
    +    // joint module doesn't give the green light.
    +    Debug.LogError("Linking failed");
    +    source.CancelLinking();
    +    return false;
    +  }
    +  Debug.LogFormat("Established link with part: id={0}", source.linkPartId);
    +  return true;
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkStateEventListener_OnKASLinkedState.htm b/docs/APIv1/html/M_KASAPIv1_ILinkStateEventListener_OnKASLinkedState.htm new file mode 100644 index 00000000..f42b4b74 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkStateEventListener_OnKASLinkedState.htm @@ -0,0 +1,32 @@ +ILinkStateEventListener.OnKASLinkedState Method

    ILinkStateEventListenerOnKASLinkedState Method

    Triggers when any module on the part has created a link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void OnKASLinkedState(
    +	IKasLinkEvent info,
    +	bool isLinked
    +)
    Request Example + View Source

    Parameters

    info
    Type: KASAPIv1IKasLinkEvent
    The source and target information about the link.
    isLinked
    Type: SystemBoolean
    The new link state.
    Remarks
    + This is a notification event. When it triggers, the modules, involved in the link, has already + completed their settings change. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkStateEventListener_OnKASNodeBlockedState.htm b/docs/APIv1/html/M_KASAPIv1_ILinkStateEventListener_OnKASNodeBlockedState.htm new file mode 100644 index 00000000..ad66f65e --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkStateEventListener_OnKASNodeBlockedState.htm @@ -0,0 +1,35 @@ +ILinkStateEventListener.OnKASNodeBlockedState Method

    ILinkStateEventListenerOnKASNodeBlockedState Method

    + Triggers when a peer locks itself due to its attach node is blocked by an incompatible part. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void OnKASNodeBlockedState(
    +	ILinkPeer ownerPeer,
    +	bool isBlocked
    +)
    Request Example + View Source

    Parameters

    ownerPeer
    Type: KASAPIv1ILinkPeer
    The peer which goes into the (un)blocked state.
    isBlocked
    Type: SystemBoolean
    Tells if the peer got blocked or unblocked.
    Remarks
    + The event is sent to all the modules on the part except the module which triggred the event. + It allows coordinating the work of a group of link modules on the same part. The event + handlers must not synchronously affect the state of module which triggered the event. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkUtils_CoupleParts.htm b/docs/APIv1/html/M_KASAPIv1_ILinkUtils_CoupleParts.htm new file mode 100644 index 00000000..ddddf641 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkUtils_CoupleParts.htm @@ -0,0 +1,46 @@ +ILinkUtils.CoupleParts Method

    ILinkUtilsCoupleParts Method

    Couples two parts together given they belong to the different vessels.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Part CoupleParts(
    +	AttachNode sourceNode,
    +	AttachNode targetNode,
    +	bool toDominantVessel = false
    +)
    Request Example + View Source

    Parameters

    sourceNode
    Type: (Default Namespace)AttachNode
    + The attach node at the source part that defines the source vessel. It must not be null. +
    targetNode
    Type: (Default Namespace)AttachNode
    + The attach node at the target part that defines the target vessel. It must not be null. +
    toDominantVessel (Optional)
    Type: SystemBoolean
    + If false, then the source vessel will get coupled with the target. As a result, the + source vessel will be destroyed. If true, then the method will find the least + significant vessel of the two, and couple it with the most significant one. The least + signficant vessel will be destroyed. +

    Return Value

    Type: Part
    The part that attached as a child into the new hierarchy.
    Remarks

    + Once the coupling is done, one of the vessels will be destroyed. It will become a part of the + other vessel. The new merged vessel will become active. Which vessel will be destroyed is + determined by the toDominantVessel parameter. +

    + This coupling requires the both attach nodes to be provided, and creates a "stack" nodes + coupling. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkUtils_DecoupleParts.htm b/docs/APIv1/html/M_KASAPIv1_ILinkUtils_DecoupleParts.htm new file mode 100644 index 00000000..04b0b7c4 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkUtils_DecoupleParts.htm @@ -0,0 +1,45 @@ +ILinkUtils.DecoupleParts Method

    ILinkUtilsDecoupleParts Method

    Decouples the connected parts and breaks down one vessel into two.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Part DecoupleParts(
    +	Part part1,
    +	Part part2,
    +	DockedVesselInfo vesselInfo1 = null,
    +	DockedVesselInfo vesselInfo2 = null
    +)
    Request Example + View Source

    Parameters

    part1
    Type: (Default Namespace)Part
    + The first part of the connection. It must be a direct parent or a child of the + part2. +
    part2
    Type: (Default Namespace)Part
    + The second part of the connection. It must be a direct parent or a child of the + part1. +
    vesselInfo1 (Optional)
    Type: (Default Namespace)DockedVesselInfo
    + The optional info of the vessel that owned the part1 on coupling. +
    vesselInfo2 (Optional)
    Type: (Default Namespace)DockedVesselInfo
    + The optional info of the vessel that owned the part2 on coupling. +

    Return Value

    Type: Part
    The child part that has decoupled from the owner vessel.
    Remarks
    + If the part, being decoupled, has the DockedVesselInfo provided, then additionally to + the decoupling, the method will also restore the old vessel properties. Including the root + part. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_ILinkUtils_FindLinkPeer.htm b/docs/APIv1/html/M_KASAPIv1_ILinkUtils_FindLinkPeer.htm new file mode 100644 index 00000000..8651147c --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_ILinkUtils_FindLinkPeer.htm @@ -0,0 +1,32 @@ +ILinkUtils.FindLinkPeer Method

    ILinkUtilsFindLinkPeer Method

    Finds the other peer of the link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkPeer FindLinkPeer(
    +	ILinkPeer srcPeer
    +)
    Request Example + View Source

    Parameters

    srcPeer
    Type: KASAPIv1ILinkPeer
    The peer to find a target for.

    Return Value

    Type: ILinkPeer
    The peer or null if no valid target was found.
    Remarks
    + The links are always 1-to-1, i.e. one source peer can be linked to exactly one target peer. + It's discouraged to implement this logic in the own code since the linking approach may change + in the future versions. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IPhysicsUtils_ApplyGravity.htm b/docs/APIv1/html/M_KASAPIv1_IPhysicsUtils_ApplyGravity.htm new file mode 100644 index 00000000..67e726ee --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IPhysicsUtils_ApplyGravity.htm @@ -0,0 +1,38 @@ +IPhysicsUtils.ApplyGravity Method

    IPhysicsUtilsApplyGravity Method

    Applies the forces that affect a rigidbody on a selectial body.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void ApplyGravity(
    +	Rigidbody rb,
    +	Vessel vessel,
    +	double rbAirDragMult = 1
    +)
    Request Example + View Source

    Parameters

    rb
    Type: UnityEngineRigidbody
    The rigidbody to apply the forces to.
    vessel
    Type: (Default Namespace)Vessel
    + The vessel to use as a base point for the gravity and atmosphere properties. When there is no + good choice, just pick the closest one. +
    rbAirDragMult (Optional)
    Type: SystemDouble
    + The multiplier that tells how significantly the rigidbody is resisting to the air flow. +

    Return Value

    Type: 
    Target or null if no valid target was found.
    Remarks
    + This method replicates the logic from FlightIntegrator for the physical objects. + Alas, this method is not available for a plain rigidbody. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IWinchControl_ReleaseCable.htm b/docs/APIv1/html/M_KASAPIv1_IWinchControl_ReleaseCable.htm new file mode 100644 index 00000000..9e9d07da --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IWinchControl_ReleaseCable.htm @@ -0,0 +1,26 @@ +IWinchControl.ReleaseCable Method

    IWinchControlReleaseCable Method

    Sets the deployed cable length to the maximum value allowed by the part.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void ReleaseCable()
    Request Example + View Source
    Remarks
    If the connector is locked, then it will be deployed.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IWinchControl_SetMotor.htm b/docs/APIv1/html/M_KASAPIv1_IWinchControl_SetMotor.htm new file mode 100644 index 00000000..efc174b3 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IWinchControl_SetMotor.htm @@ -0,0 +1,53 @@ +IWinchControl.SetMotor Method

    IWinchControlSetMotor Method

    Sets the winch motor to the desired speed.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void SetMotor(
    +	float targetSpeed
    +)
    Request Example + View Source

    Parameters

    targetSpeed
    Type: SystemSingle
    + The new speed of the motor. The positive value instructs to extend the cable, and the + negative value commands to retract the cable. Zero value turns the motor off. The + infinite values can be used to set the target speed to the maximum allowed speed on the part. +
    Remarks

    + The motor is responsible for the deployed cable length changing. It can extend the cable, + retract the cable, or do nothing (idle). The winch and its head cannot get separated at a + greater distance than the current deployed cable length. That said, the motor is controlling + the distance. +

    + The motor speed is not required to change immediately. The motor may need some time to get to + the target speed. It depends on the part implementation and configuration. The rule of thumb + is to not expect the motorCurrentSpeed to match the + targetSpeed right after the method call. There may be some time needed + before the values will match. However, the motorTargetSpeed value will change + immediately, and will match the parameter. +

    + Setting the motor speed may affect the connector state. E.g. if the connector was locked, + and the motor speed is set to a positive value (extending), then the connector is get + deployed. +

    + The motor will automatically stop when the cable length reaches zero or the maximum allowed + value. In case of the zero length, the connector will be attempted to lock into the winch. + This attempt may fail due to the bad align of the connector. To retry the attempt, just call + this method again with a negative value. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/M_KASAPIv1_IWinchControl_StretchCable.htm b/docs/APIv1/html/M_KASAPIv1_IWinchControl_StretchCable.htm new file mode 100644 index 00000000..9b553c50 --- /dev/null +++ b/docs/APIv1/html/M_KASAPIv1_IWinchControl_StretchCable.htm @@ -0,0 +1,28 @@ +IWinchControl.StretchCable Method

    IWinchControlStretchCable Method

    + Sets the deployed cable length to the actual distance between the winch and the connector. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    void StretchCable()
    Request Example + View Source
    Remarks
    This will "stretch" the cable by reducing the unused cable.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_IAttachNodesUtils.htm b/docs/APIv1/html/Methods_T_KASAPIv1_IAttachNodesUtils.htm new file mode 100644 index 00000000..8e2e8759 --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_IAttachNodesUtils.htm @@ -0,0 +1,10 @@ +IAttachNodesUtils Methods

    IAttachNodesUtils Methods

    The IAttachNodesUtils type exposes the following members.

    Methods
    +   + NameDescription
    Public methodAddNode
    Adds an existing attach node into the part.
    Public methodCreateNode
    Creates a new attach node on the part.
    Public methodDropNode
    Drops the attach node on the part.
    Public methodGetTransformForNode
    Gets or creates a transform object for the attach node.
    Public methodNodeId
    Returns a user friendly attach node representation.
    Public methodParseNodeFromString
    Creates an attach node form the part's config definition string.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_IJointUtils.htm b/docs/APIv1/html/Methods_T_KASAPIv1_IJointUtils.htm new file mode 100644 index 00000000..5e74f252 --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_IJointUtils.htm @@ -0,0 +1,10 @@ +IJointUtils Methods

    IJointUtils Methods

    The IJointUtils type exposes the following members.

    Methods
    +   + NameDescription
    Public methodDumpJoint
    Outputs all properties of the joint to the string.
    Public methodDumpSpringJoint
    Outputs all properties of the joint to the string.
    Public methodResetJoint
    Initializes joint to a consistent state.
    Public methodSetupDistanceJoint
    Sets up a cannonical distance joint.
    Public methodSetupFixedJoint
    Sets up a cannonical fixed joint.
    Public methodSetupPrismaticJoint
    Sets up joint so what it becomes a prismatic joint.
    Public methodSetupSphericalJoint
    Sets up joint so what it becomes a spherical hinge joint.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_IKasJointEventsListener.htm b/docs/APIv1/html/Methods_T_KASAPIv1_IKasJointEventsListener.htm new file mode 100644 index 00000000..f926ed87 --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_IKasJointEventsListener.htm @@ -0,0 +1,12 @@ +IKasJointEventsListener Methods

    IKasJointEventsListener Methods

    The IKasJointEventsListener type exposes the following members.

    Methods
    +   + NameDescription
    Public methodOnKASJointBreak
    + Triggers when a connection on the object is broken due to too strong force applied. +
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_ILinkCableJoint.htm b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkCableJoint.htm new file mode 100644 index 00000000..f117f4fb --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkCableJoint.htm @@ -0,0 +1,14 @@ +ILinkCableJoint Methods

    ILinkCableJoint Methods

    The ILinkCableJoint type exposes the following members.

    Methods
    +   + NameDescription
    Public methodSetCableLength
    + Sets the maximum possible distance between the source and the head/target physical anchors. +
    Public methodStartPhysicalHead
    + Attaches the specified object to the source and starts the environmental forces on it. +
    Public methodStopPhysicalHead
    Stops handling the physical head.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_ILinkJoint.htm b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkJoint.htm new file mode 100644 index 00000000..bf27664b --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkJoint.htm @@ -0,0 +1,10 @@ +ILinkJoint Methods

    ILinkJoint Methods

    The ILinkJoint type exposes the following members.

    Methods
    +   + NameDescription
    Public methodAdjustJoint
    Requests the joint to become unbreakable or normal.
    Public methodCheckConstraints
    Checks if the joint constraints allow the link to be established.
    Public methodCreateJoint
    Sets up a physical joint between the source and target.
    Public methodDropJoint
    Destroys a physical link between the source and the target.
    Public methodSetCoupleOnLinkMode
    Changes the current parts couple mode.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_ILinkRenderer.htm b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkRenderer.htm new file mode 100644 index 00000000..d5ee464a --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkRenderer.htm @@ -0,0 +1,10 @@ +ILinkRenderer Methods

    ILinkRenderer Methods

    The ILinkRenderer type exposes the following members.

    Methods
    +   + NameDescription
    Public methodCheckColliderHits
    Verifies that there are no obstacles beween the points.
    Public methodStartRenderer
    Starts rendering a link between the objects.
    Public methodStopRenderer
    Cancels rendering the link.
    Public methodUpdateLink
    Called when a link representation update is required.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_ILinkSource.htm b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkSource.htm new file mode 100644 index 00000000..977a3630 --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkSource.htm @@ -0,0 +1,10 @@ +ILinkSource Methods

    ILinkSource Methods

    The ILinkSource type exposes the following members.

    Methods
    +   + NameDescription
    Public methodCode exampleBreakCurrentLink
    Breaks the link between the source and the target.
    Public methodCode exampleCancelLinking
    Cancels the linking mode without creating a link.
    Public methodCode exampleCheckCanLinkTo
    Verifies if a link between the parts can be successful.
    Public methodCode exampleLinkToTarget(ILinkTarget)
    Establishes a link between two parts.
    Public methodLinkToTarget(LinkActorType, ILinkTarget)
    Establishes a link between two parts.
    Public methodCode exampleStartLinking
    Starts the linking mode of this source.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_ILinkStateEventListener.htm b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkStateEventListener.htm new file mode 100644 index 00000000..04925fa3 --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkStateEventListener.htm @@ -0,0 +1,12 @@ +ILinkStateEventListener Methods

    ILinkStateEventListener Methods

    The ILinkStateEventListener type exposes the following members.

    Methods
    +   + NameDescription
    Public methodOnKASLinkedState
    Triggers when any module on the part has created a link.
    Public methodOnKASNodeBlockedState
    + Triggers when a peer locks itself due to its attach node is blocked by an incompatible part. +
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_ILinkUtils.htm b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkUtils.htm new file mode 100644 index 00000000..fd23cec1 --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_ILinkUtils.htm @@ -0,0 +1,10 @@ +ILinkUtils Methods

    ILinkUtils Methods

    The ILinkUtils type exposes the following members.

    Methods
    +   + NameDescription
    Public methodCoupleParts
    Couples two parts together given they belong to the different vessels.
    Public methodDecoupleParts
    Decouples the connected parts and breaks down one vessel into two.
    Public methodFindLinkPeer
    Finds the other peer of the link.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_IPhysicsUtils.htm b/docs/APIv1/html/Methods_T_KASAPIv1_IPhysicsUtils.htm new file mode 100644 index 00000000..895a7571 --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_IPhysicsUtils.htm @@ -0,0 +1,10 @@ +IPhysicsUtils Methods

    IPhysicsUtils Methods

    The IPhysicsUtils type exposes the following members.

    Methods
    +   + NameDescription
    Public methodApplyGravity
    Applies the forces that affect a rigidbody on a selectial body.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Methods_T_KASAPIv1_IWinchControl.htm b/docs/APIv1/html/Methods_T_KASAPIv1_IWinchControl.htm new file mode 100644 index 00000000..bc304201 --- /dev/null +++ b/docs/APIv1/html/Methods_T_KASAPIv1_IWinchControl.htm @@ -0,0 +1,12 @@ +IWinchControl Methods

    IWinchControl Methods

    The IWinchControl type exposes the following members.

    Methods
    +   + NameDescription
    Public methodReleaseCable
    Sets the deployed cable length to the maximum value allowed by the part.
    Public methodSetMotor
    Sets the winch motor to the desired speed.
    Public methodStretchCable
    + Sets the deployed cable length to the actual distance between the winch and the connector. +
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/N_KASAPIv1.htm b/docs/APIv1/html/N_KASAPIv1.htm new file mode 100644 index 00000000..9734211e --- /dev/null +++ b/docs/APIv1/html/N_KASAPIv1.htm @@ -0,0 +1,41 @@ +KASAPIv1 Namespace

    KASAPIv1 Namespace

    KAS API namespace. The third-party code must use the types and interfaces from this namespace instead of depending on the mod modules.

    Each API release has a version. Once the API is released to the public, its methods cannot be changed. In case of a new functionality is relased, a new version (and the namespace) will be created. The old namespace will not be removed, so the mods that were built with the old version will continue to work.

    If API is needed, the depedent mod should only include a reference to KAS-API-v1.dll (version number may vary). This assembly version never changes, so the dependency will never break. It's OK to provide an API assembly with the mod since multliple API assemblies will not conflict with each other. Moreover, having "own" copy of the API ensures the mod will load even if KAS is not installed in the game. There is an ability to check if KAS is installed in the run-time (see example below).

    Examples
    +Always use API interfaces, they are clearly defined and never change once released. +
    using KASAPIv1;
    +
    +public class MyModule : PartModule {
    +  public void RightSample() {
    +    var source = part.FindModuleImplementing<ILinkSource>();
    +    if (KASAPI.isLoaded) {
    +      var model = KASAPI.LinkUtils.DecoupleParts(part, part.parent);
    +    } else {
    +      Debug.LogWarning("KAS is not installed");
    +    }
    +  }
    +}
    Classes
    +   + ClassDescription
    Public classKASAPI
    KAS API, version 1.
    Interfaces
    +   + InterfaceDescription
    Public interfaceIAttachNodesUtils
    Various methods to deal with part's attach nodes.
    Public interfaceICommonConfig
    Container for the various global settings of the mod.
    Public interfaceIJointUtils
    Various tools to deal with KSP part joints.
    Public interfaceCode exampleIKasEvents
    Defines global events that are triggered by KAS.
    Public interfaceCode exampleIKasJointEventsListener
    Interface that notifies listeners about joints breaking.
    Public interfaceIKasLinkEvent
    A holder for simple source-to-target event.
    Public interfaceILinkCableJoint
    + Interface for a physical cable link. Such links keep the dsitance between the object below the + maximum but don't restict any other movements of the objects relative to each other. +
    Public interfaceILinkJoint
    Base interface for a KAS joint.
    Public interfaceILinkPeer
    Base interface for an end of the link.
    Public interfaceILinkRenderer
    + Interface for a module that takes care of rendering a link and, optionally, manages its + colliders. +
    Public interfaceCode exampleILinkSource
    A generic source of a KAS link between two parts.
    Public interfaceILinkStateEventListener
    Part module interface that defines the events for a link state changes.
    Public interfaceCode exampleILinkTarget
    A generic target of a KAS link between two parts.
    Public interfaceILinkUtils
    Various tools to deal with KAS links.
    Public interfaceILinkVesselInfo
    A generic interface to deal with the vessels info.
    Public interfaceIPhysicsUtils
    Various tools to deal with the gme's physics.
    Public interfaceIWinchControl
    Interface that allows operating the winch parts.
    Enumerations
    +   + EnumerationDescription
    Public enumerationGUILinkMode
    Specifies how the linking mode is displayed in GUI.
    Public enumerationCode exampleLinkActorType
    Defines an actor that changes KAS link.
    Public enumerationLinkState
    Defines currect state of the link.
    + \ No newline at end of file diff --git a/docs/APIv1/html/Overload_KASAPIv1_ILinkSource_LinkToTarget.htm b/docs/APIv1/html/Overload_KASAPIv1_ILinkSource_LinkToTarget.htm new file mode 100644 index 00000000..d521c1dc --- /dev/null +++ b/docs/APIv1/html/Overload_KASAPIv1_ILinkSource_LinkToTarget.htm @@ -0,0 +1,10 @@ +ILinkSource.LinkToTarget Method

    ILinkSourceLinkToTarget Method

    Overload List
    +   + NameDescription
    Public methodCode exampleLinkToTarget(ILinkTarget)
    Establishes a link between two parts.
    Public methodLinkToTarget(LinkActorType, ILinkTarget)
    Establishes a link between two parts.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ICommonConfig_keyDropConnector.htm b/docs/APIv1/html/P_KASAPIv1_ICommonConfig_keyDropConnector.htm new file mode 100644 index 00000000..aa937654 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ICommonConfig_keyDropConnector.htm @@ -0,0 +1,39 @@ +ICommonConfig.keyDropConnector Property

    ICommonConfigkeyDropConnector Property

    Keyboard key to trigger the drop connector event.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string keyDropConnector { get; }
    Request Example + View Source

    Property Value

    Type: String
    The Unity coded keyboard event string.
    Examples
    public void ShortcutsDemo() {
    +  var simpleY = Event.KeyboardEvent("Y");
    +  var alt_Y = Event.KeyboardEvent("&Y");
    +  var shift_Y = Event.KeyboardEvent("#Y");
    +  var ctrl_Y = Event.KeyboardEvent("$Y");
    +  var ctrl2_Y = Event.KeyboardEvent("^Y");  // Yup! It's CTRL too.
    +  var numpad0 = Event.KeyboardEvent("[0]");
    +  var just0 = Event.KeyboardEvent("0");
    +
    +  // And here is how it's checked in the OnGUI() method.
    +  if (Event.current.Equals(numpad0)) {
    +    DebugEx.Info("You've pressed the numpad 0 key");
    +  }
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ICommonConfig_keyPickupConnector.htm b/docs/APIv1/html/P_KASAPIv1_ICommonConfig_keyPickupConnector.htm new file mode 100644 index 00000000..5d2b3059 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ICommonConfig_keyPickupConnector.htm @@ -0,0 +1,39 @@ +ICommonConfig.keyPickupConnector Property

    ICommonConfigkeyPickupConnector Property

    Keyboard key to trigger the pickup connector event.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string keyPickupConnector { get; }
    Request Example + View Source

    Property Value

    Type: String
    The Unity coded keyboard event string.
    Examples
    public void ShortcutsDemo() {
    +  var simpleY = Event.KeyboardEvent("Y");
    +  var alt_Y = Event.KeyboardEvent("&Y");
    +  var shift_Y = Event.KeyboardEvent("#Y");
    +  var ctrl_Y = Event.KeyboardEvent("$Y");
    +  var ctrl2_Y = Event.KeyboardEvent("^Y");  // Yup! It's CTRL too.
    +  var numpad0 = Event.KeyboardEvent("[0]");
    +  var just0 = Event.KeyboardEvent("0");
    +
    +  // And here is how it's checked in the OnGUI() method.
    +  if (Event.current.Equals(numpad0)) {
    +    DebugEx.Info("You've pressed the numpad 0 key");
    +  }
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ICommonConfig_sndPathBipWrong.htm b/docs/APIv1/html/P_KASAPIv1_ICommonConfig_sndPathBipWrong.htm new file mode 100644 index 00000000..28cf2c09 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ICommonConfig_sndPathBipWrong.htm @@ -0,0 +1,26 @@ +ICommonConfig.sndPathBipWrong Property

    ICommonConfigsndPathBipWrong Property

    URL of the sound for the impossible action.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string sndPathBipWrong { get; }
    Request Example + View Source

    Property Value

    Type: String
    An empty string or a path to the sounds resource.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnLinkBroken.htm b/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnLinkBroken.htm new file mode 100644 index 00000000..21d80ac6 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnLinkBroken.htm @@ -0,0 +1,60 @@ +IKasEvents.OnLinkBroken Property

    IKasEventsOnLinkBroken Property

    Triggers when a link between two parts has been broken.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    EventData<IKasLinkEvent> OnLinkBroken { get; }
    Request Example + View Source

    Property Value

    Type: EventDataIKasLinkEvent
    Collection to add or remove a callback.
    Remarks

    The argument of the callback is a KAS event object that describes the link.

    + Consider using OnKASLinkedState(IKasLinkEvent, Boolean) when this state change + is needed in scope of just one part. +

    Examples
    public class KasEventsExample1: PartModule {
    +  public override void OnAwake() {
    +    base.OnAwake();
    +    KASAPI.KasEvents.OnStartLinking.Add(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Add(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Add(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Add(LinkBroken);
    +  }
    +
    +  void OnDestroy() {
    +    KASAPI.KasEvents.OnStartLinking.Remove(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Remove(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Remove(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Remove(LinkBroken);
    +  }
    +
    +  void LinkStarted(ILinkSource source) {
    +    DebugEx.Info("Link started by: {0}", source);
    +  }
    +
    +  void LinkStopped(ILinkSource source) {
    +    DebugEx.Info("Link stopepd by: {0}", source);
    +  }
    +
    +  void LinkCreated(IKasLinkEvent ev) {
    +    DebugEx.Info("Link created: {0} <=> {1}", ev.source, ev.target);
    +  }
    +
    +  void LinkBroken(IKasLinkEvent ev) {
    +    DebugEx.Info("Link broken: {0} <=> {1}", ev.source, ev.target);
    +  }
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnLinkCreated.htm b/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnLinkCreated.htm new file mode 100644 index 00000000..27bfdf73 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnLinkCreated.htm @@ -0,0 +1,60 @@ +IKasEvents.OnLinkCreated Property

    IKasEventsOnLinkCreated Property

    Triggers when a link between two parts has been successfully established.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    EventData<IKasLinkEvent> OnLinkCreated { get; }
    Request Example + View Source

    Property Value

    Type: EventDataIKasLinkEvent
    Collection to add or remove a callback.
    Remarks

    The argument of the callback is a KAS event object that describes the link.

    + Consider using OnKASLinkedState(IKasLinkEvent, Boolean) when this state change + is needed in scope of just one part. +

    Examples
    public class KasEventsExample1: PartModule {
    +  public override void OnAwake() {
    +    base.OnAwake();
    +    KASAPI.KasEvents.OnStartLinking.Add(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Add(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Add(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Add(LinkBroken);
    +  }
    +
    +  void OnDestroy() {
    +    KASAPI.KasEvents.OnStartLinking.Remove(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Remove(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Remove(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Remove(LinkBroken);
    +  }
    +
    +  void LinkStarted(ILinkSource source) {
    +    DebugEx.Info("Link started by: {0}", source);
    +  }
    +
    +  void LinkStopped(ILinkSource source) {
    +    DebugEx.Info("Link stopepd by: {0}", source);
    +  }
    +
    +  void LinkCreated(IKasLinkEvent ev) {
    +    DebugEx.Info("Link created: {0} <=> {1}", ev.source, ev.target);
    +  }
    +
    +  void LinkBroken(IKasLinkEvent ev) {
    +    DebugEx.Info("Link broken: {0} <=> {1}", ev.source, ev.target);
    +  }
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnStartLinking.htm b/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnStartLinking.htm new file mode 100644 index 00000000..589cfbd8 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnStartLinking.htm @@ -0,0 +1,57 @@ +IKasEvents.OnStartLinking Property

    IKasEventsOnStartLinking Property

    Triggers when a source has initiated linking mode.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    EventData<ILinkSource> OnStartLinking { get; }
    Request Example + View Source

    Property Value

    Type: EventDataILinkSource
    Collection to add or remove a callback.
    Remarks
    The argument of the callback is the link source that started the mode.
    Examples
    public class KasEventsExample1: PartModule {
    +  public override void OnAwake() {
    +    base.OnAwake();
    +    KASAPI.KasEvents.OnStartLinking.Add(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Add(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Add(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Add(LinkBroken);
    +  }
    +
    +  void OnDestroy() {
    +    KASAPI.KasEvents.OnStartLinking.Remove(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Remove(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Remove(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Remove(LinkBroken);
    +  }
    +
    +  void LinkStarted(ILinkSource source) {
    +    DebugEx.Info("Link started by: {0}", source);
    +  }
    +
    +  void LinkStopped(ILinkSource source) {
    +    DebugEx.Info("Link stopepd by: {0}", source);
    +  }
    +
    +  void LinkCreated(IKasLinkEvent ev) {
    +    DebugEx.Info("Link created: {0} <=> {1}", ev.source, ev.target);
    +  }
    +
    +  void LinkBroken(IKasLinkEvent ev) {
    +    DebugEx.Info("Link broken: {0} <=> {1}", ev.source, ev.target);
    +  }
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnStopLinking.htm b/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnStopLinking.htm new file mode 100644 index 00000000..2faa200f --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IKasEvents_OnStopLinking.htm @@ -0,0 +1,57 @@ +IKasEvents.OnStopLinking Property

    IKasEventsOnStopLinking Property

    Triggers when a source has stopped linking mode.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    EventData<ILinkSource> OnStopLinking { get; }
    Request Example + View Source

    Property Value

    Type: EventDataILinkSource
    Collection to add or remove a callback.
    Remarks
    The argument of the callback is the link source that ended the mode.
    Examples
    public class KasEventsExample1: PartModule {
    +  public override void OnAwake() {
    +    base.OnAwake();
    +    KASAPI.KasEvents.OnStartLinking.Add(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Add(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Add(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Add(LinkBroken);
    +  }
    +
    +  void OnDestroy() {
    +    KASAPI.KasEvents.OnStartLinking.Remove(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Remove(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Remove(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Remove(LinkBroken);
    +  }
    +
    +  void LinkStarted(ILinkSource source) {
    +    DebugEx.Info("Link started by: {0}", source);
    +  }
    +
    +  void LinkStopped(ILinkSource source) {
    +    DebugEx.Info("Link stopepd by: {0}", source);
    +  }
    +
    +  void LinkCreated(IKasLinkEvent ev) {
    +    DebugEx.Info("Link created: {0} <=> {1}", ev.source, ev.target);
    +  }
    +
    +  void LinkBroken(IKasLinkEvent ev) {
    +    DebugEx.Info("Link broken: {0} <=> {1}", ev.source, ev.target);
    +  }
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IKasLinkEvent_actor.htm b/docs/APIv1/html/P_KASAPIv1_IKasLinkEvent_actor.htm new file mode 100644 index 00000000..fb0a1fe2 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IKasLinkEvent_actor.htm @@ -0,0 +1,26 @@ +IKasLinkEvent.actor Property

    IKasLinkEventactor Property

    Actor who changed the links tate.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    LinkActorType actor { get; }
    Request Example + View Source

    Property Value

    Type: LinkActorType
    The actor type that initated teh action.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IKasLinkEvent_source.htm b/docs/APIv1/html/P_KASAPIv1_IKasLinkEvent_source.htm new file mode 100644 index 00000000..c31f1579 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IKasLinkEvent_source.htm @@ -0,0 +1,26 @@ +IKasLinkEvent.source Property

    IKasLinkEventsource Property

    Link source.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkSource source { get; }
    Request Example + View Source

    Property Value

    Type: ILinkSource
    The link source module.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IKasLinkEvent_target.htm b/docs/APIv1/html/P_KASAPIv1_IKasLinkEvent_target.htm new file mode 100644 index 00000000..96939ee5 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IKasLinkEvent_target.htm @@ -0,0 +1,26 @@ +IKasLinkEvent.target Property

    IKasLinkEventtarget Property

    Link target.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkTarget target { get; }
    Request Example + View Source

    Property Value

    Type: ILinkTarget
    The link target module.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_cfgMaxCableLength.htm b/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_cfgMaxCableLength.htm new file mode 100644 index 00000000..5dd3ea06 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_cfgMaxCableLength.htm @@ -0,0 +1,26 @@ +ILinkCableJoint.cfgMaxCableLength Property

    ILinkCableJointcfgMaxCableLength Property

    Maximum allowed distance between the parts to establish a link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    float cfgMaxCableLength { get; }
    Request Example + View Source

    Property Value

    Type: Single
    Distance in meters. It's constant and doesn't depend on the joint state.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_deployedCableLength.htm b/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_deployedCableLength.htm new file mode 100644 index 00000000..7c70819a --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_deployedCableLength.htm @@ -0,0 +1,35 @@ +ILinkCableJoint.deployedCableLength Property

    ILinkCableJointdeployedCableLength Property

    + Maximum possible distance between the source and head/target physical anchors. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    float deployedCableLength { get; }
    Request Example + View Source

    Property Value

    Type: Single
    + The length in meters. Always positive, if the PhysX joint is created. Zero, otherwise. +
    Remarks
    + This is a desired distance. The engine will try to keep it equal or less to this value, + but depending on the forces that affect the objects, this distance may be never reached. + Various implementations can adjust this value, but not greater than + cfgMaxCableLength. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_headRb.htm b/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_headRb.htm new file mode 100644 index 00000000..cc57e741 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_headRb.htm @@ -0,0 +1,26 @@ +ILinkCableJoint.headRb Property

    ILinkCableJointheadRb Property

    Rigidbody of the physical cable head.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Rigidbody headRb { get; }
    Request Example + View Source

    Property Value

    Type: Rigidbody
    The rigibody object, or null if there is no physical head started.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_realCableLength.htm b/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_realCableLength.htm new file mode 100644 index 00000000..3e9b8aa7 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkCableJoint_realCableLength.htm @@ -0,0 +1,34 @@ +ILinkCableJoint.realCableLength Property

    ILinkCableJointrealCableLength Property

    + Returns the actual distance between the source and target/head physical anchors. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    float realCableLength { get; }
    Request Example + View Source

    Property Value

    Type: Single
    + The distance in meters. Always positive, if the PhysX joint is created. Zero, otherwise. +
    Remarks
    + It's always 0 if the link is not established and there is no head started. Keep in mind + that the real length is almost never equal to the deployed cable lenght. This is due to how + the PhysX engine works: the force can only be applied when the joint is stretched. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkJoint_cfgJointName.htm b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_cfgJointName.htm new file mode 100644 index 00000000..7dc11654 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_cfgJointName.htm @@ -0,0 +1,26 @@ +ILinkJoint.cfgJointName Property

    ILinkJointcfgJointName Property

    Identifier of the joint on the part.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string cfgJointName { get; }
    Request Example + View Source

    Property Value

    Type: String
    An arbitary string that identifies this joint.
    Remarks
    It's unique in scope of the part.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkJoint_coupleOnLinkMode.htm b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_coupleOnLinkMode.htm new file mode 100644 index 00000000..b3b41abe --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_coupleOnLinkMode.htm @@ -0,0 +1,30 @@ +ILinkJoint.coupleOnLinkMode Property

    ILinkJointcoupleOnLinkMode Property

    Tells the current coupling mode.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool coupleOnLinkMode { get; }
    Request Example + View Source

    Property Value

    Type: Boolean
    true if the vessels should couple on link (merge them into one).
    Remarks
    + Note, that if this mode set to true, it doesn't mean that the parts are coupled thru + this specific joint module. It only means that the parts, linked via this joint, are + guaranteed to be coupled, but the actual docking can be done by other joint or part. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkJoint_isLinked.htm b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_isLinked.htm new file mode 100644 index 00000000..fe583604 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_isLinked.htm @@ -0,0 +1,26 @@ +ILinkJoint.isLinked Property

    ILinkJointisLinked Property

    Tells if there is a physical joint created.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool isLinked { get; }
    Request Example + View Source

    Property Value

    Type: Boolean
    true if the source and target parts are physically linked.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkJoint_linkSource.htm b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_linkSource.htm new file mode 100644 index 00000000..ecd83206 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_linkSource.htm @@ -0,0 +1,26 @@ +ILinkJoint.linkSource Property

    ILinkJointlinkSource Property

    Tells the current link source.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkSource linkSource { get; }
    Request Example + View Source

    Property Value

    Type: ILinkSource
    The link's source or null if the link is not established.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkJoint_linkTarget.htm b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_linkTarget.htm new file mode 100644 index 00000000..c10afd94 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkJoint_linkTarget.htm @@ -0,0 +1,26 @@ +ILinkJoint.linkTarget Property

    ILinkJointlinkTarget Property

    Tells the current link target.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkTarget linkTarget { get; }
    Request Example + View Source

    Property Value

    Type: ILinkTarget
    The link's target or null if the link is not established.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_attachNode.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_attachNode.htm new file mode 100644 index 00000000..906ef27b --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_attachNode.htm @@ -0,0 +1,29 @@ +ILinkPeer.attachNode Property

    ILinkPeerattachNode Property

    Parsed attach node definition of the peer.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    AttachNode attachNode { get; }
    Request Example + View Source

    Property Value

    Type: AttachNode
    The attach node. It's never null.
    Remarks
    + This node is required to be fully setup on the part creation. The node must belong to the + part, but it's not required to be listed in the part's attach nodes list. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_cfgAttachNodeName.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_cfgAttachNodeName.htm new file mode 100644 index 00000000..b701f145 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_cfgAttachNodeName.htm @@ -0,0 +1,31 @@ +ILinkPeer.cfgAttachNodeName Property

    ILinkPeercfgAttachNodeName Property

    Name of the attach node on the part.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string cfgAttachNodeName { get; }
    Request Example + View Source

    Property Value

    Type: String
    Arbitrary string. It cannot be empty.
    Remarks
    + Every link peer is bound to an attach node thru which the link is made (including the coupling + operations). Several peer modules can share the same node, but in case of any of the modules + has made a link, the other dependents will go into the Locked state. + I.e. only one link can be made thru one attach node. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_cfgDependentNodeNames.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_cfgDependentNodeNames.htm new file mode 100644 index 00000000..803041b4 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_cfgDependentNodeNames.htm @@ -0,0 +1,39 @@ +ILinkPeer.cfgDependentNodeNames Property

    ILinkPeercfgDependentNodeNames Property

    + List of the attach node names, which this module doesn't own, but wants to align the state + with. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string[] cfgDependentNodeNames { get; }
    Request Example + View Source

    Property Value

    Type: String
    The list of the node names. It's never null.
    Remarks

    + The module will track the nodes and will adjust its state as those nodes were owned by the + module. However, this module will never change the mode of those nodes. This can be used to + lock or block the peer modules that control the different primary nodes, but need to cooperate + with the other similar modules on the part. This setting allows defining a group of peer + modules which only allow linking of a single module at the time. +

    + Note, that the part's cfgAttachNodeName is not present in this list by + default. The implementation should explicitly check for the primary node, or the config must + take care of it. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_cfgLinkType.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_cfgLinkType.htm new file mode 100644 index 00000000..b085c2a2 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_cfgLinkType.htm @@ -0,0 +1,29 @@ +ILinkPeer.cfgLinkType Property

    ILinkPeercfgLinkType Property

    Source link type identifier.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string cfgLinkType { get; }
    Request Example + View Source

    Property Value

    Type: String
    Arbitrary string. Can be empty.
    Remarks
    + This value is used to find the compatible peers. The peers of the different types will not + be able to connect with each other. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_coupleNode.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_coupleNode.htm new file mode 100644 index 00000000..25c8ed33 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_coupleNode.htm @@ -0,0 +1,31 @@ +ILinkPeer.coupleNode Property

    ILinkPeercoupleNode Property

    + Attach node to use when the peers need to couple into a single parts hierarchy. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    AttachNode coupleNode { get; }
    Request Example + View Source

    Property Value

    Type: AttachNode
    The attach node or null if the peer doesn't support coupling.
    Remarks
    + The node is not required to be in the list of the attach nodes of the part. The caller must + ensure it before doing the actual coupling. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_isLinked.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_isLinked.htm new file mode 100644 index 00000000..1b1d873e --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_isLinked.htm @@ -0,0 +1,26 @@ +ILinkPeer.isLinked Property

    ILinkPeerisLinked Property

    Tells if this peer is currectly linked to another peer.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool isLinked { get; }
    Request Example + View Source

    Property Value

    Type: Boolean
    The current state of the link.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_isLocked.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_isLocked.htm new file mode 100644 index 00000000..3dd0b713 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_isLocked.htm @@ -0,0 +1,33 @@ +ILinkPeer.isLocked Property

    ILinkPeerisLocked Property

    + Tells if the peer's link ability is disabled due to it's attach node is taken by another peer + on the same part. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool isLocked { get; }
    Request Example + View Source

    Property Value

    Type: Boolean
    The locked state.
    Remarks
    + When multiple peers on the part share the same attach node, only one of them can make a link + via this node. Once the attach node is used for a link, the other peers gets locked and don't + interfere until the link is broken and the node is released. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_isNodeBlocked.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_isNodeBlocked.htm new file mode 100644 index 00000000..1af67828 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_isNodeBlocked.htm @@ -0,0 +1,27 @@ +ILinkPeer.isNodeBlocked Property

    ILinkPeerisNodeBlocked Property

    Tells if the peer's attach node is occupied by an incompatible part.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool isNodeBlocked { get; }
    Request Example + View Source

    Property Value

    Type: Boolean
    true if the state is NodeIsBlocked, or false, otherwise. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_linkModuleIndex.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_linkModuleIndex.htm new file mode 100644 index 00000000..83fc59f0 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_linkModuleIndex.htm @@ -0,0 +1,26 @@ +ILinkPeer.linkModuleIndex Property

    ILinkPeerlinkModuleIndex Property

    The persisted index of the module on the part of the other peer.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    int linkModuleIndex { get; }
    Request Example + View Source

    Property Value

    Type: Int32
    The module index or -1.
    Remarks
    This value must be available during the vessel loading.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_linkPartId.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_linkPartId.htm new file mode 100644 index 00000000..39046481 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_linkPartId.htm @@ -0,0 +1,26 @@ +ILinkPeer.linkPartId Property

    ILinkPeerlinkPartId Property

    The persisted ID of the linked part of the other peer.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    uint linkPartId { get; }
    Request Example + View Source

    Property Value

    Type: UInt32
    The flight ID of the part or 0.
    Remarks
    This value must be available during the vessel loading.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_linkState.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_linkState.htm new file mode 100644 index 00000000..27826d51 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_linkState.htm @@ -0,0 +1,26 @@ +ILinkPeer.linkState Property

    ILinkPeerlinkState Property

    Current state of the peer.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    LinkState linkState { get; }
    Request Example + View Source

    Property Value

    Type: LinkState
    The current state.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_nodeTransform.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_nodeTransform.htm new file mode 100644 index 00000000..f2f97152 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_nodeTransform.htm @@ -0,0 +1,29 @@ +ILinkPeer.nodeTransform Property

    ILinkPeernodeTransform Property

    + Transform that defines the position and orientation of the base node to which all the + renderers and physical anchors are aligned. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Transform nodeTransform { get; }
    Request Example + View Source

    Property Value

    Type: Transform
    Game object transformation. It's never null.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_otherPeer.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_otherPeer.htm new file mode 100644 index 00000000..57b4576f --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_otherPeer.htm @@ -0,0 +1,26 @@ +ILinkPeer.otherPeer Property

    ILinkPeerotherPeer Property

    Other end of the link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkPeer otherPeer { get; }
    Request Example + View Source

    Property Value

    Type: ILinkPeer
    The other end of the link or null if no link established.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkPeer_part.htm b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_part.htm new file mode 100644 index 00000000..0cc37f30 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkPeer_part.htm @@ -0,0 +1,26 @@ +ILinkPeer.part Property

    ILinkPeerpart Property

    Part that owns the source.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Part part { get; }
    Request Example + View Source

    Property Value

    Type: Part
    Instance of the part.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_cfgRendererName.htm b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_cfgRendererName.htm new file mode 100644 index 00000000..44b7fa57 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_cfgRendererName.htm @@ -0,0 +1,28 @@ +ILinkRenderer.cfgRendererName Property

    ILinkRenderercfgRendererName Property

    + Unique name of the randerer that is used by the other modules to find this renderer. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string cfgRendererName { get; }
    Request Example + View Source

    Property Value

    Type: String
    Arbitrary string. Can be empty.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_colorOverride.htm b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_colorOverride.htm new file mode 100644 index 00000000..c10bac94 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_colorOverride.htm @@ -0,0 +1,26 @@ +ILinkRenderer.colorOverride Property

    ILinkRenderercolorOverride Property

    Temporally sets another color to the link meshes.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Nullable<Color> colorOverride { get; set; }
    Request Example + View Source

    Property Value

    Type: NullableColor
    Color or null if the original mesh color should be used.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_isPhysicalCollider.htm b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_isPhysicalCollider.htm new file mode 100644 index 00000000..1ba82e56 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_isPhysicalCollider.htm @@ -0,0 +1,30 @@ +ILinkRenderer.isPhysicalCollider Property

    ILinkRendererisPhysicalCollider Property

    Tells if the link interacts with the rigid bodies.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool isPhysicalCollider { get; set; }
    Request Example + View Source

    Property Value

    Type: Boolean
    The current state of the collider(s).
    Remarks
    + Setting this property to false turns the link colliders into triggers. I.e. the link + won't have a physical impact but the collision events will be sent to the parent game object. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_isStarted.htm b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_isStarted.htm new file mode 100644 index 00000000..6b264e57 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_isStarted.htm @@ -0,0 +1,26 @@ +ILinkRenderer.isStarted Property

    ILinkRendererisStarted Property

    Tells if the renderer is started and active.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool isStarted { get; }
    Request Example + View Source

    Property Value

    Type: Boolean
    The start state.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_shaderNameOverride.htm b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_shaderNameOverride.htm new file mode 100644 index 00000000..abe1b8ed --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_shaderNameOverride.htm @@ -0,0 +1,28 @@ +ILinkRenderer.shaderNameOverride Property

    ILinkRenderershaderNameOverride Property

    Temporally sets another shader to the link meshes.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    string shaderNameOverride { get; set; }
    Request Example + View Source

    Property Value

    Type: String
    + Name of the shader or null if the original mesh shader should be used. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_sourceTransform.htm b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_sourceTransform.htm new file mode 100644 index 00000000..44fb3231 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_sourceTransform.htm @@ -0,0 +1,29 @@ +ILinkRenderer.sourceTransform Property

    ILinkRenderersourceTransform Property

    + Base position/direction of the connection point at the beginning of the link. The source + joint models will be aligned against this transform. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Transform sourceTransform { get; }
    Request Example + View Source

    Property Value

    Type: Transform
    The source game object's transform.
    Remarks
    The value is undefined if the renderer is not started.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_stretchRatio.htm b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_stretchRatio.htm new file mode 100644 index 00000000..edec2b81 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_stretchRatio.htm @@ -0,0 +1,33 @@ +ILinkRenderer.stretchRatio Property

    ILinkRendererstretchRatio Property

    + Defines how significantly the link has stretched or shrinked comparing to it's "normal" state. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    float stretchRatio { get; set; }
    Request Example + View Source

    Property Value

    Type: Single
    The stretch/shrink ratio.
    Remarks
    + A value below 1.0 means the link has shrinked. Otherwise, it's stretched. +

    + This ratio only affects the visual representation. For the renderers that don't care about + stretching it's ok to always return 1.0 from the getter and ignore calls to the setter. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_targetTransform.htm b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_targetTransform.htm new file mode 100644 index 00000000..fc2aac6f --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkRenderer_targetTransform.htm @@ -0,0 +1,29 @@ +ILinkRenderer.targetTransform Property

    ILinkRenderertargetTransform Property

    + Base position/direction of the connection point at the end of the link. The target + joint models will be aligned against this transform. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Transform targetTransform { get; }
    Request Example + View Source

    Property Value

    Type: Transform
    The target game object's transform.
    Remarks
    The value is undefined if the renderer is not started.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkSource_linkJoint.htm b/docs/APIv1/html/P_KASAPIv1_ILinkSource_linkJoint.htm new file mode 100644 index 00000000..f3d047d8 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkSource_linkJoint.htm @@ -0,0 +1,26 @@ +ILinkSource.linkJoint Property

    ILinkSourcelinkJoint Property

    Joint module that manages a physical link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkJoint linkJoint { get; }
    Request Example + View Source

    Property Value

    Type: ILinkJoint
    The physical joint module on the part.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkSource_linkRenderer.htm b/docs/APIv1/html/P_KASAPIv1_ILinkSource_linkRenderer.htm new file mode 100644 index 00000000..e6e108ec --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkSource_linkRenderer.htm @@ -0,0 +1,34 @@ +ILinkSource.linkRenderer Property

    ILinkSourcelinkRenderer Property

    Renderer of the link meshes.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkRenderer linkRenderer { get; }
    Request Example + View Source

    Property Value

    Type: ILinkRenderer
    The renderer that represents the link.
    Examples
    public ILinkRenderer linkRenderer { get; private set; }
    +
    +[KSPField]
    +public string rendererName = "";
    +
    +void InitRenderer() {
    +  linkRenderer = part.FindModulesImplementing<ILinkRenderer>()
    +      .FirstOrDefault(r => r.cfgRendererName == rendererName);
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkSource_linkTarget.htm b/docs/APIv1/html/P_KASAPIv1_ILinkSource_linkTarget.htm new file mode 100644 index 00000000..0d9466ec --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkSource_linkTarget.htm @@ -0,0 +1,36 @@ +ILinkSource.linkTarget Property

    ILinkSourcelinkTarget Property

    Target of the link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkTarget linkTarget { get; }
    Request Example + View Source

    Property Value

    Type: ILinkTarget
    Target or null if nothing is linked.
    Remarks
    It only defined for an established link.
    Examples
    // Returns the linked part of the source, if any. It assumes there is exactly one source module
    +// on the source part.
    +public static Part FindTargetFromSource(Part srcPart) {
    +  var source = srcPart.FindModulesImplementing<ILinkSource>()
    +      .FirstOrDefault(s => s.linkTarget != null);
    +  if (source == null) {
    +    Debug.Log("Source is not connected");
    +    return null;
    +  }
    +  return source.linkTarget.part;
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkTarget_linkSource.htm b/docs/APIv1/html/P_KASAPIv1_ILinkTarget_linkSource.htm new file mode 100644 index 00000000..54136454 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkTarget_linkSource.htm @@ -0,0 +1,44 @@ +ILinkTarget.linkSource Property

    ILinkTargetlinkSource Property

    Source that maintains the link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    ILinkSource linkSource { get; set; }
    Request Example + View Source

    Property Value

    Type: ILinkSource
    Source or null if nothing is linked.
    Remarks

    + Setting of this property changes the target state: +

    • A non-null value changes the state to Linked.
    • null value changes the state to Available.

    Assigning the same value to this property doesn't trigger a state change event.

    + Note, that not any state transition is possible. If the transition is invalid then an + exception is thrown. +

    + It's descouraged to assign this property from a code other than an implementation of + ILinkSource. +

    Examples
    // Returns the linked part of the target, if any. It assumes there is exactly one target module
    +// on the part.
    +public static Part FindSourceFromTarget(Part tgtPart) {
    +  var source = tgtPart.FindModulesImplementing<ILinkTarget>()
    +      .FirstOrDefault(s => s.linkSource != null);
    +  if (source == null) {
    +    Debug.Log("Target is not connected");
    +    return null;
    +  }
    +  return source.linkSource.part;
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkVesselInfo_part.htm b/docs/APIv1/html/P_KASAPIv1_ILinkVesselInfo_part.htm new file mode 100644 index 00000000..92040c3c --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkVesselInfo_part.htm @@ -0,0 +1,26 @@ +ILinkVesselInfo.part Property

    ILinkVesselInfopart Property

    Part that owns the info.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    Part part { get; }
    Request Example + View Source

    Property Value

    Type: Part
    Instance of the part.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_ILinkVesselInfo_vesselInfo.htm b/docs/APIv1/html/P_KASAPIv1_ILinkVesselInfo_vesselInfo.htm new file mode 100644 index 00000000..e15a06c7 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_ILinkVesselInfo_vesselInfo.htm @@ -0,0 +1,26 @@ +ILinkVesselInfo.vesselInfo Property

    ILinkVesselInfovesselInfo Property

    The persisted vessel's info.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    DockedVesselInfo vesselInfo { get; set; }
    Request Example + View Source

    Property Value

    Type: DockedVesselInfo
    The vessel info or null.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IWinchControl_cfgMaxCableLength.htm b/docs/APIv1/html/P_KASAPIv1_IWinchControl_cfgMaxCableLength.htm new file mode 100644 index 00000000..bb2bd9db --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IWinchControl_cfgMaxCableLength.htm @@ -0,0 +1,28 @@ +IWinchControl.cfgMaxCableLength Property

    IWinchControlcfgMaxCableLength Property

    Maximum reserve of the cable in the winch.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    float cfgMaxCableLength { get; }
    Request Example + View Source

    Property Value

    Type: Single
    The length of the cable in meters.
    Remarks
    + This is the maximum possible distance between the winch and its connector head. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IWinchControl_cfgMotorMaxSpeed.htm b/docs/APIv1/html/P_KASAPIv1_IWinchControl_cfgMotorMaxSpeed.htm new file mode 100644 index 00000000..bf816bcd --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IWinchControl_cfgMotorMaxSpeed.htm @@ -0,0 +1,26 @@ +IWinchControl.cfgMotorMaxSpeed Property

    IWinchControlcfgMotorMaxSpeed Property

    Maximum speed of retracting or extending the cable.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    float cfgMotorMaxSpeed { get; }
    Request Example + View Source

    Property Value

    Type: Single
    Speed in meters per second.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IWinchControl_currentCableLength.htm b/docs/APIv1/html/P_KASAPIv1_IWinchControl_currentCableLength.htm new file mode 100644 index 00000000..0a723e66 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IWinchControl_currentCableLength.htm @@ -0,0 +1,31 @@ +IWinchControl.currentCableLength Property

    IWinchControlcurrentCableLength Property

    Amount of the cable that was extended till the moment.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    float currentCableLength { get; }
    Request Example + View Source

    Property Value

    Type: Single
    The length of the cable in meters.
    Remarks
    + This value is dynamic and can be affected by the motor. This is not the actual distance + between the winch and the connector head! In order to find one, take the + physicalAnchorTransform values from the source and target, and calculate the + distance between their positions. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IWinchControl_isConnectorLocked.htm b/docs/APIv1/html/P_KASAPIv1_IWinchControl_isConnectorLocked.htm new file mode 100644 index 00000000..5d45315e --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IWinchControl_isConnectorLocked.htm @@ -0,0 +1,31 @@ +IWinchControl.isConnectorLocked Property

    IWinchControlisConnectorLocked Property

    Tells if the cable connector head is locked into the winch.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    bool isConnectorLocked { get; }
    Request Example + View Source

    Property Value

    Type: Boolean
    true if the connector is rigid relative to the owner part.
    Remarks
    + In the locked state there is no free cable available, and there is no moving part + (the connector). If the winch is linked to a part and the connector is locked, then the traget + part is docked to the vessel that owns the winch. When the connector unlocks, the + attached part undocks from the vessel. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IWinchControl_motorCurrentSpeed.htm b/docs/APIv1/html/P_KASAPIv1_IWinchControl_motorCurrentSpeed.htm new file mode 100644 index 00000000..3df07863 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IWinchControl_motorCurrentSpeed.htm @@ -0,0 +1,34 @@ +IWinchControl.motorCurrentSpeed Property

    IWinchControlmotorCurrentSpeed Property

    Current speed of the motor spindel.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    float motorCurrentSpeed { get; }
    Request Example + View Source

    Property Value

    Type: Single
    The speed in meters per second.
    Remarks

    + This is the speed at which the cable is being extended or retracted at the current moment. + The actual speed of the motor can differ from what was set via the control methods (e.g. + SetMotor(Single)) due to there is some inetria momentum. Negative speed means the cable + is being retracted, and the positive speed means the cable is being extened. +

    + The motor speed is always trying to match the motorTargetSpeed. Depending on the + part's implementation and settings, some time may be needed to actually have the match. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/P_KASAPIv1_IWinchControl_motorTargetSpeed.htm b/docs/APIv1/html/P_KASAPIv1_IWinchControl_motorTargetSpeed.htm new file mode 100644 index 00000000..36877be8 --- /dev/null +++ b/docs/APIv1/html/P_KASAPIv1_IWinchControl_motorTargetSpeed.htm @@ -0,0 +1,29 @@ +IWinchControl.motorTargetSpeed Property

    IWinchControlmotorTargetSpeed Property

    Desired speed of the motor spindel.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    float motorTargetSpeed { get; }
    Request Example + View Source

    Property Value

    Type: Single
    The speed target. It's can never exceed the part's limits setting.
    Remarks
    + Ideally, the motor is always working at this speed. However, in the physics world of KSP the + motor may operate at the lower or the higher speeds. It depends of the various conditions. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/PageNotFound.htm b/docs/APIv1/html/PageNotFound.htm new file mode 100644 index 00000000..59f49943 --- /dev/null +++ b/docs/APIv1/html/PageNotFound.htm @@ -0,0 +1,31 @@ + + + + + + + + + Page Not Found + + + + + + + + + + +
    +

    We're sorry, the page you requested cannot be found.

    +

    The URL might be misspelled or the page you are looking for is no longer available. If you entered +the web address, check that it doesn't contain a typo. You can use the search box at the top of the page to +try and locate the page.

    +
    + + + diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_ICommonConfig.htm b/docs/APIv1/html/Properties_T_KASAPIv1_ICommonConfig.htm new file mode 100644 index 00000000..83fd2fba --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_ICommonConfig.htm @@ -0,0 +1,10 @@ +ICommonConfig Properties

    ICommonConfig Properties

    The ICommonConfig type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyCode examplekeyDropConnector
    Keyboard key to trigger the drop connector event.
    Public propertyCode examplekeyPickupConnector
    Keyboard key to trigger the pickup connector event.
    Public propertysndPathBipWrong
    URL of the sound for the impossible action.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_IKasEvents.htm b/docs/APIv1/html/Properties_T_KASAPIv1_IKasEvents.htm new file mode 100644 index 00000000..41282f00 --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_IKasEvents.htm @@ -0,0 +1,10 @@ +IKasEvents Properties

    IKasEvents Properties

    The IKasEvents type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyCode exampleOnLinkBroken
    Triggers when a link between two parts has been broken.
    Public propertyCode exampleOnLinkCreated
    Triggers when a link between two parts has been successfully established.
    Public propertyCode exampleOnStartLinking
    Triggers when a source has initiated linking mode.
    Public propertyCode exampleOnStopLinking
    Triggers when a source has stopped linking mode.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_IKasLinkEvent.htm b/docs/APIv1/html/Properties_T_KASAPIv1_IKasLinkEvent.htm new file mode 100644 index 00000000..68be79f9 --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_IKasLinkEvent.htm @@ -0,0 +1,10 @@ +IKasLinkEvent Properties

    IKasLinkEvent Properties

    The IKasLinkEvent type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyactor
    Actor who changed the links tate.
    Public propertysource
    Link source.
    Public propertytarget
    Link target.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_ILinkCableJoint.htm b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkCableJoint.htm new file mode 100644 index 00000000..adb5aad7 --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkCableJoint.htm @@ -0,0 +1,14 @@ +ILinkCableJoint Properties

    ILinkCableJoint Properties

    The ILinkCableJoint type exposes the following members.

    Properties
    +   + NameDescription
    Public propertycfgMaxCableLength
    Maximum allowed distance between the parts to establish a link.
    Public propertydeployedCableLength
    + Maximum possible distance between the source and head/target physical anchors. +
    Public propertyheadRb
    Rigidbody of the physical cable head.
    Public propertyrealCableLength
    + Returns the actual distance between the source and target/head physical anchors. +
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_ILinkJoint.htm b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkJoint.htm new file mode 100644 index 00000000..2bbc6a7a --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkJoint.htm @@ -0,0 +1,10 @@ +ILinkJoint Properties

    ILinkJoint Properties

    The ILinkJoint type exposes the following members.

    Properties
    +   + NameDescription
    Public propertycfgJointName
    Identifier of the joint on the part.
    Public propertycoupleOnLinkMode
    Tells the current coupling mode.
    Public propertyisLinked
    Tells if there is a physical joint created.
    Public propertylinkSource
    Tells the current link source.
    Public propertylinkTarget
    Tells the current link target.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_ILinkPeer.htm b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkPeer.htm new file mode 100644 index 00000000..4b381c44 --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkPeer.htm @@ -0,0 +1,21 @@ +ILinkPeer Properties

    ILinkPeer Properties

    The ILinkPeer type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyattachNode
    Parsed attach node definition of the peer.
    Public propertycfgAttachNodeName
    Name of the attach node on the part.
    Public propertycfgDependentNodeNames
    + List of the attach node names, which this module doesn't own, but wants to align the state + with. +
    Public propertycfgLinkType
    Source link type identifier.
    Public propertycoupleNode
    + Attach node to use when the peers need to couple into a single parts hierarchy. +
    Public propertyisLinked
    Tells if this peer is currectly linked to another peer.
    Public propertyisLocked
    + Tells if the peer's link ability is disabled due to it's attach node is taken by another peer + on the same part. +
    Public propertyisNodeBlocked
    Tells if the peer's attach node is occupied by an incompatible part.
    Public propertylinkModuleIndex
    The persisted index of the module on the part of the other peer.
    Public propertylinkPartId
    The persisted ID of the linked part of the other peer.
    Public propertylinkState
    Current state of the peer.
    Public propertynodeTransform
    + Transform that defines the position and orientation of the base node to which all the + renderers and physical anchors are aligned. +
    Public propertyotherPeer
    Other end of the link.
    Public propertypart
    Part that owns the source.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_ILinkRenderer.htm b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkRenderer.htm new file mode 100644 index 00000000..4a5ea966 --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkRenderer.htm @@ -0,0 +1,20 @@ +ILinkRenderer Properties

    ILinkRenderer Properties

    The ILinkRenderer type exposes the following members.

    Properties
    +   + NameDescription
    Public propertycfgRendererName
    + Unique name of the randerer that is used by the other modules to find this renderer. +
    Public propertycolorOverride
    Temporally sets another color to the link meshes.
    Public propertyisPhysicalCollider
    Tells if the link interacts with the rigid bodies.
    Public propertyisStarted
    Tells if the renderer is started and active.
    Public propertyshaderNameOverride
    Temporally sets another shader to the link meshes.
    Public propertysourceTransform
    + Base position/direction of the connection point at the beginning of the link. The source + joint models will be aligned against this transform. +
    Public propertystretchRatio
    + Defines how significantly the link has stretched or shrinked comparing to it's "normal" state. +
    Public propertytargetTransform
    + Base position/direction of the connection point at the end of the link. The target + joint models will be aligned against this transform. +
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_ILinkSource.htm b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkSource.htm new file mode 100644 index 00000000..c02496c2 --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkSource.htm @@ -0,0 +1,10 @@ +ILinkSource Properties

    ILinkSource Properties

    The ILinkSource type exposes the following members.

    Properties
    +   + NameDescription
    Public propertylinkJoint
    Joint module that manages a physical link.
    Public propertyCode examplelinkRenderer
    Renderer of the link meshes.
    Public propertyCode examplelinkTarget
    Target of the link.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_ILinkTarget.htm b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkTarget.htm new file mode 100644 index 00000000..28f86361 --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkTarget.htm @@ -0,0 +1,10 @@ +ILinkTarget Properties

    ILinkTarget Properties

    The ILinkTarget type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyCode examplelinkSource
    Source that maintains the link.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_ILinkVesselInfo.htm b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkVesselInfo.htm new file mode 100644 index 00000000..88f6673a --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_ILinkVesselInfo.htm @@ -0,0 +1,10 @@ +ILinkVesselInfo Properties

    ILinkVesselInfo Properties

    The ILinkVesselInfo type exposes the following members.

    Properties
    +   + NameDescription
    Public propertypart
    Part that owns the info.
    Public propertyvesselInfo
    The persisted vessel's info.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/Properties_T_KASAPIv1_IWinchControl.htm b/docs/APIv1/html/Properties_T_KASAPIv1_IWinchControl.htm new file mode 100644 index 00000000..feeb5da4 --- /dev/null +++ b/docs/APIv1/html/Properties_T_KASAPIv1_IWinchControl.htm @@ -0,0 +1,10 @@ +IWinchControl Properties

    IWinchControl Properties

    The IWinchControl type exposes the following members.

    Properties
    +   + NameDescription
    Public propertycfgMaxCableLength
    Maximum reserve of the cable in the winch.
    Public propertycfgMotorMaxSpeed
    Maximum speed of retracting or extending the cable.
    Public propertycurrentCableLength
    Amount of the cable that was extended till the moment.
    Public propertyisConnectorLocked
    Tells if the cable connector head is locked into the winch.
    Public propertymotorCurrentSpeed
    Current speed of the motor spindel.
    Public propertymotorTargetSpeed
    Desired speed of the motor spindel.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_GUILinkMode.htm b/docs/APIv1/html/T_KASAPIv1_GUILinkMode.htm new file mode 100644 index 00000000..73d2923e --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_GUILinkMode.htm @@ -0,0 +1,30 @@ +GUILinkMode Enumeration

    GUILinkMode Enumeration

    Specifies how the linking mode is displayed in GUI.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public enum GUILinkMode
    Request Example + View Source
    Members
    +   + Member nameValueDescription
    None0Uninitialized value. Must never be used in the real calls.
    Interactive1 + The ending part of the link will expect the player's input to complete or cancel the link. +
    API2No GUI interaction is expected to complete the link.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_IAttachNodesUtils.htm b/docs/APIv1/html/T_KASAPIv1_IAttachNodesUtils.htm new file mode 100644 index 00000000..083a6041 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_IAttachNodesUtils.htm @@ -0,0 +1,28 @@ +IAttachNodesUtils Interface

    IAttachNodesUtils Interface

    Various methods to deal with part's attach nodes.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface IAttachNodesUtils
    Request Example + View Source

    The IAttachNodesUtils type exposes the following members.

    Methods
    +   + NameDescription
    Public methodAddNode
    Adds an existing attach node into the part.
    Public methodCreateNode
    Creates a new attach node on the part.
    Public methodDropNode
    Drops the attach node on the part.
    Public methodGetTransformForNode
    Gets or creates a transform object for the attach node.
    Public methodNodeId
    Returns a user friendly attach node representation.
    Public methodParseNodeFromString
    Creates an attach node form the part's config definition string.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ICommonConfig.htm b/docs/APIv1/html/T_KASAPIv1_ICommonConfig.htm new file mode 100644 index 00000000..e217d506 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ICommonConfig.htm @@ -0,0 +1,28 @@ +ICommonConfig Interface

    ICommonConfig Interface

    Container for the various global settings of the mod.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ICommonConfig
    Request Example + View Source

    The ICommonConfig type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyCode examplekeyDropConnector
    Keyboard key to trigger the drop connector event.
    Public propertyCode examplekeyPickupConnector
    Keyboard key to trigger the pickup connector event.
    Public propertysndPathBipWrong
    URL of the sound for the impossible action.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_IJointUtils.htm b/docs/APIv1/html/T_KASAPIv1_IJointUtils.htm new file mode 100644 index 00000000..3232bbfb --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_IJointUtils.htm @@ -0,0 +1,28 @@ +IJointUtils Interface

    IJointUtils Interface

    Various tools to deal with KSP part joints.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface IJointUtils
    Request Example + View Source

    The IJointUtils type exposes the following members.

    Methods
    +   + NameDescription
    Public methodDumpJoint
    Outputs all properties of the joint to the string.
    Public methodDumpSpringJoint
    Outputs all properties of the joint to the string.
    Public methodResetJoint
    Initializes joint to a consistent state.
    Public methodSetupDistanceJoint
    Sets up a cannonical distance joint.
    Public methodSetupFixedJoint
    Sets up a cannonical fixed joint.
    Public methodSetupPrismaticJoint
    Sets up joint so what it becomes a prismatic joint.
    Public methodSetupSphericalJoint
    Sets up joint so what it becomes a spherical hinge joint.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_IKasEvents.htm b/docs/APIv1/html/T_KASAPIv1_IKasEvents.htm new file mode 100644 index 00000000..24ca2389 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_IKasEvents.htm @@ -0,0 +1,64 @@ +IKasEvents Interface

    IKasEvents Interface

    Defines global events that are triggered by KAS.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface IKasEvents
    Request Example + View Source

    The IKasEvents type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyCode exampleOnLinkBroken
    Triggers when a link between two parts has been broken.
    Public propertyCode exampleOnLinkCreated
    Triggers when a link between two parts has been successfully established.
    Public propertyCode exampleOnStartLinking
    Triggers when a source has initiated linking mode.
    Public propertyCode exampleOnStopLinking
    Triggers when a source has stopped linking mode.
    Top
    Remarks
    + Each collection is a list of callbacks that are called when the triggering event has happen. + The subscribers should add themselves into the appropriate list to get notified. If subscriber + object is being destroyed, then it must remove itself from the lists! Otherwise, the NRE + will be thrown and the subscribers downstream will not get the notification. +
    Examples
    public class KasEventsExample1: PartModule {
    +  public override void OnAwake() {
    +    base.OnAwake();
    +    KASAPI.KasEvents.OnStartLinking.Add(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Add(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Add(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Add(LinkBroken);
    +  }
    +
    +  void OnDestroy() {
    +    KASAPI.KasEvents.OnStartLinking.Remove(LinkStarted);
    +    KASAPI.KasEvents.OnStopLinking.Remove(LinkStopped);
    +    KASAPI.KasEvents.OnLinkCreated.Remove(LinkCreated);
    +    KASAPI.KasEvents.OnLinkBroken.Remove(LinkBroken);
    +  }
    +
    +  void LinkStarted(ILinkSource source) {
    +    DebugEx.Info("Link started by: {0}", source);
    +  }
    +
    +  void LinkStopped(ILinkSource source) {
    +    DebugEx.Info("Link stopepd by: {0}", source);
    +  }
    +
    +  void LinkCreated(IKasLinkEvent ev) {
    +    DebugEx.Info("Link created: {0} <=> {1}", ev.source, ev.target);
    +  }
    +
    +  void LinkBroken(IKasLinkEvent ev) {
    +    DebugEx.Info("Link broken: {0} <=> {1}", ev.source, ev.target);
    +  }
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_IKasJointEventsListener.htm b/docs/APIv1/html/T_KASAPIv1_IKasJointEventsListener.htm new file mode 100644 index 00000000..ea759bc0 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_IKasJointEventsListener.htm @@ -0,0 +1,42 @@ +IKasJointEventsListener Interface

    IKasJointEventsListener Interface

    Interface that notifies listeners about joints breaking.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface IKasJointEventsListener
    Request Example + View Source

    The IKasJointEventsListener type exposes the following members.

    Methods
    +   + NameDescription
    Public methodOnKASJointBreak
    + Triggers when a connection on the object is broken due to too strong force applied. +
    Top
    Remarks
    + This interface must be supported on the "other" side. The object that implements it only + declares a desire to know about the joint state. However, when the joint state is actually + changed, some other code needs to take care of calling the callback. +
    Examples
    class BrokenJointListenerExample : PartModule, IKasJointEventsListener {
    +  /// <inheritdoc/>
    +  public virtual void OnKASJointBreak(GameObject hostObj, float breakForce) {
    +    if (hostObj.name == "MyFakeRB") {
    +      DebugEx.Warning("Joint on MyFakeRB is broken with force {0}", breakForce);
    +      Destroy(hostObj);
    +    }
    +  }
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_IKasLinkEvent.htm b/docs/APIv1/html/T_KASAPIv1_IKasLinkEvent.htm new file mode 100644 index 00000000..4fff27fb --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_IKasLinkEvent.htm @@ -0,0 +1,28 @@ +IKasLinkEvent Interface

    IKasLinkEvent Interface

    A holder for simple source-to-target event.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface IKasLinkEvent
    Request Example + View Source

    The IKasLinkEvent type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyactor
    Actor who changed the links tate.
    Public propertysource
    Link source.
    Public propertytarget
    Link target.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ILinkCableJoint.htm b/docs/APIv1/html/T_KASAPIv1_ILinkCableJoint.htm new file mode 100644 index 00000000..08dcf11c --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ILinkCableJoint.htm @@ -0,0 +1,53 @@ +ILinkCableJoint Interface

    ILinkCableJoint Interface

    + Interface for a physical cable link. Such links keep the dsitance between the object below the + maximum but don't restict any other movements of the objects relative to each other. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ILinkCableJoint : ILinkJoint
    Request Example + View Source

    The ILinkCableJoint type exposes the following members.

    Properties
    +   + NameDescription
    Public propertycfgMaxCableLength
    Maximum allowed distance between the parts to establish a link.
    Public propertydeployedCableLength
    + Maximum possible distance between the source and head/target physical anchors. +
    Public propertyheadRb
    Rigidbody of the physical cable head.
    Public propertyrealCableLength
    + Returns the actual distance between the source and target/head physical anchors. +
    Top
    Methods
    +   + NameDescription
    Public methodSetCableLength
    + Sets the maximum possible distance between the source and the head/target physical anchors. +
    Public methodStartPhysicalHead
    + Attaches the specified object to the source and starts the environmental forces on it. +
    Public methodStopPhysicalHead
    Stops handling the physical head.
    Top
    Remarks

    + The specifics of this module is that the distance between the linked parts becomes variable. + Once the link is created, the distance limit is set to the actual distance between the source + and target. This limit won't allow the objects to separate too far from each other, but the + objects will be allowed to come closer. The code can adjust the limit once the joint is + created. +

    + Due to the specifics of handling this kind of joints in PhysX, the real distance between the + objects can become greater than the distance limit. In fact, if there are forces that try + to separate the objects, then the actual distance will always be a bit more than the limit. Do + not expect this difference to have any meaning, it depends on the PhysX engine and can be + anything. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ILinkJoint.htm b/docs/APIv1/html/T_KASAPIv1_ILinkJoint.htm new file mode 100644 index 00000000..9f20f790 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ILinkJoint.htm @@ -0,0 +1,35 @@ +ILinkJoint Interface

    ILinkJoint Interface

    Base interface for a KAS joint.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ILinkJoint
    Request Example + View Source

    The ILinkJoint type exposes the following members.

    Properties
    +   + NameDescription
    Public propertycfgJointName
    Identifier of the joint on the part.
    Public propertycoupleOnLinkMode
    Tells the current coupling mode.
    Public propertyisLinked
    Tells if there is a physical joint created.
    Public propertylinkSource
    Tells the current link source.
    Public propertylinkTarget
    Tells the current link target.
    Top
    Methods
    +   + NameDescription
    Public methodAdjustJoint
    Requests the joint to become unbreakable or normal.
    Public methodCheckConstraints
    Checks if the joint constraints allow the link to be established.
    Public methodCreateJoint
    Sets up a physical joint between the source and target.
    Public methodDropJoint
    Destroys a physical link between the source and the target.
    Public methodSetCoupleOnLinkMode
    Changes the current parts couple mode.
    Top
    Remarks

    + Every KAS part must have a joint module that controls how the KAS joints are maintained. +

    + This interface is primarily designed for use form the ILinkSource implementations. + A third-party code must not interact with it directly. +

    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ILinkPeer.htm b/docs/APIv1/html/T_KASAPIv1_ILinkPeer.htm new file mode 100644 index 00000000..1fc08e55 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ILinkPeer.htm @@ -0,0 +1,43 @@ +ILinkPeer Interface

    ILinkPeer Interface

    Base interface for an end of the link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ILinkPeer
    Request Example + View Source

    The ILinkPeer type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyattachNode
    Parsed attach node definition of the peer.
    Public propertycfgAttachNodeName
    Name of the attach node on the part.
    Public propertycfgDependentNodeNames
    + List of the attach node names, which this module doesn't own, but wants to align the state + with. +
    Public propertycfgLinkType
    Source link type identifier.
    Public propertycoupleNode
    + Attach node to use when the peers need to couple into a single parts hierarchy. +
    Public propertyisLinked
    Tells if this peer is currectly linked to another peer.
    Public propertyisLocked
    + Tells if the peer's link ability is disabled due to it's attach node is taken by another peer + on the same part. +
    Public propertyisNodeBlocked
    Tells if the peer's attach node is occupied by an incompatible part.
    Public propertylinkModuleIndex
    The persisted index of the module on the part of the other peer.
    Public propertylinkPartId
    The persisted ID of the linked part of the other peer.
    Public propertylinkState
    Current state of the peer.
    Public propertynodeTransform
    + Transform that defines the position and orientation of the base node to which all the + renderers and physical anchors are aligned. +
    Public propertyotherPeer
    Other end of the link.
    Public propertypart
    Part that owns the source.
    Top
    Remarks
    + This interface represents the complete definition of the link's state. However, it explicitly + ignores the logic of making a link. Such a logic must be implemented in the specialized + interfaces. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ILinkRenderer.htm b/docs/APIv1/html/T_KASAPIv1_ILinkRenderer.htm new file mode 100644 index 00000000..de291ff4 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ILinkRenderer.htm @@ -0,0 +1,46 @@ +ILinkRenderer Interface

    ILinkRenderer Interface

    + Interface for a module that takes care of rendering a link and, optionally, manages its + colliders. +

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ILinkRenderer
    Request Example + View Source

    The ILinkRenderer type exposes the following members.

    Properties
    +   + NameDescription
    Public propertycfgRendererName
    + Unique name of the randerer that is used by the other modules to find this renderer. +
    Public propertycolorOverride
    Temporally sets another color to the link meshes.
    Public propertyisPhysicalCollider
    Tells if the link interacts with the rigid bodies.
    Public propertyisStarted
    Tells if the renderer is started and active.
    Public propertyshaderNameOverride
    Temporally sets another shader to the link meshes.
    Public propertysourceTransform
    + Base position/direction of the connection point at the beginning of the link. The source + joint models will be aligned against this transform. +
    Public propertystretchRatio
    + Defines how significantly the link has stretched or shrinked comparing to it's "normal" state. +
    Public propertytargetTransform
    + Base position/direction of the connection point at the end of the link. The target + joint models will be aligned against this transform. +
    Top
    Methods
    +   + NameDescription
    Public methodCheckColliderHits
    Verifies that there are no obstacles beween the points.
    Public methodStartRenderer
    Starts rendering a link between the objects.
    Public methodStopRenderer
    Cancels rendering the link.
    Public methodUpdateLink
    Called when a link representation update is required.
    Top
    Remarks
    + The link can be rendered between any two transformations. The renderer is responsible to adjust + the representation if the connecting points have moved (UpdateLink). +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ILinkSource.htm b/docs/APIv1/html/T_KASAPIv1_ILinkSource.htm new file mode 100644 index 00000000..3923e57c --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ILinkSource.htm @@ -0,0 +1,122 @@ +ILinkSource Interface

    ILinkSource Interface

    A generic source of a KAS link between two parts.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ILinkSource : ILinkPeer
    Request Example + View Source

    The ILinkSource type exposes the following members.

    Properties
    +   + NameDescription
    Public propertylinkJoint
    Joint module that manages a physical link.
    Public propertyCode examplelinkRenderer
    Renderer of the link meshes.
    Public propertyCode examplelinkTarget
    Target of the link.
    Top
    Methods
    +   + NameDescription
    Public methodCode exampleBreakCurrentLink
    Breaks the link between the source and the target.
    Public methodCode exampleCancelLinking
    Cancels the linking mode without creating a link.
    Public methodCode exampleCheckCanLinkTo
    Verifies if a link between the parts can be successful.
    Public methodCode exampleLinkToTarget(ILinkTarget)
    Establishes a link between two parts.
    Public methodLinkToTarget(LinkActorType, ILinkTarget)
    Establishes a link between two parts.
    Public methodCode exampleStartLinking
    Starts the linking mode of this source.
    Top
    Remarks

    + Source is the initiator of the link to the another part. It holds all the logic on making and + maintaining the actual connection between the two parts. The other end of the connection must be + ILinkTarget which implements its own piece of the logic. +

    + The link source have a state that defines what it can do (linkState). + Not all actions are allowed in any state. The following state diagram tells what the source + can do and when: +

    TransitionAction
    Available => Linking + This module has initiated a link via the StartLinking(GUILinkMode, LinkActorType) method call. +
    Available => RejectingLinks + Some other source module in the world has initiated a link. +
    Linking => Available + This module has cancelled the linking mode via the CancelLinking method call. +
    Linking => LinkedThis module has established a link.
    RejectingLinks => Available + Some other module, which initiated a link, has cancelled or completed the linking mode. +
    RejectingLinks => Locked + Some other module on the same part, which initiated a link, has established a link. I.e. this + part cannot have more links. +
    Linked => Available + This module has broke its link via the BreakCurrentLink(LinkActorType) method call. +
    Locked => Available + Some other module on the same part, which was linked, has broke its link via the + BreakCurrentLink(LinkActorType) method call. +
    Examples
    // Connects two parts assuming the source and the target parts own exactly one link module. 
    +public static bool ConnectParts(Part srcPart, Part tgtPart) {
    +  var source = srcPart.FindModuleImplementing<ILinkSource>();
    +  var target = tgtPart.FindModuleImplementing<ILinkTarget>();
    +  if (source == null || target == null || source.cfgLinkType != target.cfgLinkType) {
    +    Debug.LogError("Source and target cannot link");
    +    return false;
    +  }
    +  // GUILinkMode.API mode tells the implementation to not execute any user facing effects on the
    +  // link. See GUILinkMode for more details. 
    +  if (!source.StartLinking(GUILinkMode.API, LinkActorType.API) || !source.LinkToTarget(target)) {
    +    // Here we can only fail due to the constraints. E.g. the link mode is not supported, or the
    +    // joint module doesn't give the green light.
    +    Debug.LogError("Linking failed");
    +    source.CancelLinking();
    +    return false;
    +  }
    +  Debug.LogFormat("Established link with part: id={0}", source.linkPartId);
    +  return true;
    +}
    Examples
    // Disconnects the source part from its target. Only once source can be connected on the part.
    +// And it can be connected to the exactly one target.
    +public static void DisconnectParts(Part srcPart) {
    +  var source = srcPart.FindModulesImplementing<ILinkSource>()
    +      .FirstOrDefault(s => s.linkTarget != null);
    +  if (source == null) {
    +    Debug.LogWarningFormat("Part is not connected to anything");
    +    return;
    +  }
    +  // LinkActorType.API tells the implementation to not execute any user facing effects on the
    +  // link. See LinkActorType for more details.
    +  source.BreakCurrentLink(LinkActorType.API);
    +}
    Examples
    // Returns the linked part of the source, if any. It assumes there is exactly one source module
    +// on the source part.
    +public static Part FindTargetFromSource(Part srcPart) {
    +  var source = srcPart.FindModulesImplementing<ILinkSource>()
    +      .FirstOrDefault(s => s.linkTarget != null);
    +  if (source == null) {
    +    Debug.Log("Source is not connected");
    +    return null;
    +  }
    +  return source.linkTarget.part;
    +}
    Examples
    // Checks if the two parts are connected via a KAS link. 
    +public static bool CheckIfConnected(Part srcPart, Part tgtPart) {
    +  return srcPart.FindModulesImplementing<ILinkSource>()
    +      .Any(s => s.linkTarget != null && s.linkTarget.part == tgtPart);
    +}
    Examples
    // Sets up a sample state machine for the source states.
    +public static void SetupSourceStateModel() {
    +  var linkStateMachine = new SimpleStateMachine<LinkState>(true /* strict */);
    +  linkStateMachine.SetTransitionConstraint(
    +      LinkState.Available,
    +      new[] {LinkState.Linking, LinkState.RejectingLinks});
    +  linkStateMachine.SetTransitionConstraint(
    +      LinkState.Linking,
    +      new[] {LinkState.Available, LinkState.Linked});
    +  linkStateMachine.SetTransitionConstraint(
    +      LinkState.Linked,
    +      new[] {LinkState.Available});
    +  linkStateMachine.SetTransitionConstraint(
    +      LinkState.Locked,
    +      new[] {LinkState.Available});
    +  linkStateMachine.SetTransitionConstraint(
    +      LinkState.RejectingLinks,
    +      new[] {LinkState.Available, LinkState.Locked});
    +
    +  linkStateMachine.AddStateHandlers(
    +      LinkState.Available,
    +      enterHandler: x => Debug.Log("Source is available"),
    +      leaveHandler: x => Debug.Log("Source is NOT available"));
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ILinkStateEventListener.htm b/docs/APIv1/html/T_KASAPIv1_ILinkStateEventListener.htm new file mode 100644 index 00000000..42b99fbd --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ILinkStateEventListener.htm @@ -0,0 +1,33 @@ +ILinkStateEventListener Interface

    ILinkStateEventListener Interface

    Part module interface that defines the events for a link state changes.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ILinkStateEventListener
    Request Example + View Source

    The ILinkStateEventListener type exposes the following members.

    Methods
    +   + NameDescription
    Public methodOnKASLinkedState
    Triggers when any module on the part has created a link.
    Public methodOnKASNodeBlockedState
    + Triggers when a peer locks itself due to its attach node is blocked by an incompatible part. +
    Top
    Remarks
    + Both the source and the target parts can recieve these events. To receive the events, a module + needs to implement this interface. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ILinkTarget.htm b/docs/APIv1/html/T_KASAPIv1_ILinkTarget.htm new file mode 100644 index 00000000..a2f77c58 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ILinkTarget.htm @@ -0,0 +1,49 @@ +ILinkTarget Interface

    ILinkTarget Interface

    A generic target of a KAS link between two parts.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ILinkTarget : ILinkPeer
    Request Example + View Source

    The ILinkTarget type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyCode examplelinkSource
    Source that maintains the link.
    Top
    Remarks

    + The target is a sink for a link initiated by the another part's ILinkSource. +

    + The link target have a state that defines what it can do (linkState). + Not all actions are allowed in any state. The following state diagram tells what the target + can do and when: +

    TransitionAction
    Available => AcceptingLinks + This target is able to connect to a source that has just initiated a link. +
    Available => RejectingLinks + This target cannot connect to a source that has just initiated a link. +
    AcceptingLinks => Available + The source module has ended its linking mode without linking to this target. +
    AcceptingLinks => LinkedA source from the world has linked to this target.
    AcceptingLinks => Locked + A source from the world has linked to another target on the part that owns this target. +
    Linked => AvailableThe link to this target has been broken by the source.
    Locked => Available + A source from the world has broke a link to another target on the part that owns this + target. +
    RejectingLinks => Available + A source from the world has ended the linking mode, and the target's part hasn't linked. +
    RejectingLinks => Locked + A source from the world has linked to the owner of this target but thru another target. +
    Examples
    See ILinkSource for the examples.
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ILinkUtils.htm b/docs/APIv1/html/T_KASAPIv1_ILinkUtils.htm new file mode 100644 index 00000000..77a197a6 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ILinkUtils.htm @@ -0,0 +1,28 @@ +ILinkUtils Interface

    ILinkUtils Interface

    Various tools to deal with KAS links.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ILinkUtils
    Request Example + View Source

    The ILinkUtils type exposes the following members.

    Methods
    +   + NameDescription
    Public methodCoupleParts
    Couples two parts together given they belong to the different vessels.
    Public methodDecoupleParts
    Decouples the connected parts and breaks down one vessel into two.
    Public methodFindLinkPeer
    Finds the other peer of the link.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_ILinkVesselInfo.htm b/docs/APIv1/html/T_KASAPIv1_ILinkVesselInfo.htm new file mode 100644 index 00000000..b53ee314 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_ILinkVesselInfo.htm @@ -0,0 +1,28 @@ +ILinkVesselInfo Interface

    ILinkVesselInfo Interface

    A generic interface to deal with the vessels info.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface ILinkVesselInfo
    Request Example + View Source

    The ILinkVesselInfo type exposes the following members.

    Properties
    +   + NameDescription
    Public propertypart
    Part that owns the info.
    Public propertyvesselInfo
    The persisted vessel's info.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_IPhysicsUtils.htm b/docs/APIv1/html/T_KASAPIv1_IPhysicsUtils.htm new file mode 100644 index 00000000..fd1126ea --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_IPhysicsUtils.htm @@ -0,0 +1,28 @@ +IPhysicsUtils Interface

    IPhysicsUtils Interface

    Various tools to deal with the gme's physics.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface IPhysicsUtils
    Request Example + View Source

    The IPhysicsUtils type exposes the following members.

    Methods
    +   + NameDescription
    Public methodApplyGravity
    Applies the forces that affect a rigidbody on a selectial body.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_IWinchControl.htm b/docs/APIv1/html/T_KASAPIv1_IWinchControl.htm new file mode 100644 index 00000000..fbb5c19a --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_IWinchControl.htm @@ -0,0 +1,33 @@ +IWinchControl Interface

    IWinchControl Interface

    Interface that allows operating the winch parts.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public interface IWinchControl : ILinkSource, 
    +	ILinkPeer
    Request Example + View Source

    The IWinchControl type exposes the following members.

    Properties
    +   + NameDescription
    Public propertycfgMaxCableLength
    Maximum reserve of the cable in the winch.
    Public propertycfgMotorMaxSpeed
    Maximum speed of retracting or extending the cable.
    Public propertycurrentCableLength
    Amount of the cable that was extended till the moment.
    Public propertyisConnectorLocked
    Tells if the cable connector head is locked into the winch.
    Public propertymotorCurrentSpeed
    Current speed of the motor spindel.
    Public propertymotorTargetSpeed
    Desired speed of the motor spindel.
    Top
    Methods
    +   + NameDescription
    Public methodReleaseCable
    Sets the deployed cable length to the maximum value allowed by the part.
    Public methodSetMotor
    Sets the winch motor to the desired speed.
    Public methodStretchCable
    + Sets the deployed cable length to the actual distance between the winch and the connector. +
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_KASAPI.htm b/docs/APIv1/html/T_KASAPIv1_KASAPI.htm new file mode 100644 index 00000000..372209c0 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_KASAPI.htm @@ -0,0 +1,28 @@ +KASAPI Class

    KASAPI Class

    KAS API, version 1.
    Inheritance Hierarchy
    SystemObject
      KASAPIv1KASAPI

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public static class KASAPI
    Request Example + View Source

    The KASAPI type exposes the following members.

    Fields
    +   + NameDescription
    Public fieldStatic memberAttachNodesUtils
    KAS attach nodes utils.
    Public fieldStatic memberCommonConfig
    KAS common config settings.
    Public fieldStatic memberisLoaded
    Tells if API V1 was loaded and ready to use.
    Public fieldStatic memberJointUtils
    KAS joints untils.
    Public fieldStatic memberKasEvents
    KAS global events.
    Public fieldStatic memberLinkUtils
    KAS link utils.
    Public fieldStatic memberPhysicsUtils
    KAS physics utils.
    Top
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_LinkActorType.htm b/docs/APIv1/html/T_KASAPIv1_LinkActorType.htm new file mode 100644 index 00000000..e42b1441 --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_LinkActorType.htm @@ -0,0 +1,46 @@ +LinkActorType Enumeration

    LinkActorType Enumeration

    Defines an actor that changes KAS link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public enum LinkActorType
    Request Example + View Source
    Members
    +   + Member nameValueDescription
    None0Actor is unspecified.
    API1Thrid-party code has affected the link during its normal workflow.
    Physics2Link has changed as a result of physics effect.
    Player3Player input has affected the link state.
    Remarks
    + The implementations of ILinkSource and ILinkTarget may check the + type to determine how the action needs to be presented to the player. The type + API must never be presented to the player, it's used by the internal + logic to manage the sate of the links. For all the other types it's up to the implementation how + to present it. +
    Examples
    // Disconnects the source part from its target. Only once source can be connected on the part.
    +// And it can be connected to the exactly one target.
    +public static void DisconnectParts(Part srcPart) {
    +  var source = srcPart.FindModulesImplementing<ILinkSource>()
    +      .FirstOrDefault(s => s.linkTarget != null);
    +  if (source == null) {
    +    Debug.LogWarningFormat("Part is not connected to anything");
    +    return;
    +  }
    +  // LinkActorType.API tells the implementation to not execute any user facing effects on the
    +  // link. See LinkActorType for more details.
    +  source.BreakCurrentLink(LinkActorType.API);
    +}
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/html/T_KASAPIv1_LinkState.htm b/docs/APIv1/html/T_KASAPIv1_LinkState.htm new file mode 100644 index 00000000..326dc3aa --- /dev/null +++ b/docs/APIv1/html/T_KASAPIv1_LinkState.htm @@ -0,0 +1,39 @@ +LinkState Enumeration

    LinkState Enumeration

    Defines currect state of the link.

    + Namespace: +  KASAPIv1
    + Assembly: +  KAS-API-v1 (in KAS-API-v1.dll) Version: KAS API v1
    Syntax
    C#
    public enum LinkState
    Request Example + View Source
    Members
    +   + Member nameValueDescription
    None0Initial and an invalid state. It must never be normally used.
    Available1Module is avalable for the links.
    Locked2 + Module is unavailable for the link because of another module on the part has established one. +
    Linking3 + Module has initated an outgoing link request and expecting for it to be accepted. +
    Linked4Module is linked to another module.
    AcceptingLinks5Module is ready to accept a link and may accept the request.
    RejectingLinks6Module doesn't accept link and will reject any request.
    NodeIsBlocked7 + The attach node, allocated to the module, is occupied by another part, which doesn't support + linking. +
    Remarks
    Each implementation defines own state tranistion model. E.g. + ILinkSource or ILinkTarget. In every state the module can only + handle a very specific set of actions. Such approach helps keeping module logic more clear and + granular. +
    See Also
    \ No newline at end of file diff --git a/docs/APIv1/icons/AlertCaution.png b/docs/APIv1/icons/AlertCaution.png new file mode 100644 index 00000000..78f246f0 Binary files /dev/null and b/docs/APIv1/icons/AlertCaution.png differ diff --git a/docs/APIv1/icons/AlertNote.png b/docs/APIv1/icons/AlertNote.png new file mode 100644 index 00000000..0ab92b66 Binary files /dev/null and b/docs/APIv1/icons/AlertNote.png differ diff --git a/docs/APIv1/icons/AlertSecurity.png b/docs/APIv1/icons/AlertSecurity.png new file mode 100644 index 00000000..d40fcefc Binary files /dev/null and b/docs/APIv1/icons/AlertSecurity.png differ diff --git a/docs/APIv1/icons/CFW.gif b/docs/APIv1/icons/CFW.gif new file mode 100644 index 00000000..cbcabf1b Binary files /dev/null and b/docs/APIv1/icons/CFW.gif differ diff --git a/docs/APIv1/icons/CodeExample.png b/docs/APIv1/icons/CodeExample.png new file mode 100644 index 00000000..a3b9fba4 Binary files /dev/null and b/docs/APIv1/icons/CodeExample.png differ diff --git a/docs/APIv1/icons/KAS-logo.png b/docs/APIv1/icons/KAS-logo.png new file mode 100644 index 00000000..e976d1c0 Binary files /dev/null and b/docs/APIv1/icons/KAS-logo.png differ diff --git a/docs/APIv1/icons/Search.png b/docs/APIv1/icons/Search.png new file mode 100644 index 00000000..42165b6d Binary files /dev/null and b/docs/APIv1/icons/Search.png differ diff --git a/docs/APIv1/icons/SectionCollapsed.png b/docs/APIv1/icons/SectionCollapsed.png new file mode 100644 index 00000000..8ded1ebc Binary files /dev/null and b/docs/APIv1/icons/SectionCollapsed.png differ diff --git a/docs/APIv1/icons/SectionExpanded.png b/docs/APIv1/icons/SectionExpanded.png new file mode 100644 index 00000000..b693921c Binary files /dev/null and b/docs/APIv1/icons/SectionExpanded.png differ diff --git a/docs/APIv1/icons/TocClose.gif b/docs/APIv1/icons/TocClose.gif new file mode 100644 index 00000000..e6d7b5ed Binary files /dev/null and b/docs/APIv1/icons/TocClose.gif differ diff --git a/docs/APIv1/icons/TocCollapsed.gif b/docs/APIv1/icons/TocCollapsed.gif new file mode 100644 index 00000000..108d4923 Binary files /dev/null and b/docs/APIv1/icons/TocCollapsed.gif differ diff --git a/docs/APIv1/icons/TocExpanded.gif b/docs/APIv1/icons/TocExpanded.gif new file mode 100644 index 00000000..f774d9bb Binary files /dev/null and b/docs/APIv1/icons/TocExpanded.gif differ diff --git a/docs/APIv1/icons/TocOpen.gif b/docs/APIv1/icons/TocOpen.gif new file mode 100644 index 00000000..4992a98a Binary files /dev/null and b/docs/APIv1/icons/TocOpen.gif differ diff --git a/docs/APIv1/icons/favicon.ico b/docs/APIv1/icons/favicon.ico new file mode 100644 index 00000000..2b9963f8 Binary files /dev/null and b/docs/APIv1/icons/favicon.ico differ diff --git a/docs/APIv1/icons/privclass.gif b/docs/APIv1/icons/privclass.gif new file mode 100644 index 00000000..0939694c Binary files /dev/null and b/docs/APIv1/icons/privclass.gif differ diff --git a/docs/APIv1/icons/privdelegate.gif b/docs/APIv1/icons/privdelegate.gif new file mode 100644 index 00000000..d3aa8a65 Binary files /dev/null and b/docs/APIv1/icons/privdelegate.gif differ diff --git a/docs/APIv1/icons/privenumeration.gif b/docs/APIv1/icons/privenumeration.gif new file mode 100644 index 00000000..47f387ec Binary files /dev/null and b/docs/APIv1/icons/privenumeration.gif differ diff --git a/docs/APIv1/icons/privevent.gif b/docs/APIv1/icons/privevent.gif new file mode 100644 index 00000000..30db46df Binary files /dev/null and b/docs/APIv1/icons/privevent.gif differ diff --git a/docs/APIv1/icons/privextension.gif b/docs/APIv1/icons/privextension.gif new file mode 100644 index 00000000..51dd267f Binary files /dev/null and b/docs/APIv1/icons/privextension.gif differ diff --git a/docs/APIv1/icons/privfield.gif b/docs/APIv1/icons/privfield.gif new file mode 100644 index 00000000..cbf70f7a Binary files /dev/null and b/docs/APIv1/icons/privfield.gif differ diff --git a/docs/APIv1/icons/privinterface.gif b/docs/APIv1/icons/privinterface.gif new file mode 100644 index 00000000..f3b7950a Binary files /dev/null and b/docs/APIv1/icons/privinterface.gif differ diff --git a/docs/APIv1/icons/privmethod.gif b/docs/APIv1/icons/privmethod.gif new file mode 100644 index 00000000..71f88226 Binary files /dev/null and b/docs/APIv1/icons/privmethod.gif differ diff --git a/docs/APIv1/icons/privproperty.gif b/docs/APIv1/icons/privproperty.gif new file mode 100644 index 00000000..b1e80746 Binary files /dev/null and b/docs/APIv1/icons/privproperty.gif differ diff --git a/docs/APIv1/icons/privstructure.gif b/docs/APIv1/icons/privstructure.gif new file mode 100644 index 00000000..ed6d1ef6 Binary files /dev/null and b/docs/APIv1/icons/privstructure.gif differ diff --git a/docs/APIv1/icons/protclass.gif b/docs/APIv1/icons/protclass.gif new file mode 100644 index 00000000..0f929429 Binary files /dev/null and b/docs/APIv1/icons/protclass.gif differ diff --git a/docs/APIv1/icons/protdelegate.gif b/docs/APIv1/icons/protdelegate.gif new file mode 100644 index 00000000..b209f2d8 Binary files /dev/null and b/docs/APIv1/icons/protdelegate.gif differ diff --git a/docs/APIv1/icons/protenumeration.gif b/docs/APIv1/icons/protenumeration.gif new file mode 100644 index 00000000..cc96bb63 Binary files /dev/null and b/docs/APIv1/icons/protenumeration.gif differ diff --git a/docs/APIv1/icons/protevent.gif b/docs/APIv1/icons/protevent.gif new file mode 100644 index 00000000..0e510b27 Binary files /dev/null and b/docs/APIv1/icons/protevent.gif differ diff --git a/docs/APIv1/icons/protextension.gif b/docs/APIv1/icons/protextension.gif new file mode 100644 index 00000000..dcd07f5e Binary files /dev/null and b/docs/APIv1/icons/protextension.gif differ diff --git a/docs/APIv1/icons/protfield.gif b/docs/APIv1/icons/protfield.gif new file mode 100644 index 00000000..9ae6833e Binary files /dev/null and b/docs/APIv1/icons/protfield.gif differ diff --git a/docs/APIv1/icons/protinterface.gif b/docs/APIv1/icons/protinterface.gif new file mode 100644 index 00000000..a1b96d2c Binary files /dev/null and b/docs/APIv1/icons/protinterface.gif differ diff --git a/docs/APIv1/icons/protmethod.gif b/docs/APIv1/icons/protmethod.gif new file mode 100644 index 00000000..2bc94687 Binary files /dev/null and b/docs/APIv1/icons/protmethod.gif differ diff --git a/docs/APIv1/icons/protoperator.gif b/docs/APIv1/icons/protoperator.gif new file mode 100644 index 00000000..2cb75ab8 Binary files /dev/null and b/docs/APIv1/icons/protoperator.gif differ diff --git a/docs/APIv1/icons/protproperty.gif b/docs/APIv1/icons/protproperty.gif new file mode 100644 index 00000000..55473d16 Binary files /dev/null and b/docs/APIv1/icons/protproperty.gif differ diff --git a/docs/APIv1/icons/protstructure.gif b/docs/APIv1/icons/protstructure.gif new file mode 100644 index 00000000..af356a1d Binary files /dev/null and b/docs/APIv1/icons/protstructure.gif differ diff --git a/docs/APIv1/icons/pubclass.gif b/docs/APIv1/icons/pubclass.gif new file mode 100644 index 00000000..1a968ab6 Binary files /dev/null and b/docs/APIv1/icons/pubclass.gif differ diff --git a/docs/APIv1/icons/pubdelegate.gif b/docs/APIv1/icons/pubdelegate.gif new file mode 100644 index 00000000..0a43eb26 Binary files /dev/null and b/docs/APIv1/icons/pubdelegate.gif differ diff --git a/docs/APIv1/icons/pubenumeration.gif b/docs/APIv1/icons/pubenumeration.gif new file mode 100644 index 00000000..46888ade Binary files /dev/null and b/docs/APIv1/icons/pubenumeration.gif differ diff --git a/docs/APIv1/icons/pubevent.gif b/docs/APIv1/icons/pubevent.gif new file mode 100644 index 00000000..b9226da8 Binary files /dev/null and b/docs/APIv1/icons/pubevent.gif differ diff --git a/docs/APIv1/icons/pubextension.gif b/docs/APIv1/icons/pubextension.gif new file mode 100644 index 00000000..6262d1cc Binary files /dev/null and b/docs/APIv1/icons/pubextension.gif differ diff --git a/docs/APIv1/icons/pubfield.gif b/docs/APIv1/icons/pubfield.gif new file mode 100644 index 00000000..5aed1757 Binary files /dev/null and b/docs/APIv1/icons/pubfield.gif differ diff --git a/docs/APIv1/icons/pubinterface.gif b/docs/APIv1/icons/pubinterface.gif new file mode 100644 index 00000000..c38a4c46 Binary files /dev/null and b/docs/APIv1/icons/pubinterface.gif differ diff --git a/docs/APIv1/icons/pubmethod.gif b/docs/APIv1/icons/pubmethod.gif new file mode 100644 index 00000000..2c72988f Binary files /dev/null and b/docs/APIv1/icons/pubmethod.gif differ diff --git a/docs/APIv1/icons/puboperator.gif b/docs/APIv1/icons/puboperator.gif new file mode 100644 index 00000000..0ebe10a7 Binary files /dev/null and b/docs/APIv1/icons/puboperator.gif differ diff --git a/docs/APIv1/icons/pubproperty.gif b/docs/APIv1/icons/pubproperty.gif new file mode 100644 index 00000000..dfad7b43 Binary files /dev/null and b/docs/APIv1/icons/pubproperty.gif differ diff --git a/docs/APIv1/icons/pubstructure.gif b/docs/APIv1/icons/pubstructure.gif new file mode 100644 index 00000000..1344416a Binary files /dev/null and b/docs/APIv1/icons/pubstructure.gif differ diff --git a/docs/APIv1/icons/slMobile.gif b/docs/APIv1/icons/slMobile.gif new file mode 100644 index 00000000..5edc31f9 Binary files /dev/null and b/docs/APIv1/icons/slMobile.gif differ diff --git a/docs/APIv1/icons/static.gif b/docs/APIv1/icons/static.gif new file mode 100644 index 00000000..33723a92 Binary files /dev/null and b/docs/APIv1/icons/static.gif differ diff --git a/docs/APIv1/icons/xna.gif b/docs/APIv1/icons/xna.gif new file mode 100644 index 00000000..9e6a9d4b Binary files /dev/null and b/docs/APIv1/icons/xna.gif differ diff --git a/docs/APIv1/index.html b/docs/APIv1/index.html new file mode 100644 index 00000000..b56edee6 --- /dev/null +++ b/docs/APIv1/index.html @@ -0,0 +1,14 @@ + + + + + + + KAS API v1 - Redirect + + +

    If you are not redirected automatically, follow this link to the default topic.

    + + diff --git a/docs/APIv1/scripts/branding-Website.js b/docs/APIv1/scripts/branding-Website.js new file mode 100644 index 00000000..dc31b27a --- /dev/null +++ b/docs/APIv1/scripts/branding-Website.js @@ -0,0 +1,624 @@ +//=============================================================================================================== +// System : Sandcastle Help File Builder +// File : branding-Website.js +// Author : Eric Woodruff (Eric@EWoodruff.us) +// Updated : 03/04/2015 +// Note : Copyright 2014-2015, Eric Woodruff, All rights reserved +// Portions Copyright 2014 Sam Harwell, All rights reserved +// +// This file contains the methods necessary to implement the lightweight TOC and search functionality. +// +// This code is published under the Microsoft Public License (Ms-PL). A copy of the license should be +// distributed with the code. It can also be found at the project website: https://GitHub.com/EWSoftware/SHFB. This +// notice, the author's name, and all copyright notices must remain intact in all applications, documentation, +// and source files. +// +// Date Who Comments +// ============================================================================================================== +// 05/04/2014 EFW Created the code based on a combination of the lightweight TOC code from Sam Harwell and +// the existing search code from SHFB. +//=============================================================================================================== + +// Width of the TOC +var tocWidth; + +// Search method (0 = To be determined, 1 = ASPX, 2 = PHP, anything else = client-side script +var searchMethod = 0; + +// Table of contents script + +// Initialize the TOC by restoring its width from the cookie if present +function InitializeToc() +{ + tocWidth = parseInt(GetCookie("TocWidth", "280")); + ResizeToc(); + $(window).resize(SetNavHeight) +} + +function SetNavHeight() +{ + $leftNav = $("#leftNav") + $topicContent = $("#TopicContent") + leftNavPadding = $leftNav.outerHeight() - $leftNav.height() + contentPadding = $topicContent.outerHeight() - $topicContent.height() + // want outer height of left navigation div to match outer height of content + leftNavHeight = $topicContent.outerHeight() - leftNavPadding + $leftNav.css("min-height", leftNavHeight + "px") +} + +// Increase the TOC width +function OnIncreaseToc() +{ + if(tocWidth < 1) + tocWidth = 280; + else + tocWidth += 100; + + if(tocWidth > 680) + tocWidth = 0; + + ResizeToc(); + SetCookie("TocWidth", tocWidth); +} + +// Reset the TOC to its default width +function OnResetToc() +{ + tocWidth = 0; + + ResizeToc(); + SetCookie("TocWidth", tocWidth); +} + +// Resize the TOC width +function ResizeToc() +{ + var toc = document.getElementById("leftNav"); + + if(toc) + { + // Set TOC width + toc.style.width = tocWidth + "px"; + + var leftNavPadding = 10; + + document.getElementById("TopicContent").style.marginLeft = (tocWidth + leftNavPadding) + "px"; + + // Position images + document.getElementById("TocResize").style.left = (tocWidth + leftNavPadding) + "px"; + + // Hide/show increase TOC width image + document.getElementById("ResizeImageIncrease").style.display = (tocWidth >= 680) ? "none" : ""; + + // Hide/show reset TOC width image + document.getElementById("ResizeImageReset").style.display = (tocWidth < 680) ? "none" : ""; + } + + SetNavHeight() +} + +// Toggle a TOC entry between its collapsed and expanded state +function Toggle(item) +{ + var isExpanded = $(item).hasClass("tocExpanded"); + + $(item).toggleClass("tocExpanded tocCollapsed"); + + if(isExpanded) + { + Collapse($(item).parent()); + } + else + { + var childrenLoaded = $(item).parent().attr("data-childrenloaded"); + + if(childrenLoaded) + { + Expand($(item).parent()); + } + else + { + var tocid = $(item).next().attr("tocid"); + + $.ajax({ + url: "../toc/" + tocid + ".xml", + async: true, + dataType: "xml", + success: function(data) + { + BuildChildren($(item).parent(), data); + } + }); + } + } +} + +// HTML encode a value for use on the page +function HtmlEncode(value) +{ + // Create an in-memory div, set it's inner text (which jQuery automatically encodes) then grab the encoded + // contents back out. The div never exists on the page. + return $('
    ').text(value).html(); +} + +// Build the child entries of a TOC entry +function BuildChildren(tocDiv, data) +{ + var childLevel = +tocDiv.attr("data-toclevel") + 1; + var childTocLevel = childLevel >= 10 ? 10 : childLevel; + var elements = data.getElementsByTagName("HelpTOCNode"); + + var isRoot = true; + + if(data.getElementsByTagName("HelpTOC").length == 0) + { + // The first node is the root node of this group, don't show it again + isRoot = false; + } + + for(var i = elements.length - 1; i > 0 || (isRoot && i == 0); i--) + { + var childHRef, childId = elements[i].getAttribute("Url"); + + if(childId != null && childId.length > 5) + { + // The Url attribute has the form "html/{childId}.htm" + childHRef = "../" + childId; + childId = childId.substring(childId.lastIndexOf("/") + 1, childId.lastIndexOf(".")); + } + else + { + // The Id attribute is in raw form. There is no URL (empty container node). In this case, we'll + // just ignore it and go nowhere. It's a rare case that isn't worth trying to get the first child. + // Instead, we'll just expand the node (see below). + childHRef = "#"; + childId = elements[i].getAttribute("Id"); + } + + var existingItem = null; + + tocDiv.nextAll().each(function() + { + if(!existingItem && $(this).children().last("a").attr("tocid") == childId) + { + existingItem = $(this); + } + }); + + if(existingItem != null) + { + // First move the children of the existing item + var existingChildLevel = +existingItem.attr("data-toclevel"); + var doneMoving = false; + var inserter = tocDiv; + + existingItem.nextAll().each(function() + { + if(!doneMoving && +$(this).attr("data-toclevel") > existingChildLevel) + { + inserter.after($(this)); + inserter = $(this); + $(this).attr("data-toclevel", +$(this).attr("data-toclevel") + childLevel - existingChildLevel); + + if($(this).hasClass("current")) + $(this).attr("class", "toclevel" + (+$(this).attr("data-toclevel") + " current")); + else + $(this).attr("class", "toclevel" + (+$(this).attr("data-toclevel"))); + } + else + { + doneMoving = true; + } + }); + + // Now move the existing item itself + tocDiv.after(existingItem); + existingItem.attr("data-toclevel", childLevel); + existingItem.attr("class", "toclevel" + childLevel); + } + else + { + var hasChildren = elements[i].getAttribute("HasChildren"); + var childTitle = HtmlEncode(elements[i].getAttribute("Title")); + var expander = ""; + + if(hasChildren) + expander = ""; + + var text = "
    " + + expander + "" + + childTitle + "
    "; + + tocDiv.after(text); + } + } + + tocDiv.attr("data-childrenloaded", true); +} + +// Collapse a TOC entry +function Collapse(tocDiv) +{ + // Hide all the TOC elements after item, until we reach one with a data-toclevel less than or equal to the + // current item's value. + var tocLevel = +tocDiv.attr("data-toclevel"); + var done = false; + + tocDiv.nextAll().each(function() + { + if(!done && +$(this).attr("data-toclevel") > tocLevel) + { + $(this).hide(); + } + else + { + done = true; + } + }); +} + +// Expand a TOC entry +function Expand(tocDiv) +{ + // Show all the TOC elements after item, until we reach one with a data-toclevel less than or equal to the + // current item's value + var tocLevel = +tocDiv.attr("data-toclevel"); + var done = false; + + tocDiv.nextAll().each(function() + { + if(done) + { + return; + } + + var childTocLevel = +$(this).attr("data-toclevel"); + + if(childTocLevel == tocLevel + 1) + { + $(this).show(); + + if($(this).children("a").first().hasClass("tocExpanded")) + { + Expand($(this)); + } + } + else if(childTocLevel > tocLevel + 1) + { + // Ignore this node, handled by recursive calls + } + else + { + done = true; + } + }); +} + +// This is called to prepare for dragging the sizer div +function OnMouseDown(event) +{ + document.addEventListener("mousemove", OnMouseMove, true); + document.addEventListener("mouseup", OnMouseUp, true); + event.preventDefault(); +} + +// Resize the TOC as the sizer is dragged +function OnMouseMove(event) +{ + tocWidth = (event.clientX > 700) ? 700 : (event.clientX < 100) ? 100 : event.clientX; + + ResizeToc(); +} + +// Finish the drag operation when the mouse button is released +function OnMouseUp(event) +{ + document.removeEventListener("mousemove", OnMouseMove, true); + document.removeEventListener("mouseup", OnMouseUp, true); + + SetCookie("TocWidth", tocWidth); +} + +// Search functions + +// Transfer to the search page from a topic +function TransferToSearchPage() +{ + var searchText = document.getElementById("SearchTextBox").value.trim(); + + if(searchText.length != 0) + document.location.replace(encodeURI("../search.html?SearchText=" + searchText)); +} + +// Initiate a search when the search page loads +function OnSearchPageLoad() +{ + var queryString = decodeURI(document.location.search); + + if(queryString != "") + { + var idx, options = queryString.split(/[\?\=\&]/); + + for(idx = 0; idx < options.length; idx++) + if(options[idx] == "SearchText" && idx + 1 < options.length) + { + document.getElementById("txtSearchText").value = options[idx + 1]; + PerformSearch(); + break; + } + } +} + +// Perform a search using the best available method +function PerformSearch() +{ + var searchText = document.getElementById("txtSearchText").value; + var sortByTitle = document.getElementById("chkSortByTitle").checked; + var searchResults = document.getElementById("searchResults"); + + if(searchText.length == 0) + { + searchResults.innerHTML = "Nothing found"; + return; + } + + searchResults.innerHTML = "Searching..."; + + // Determine the search method if not done already. The ASPX and PHP searches are more efficient as they + // run asynchronously server-side. If they can't be used, it defaults to the client-side script below which + // will work but has to download the index files. For large help sites, this can be inefficient. + if(searchMethod == 0) + searchMethod = DetermineSearchMethod(); + + if(searchMethod == 1) + { + $.ajax({ + type: "GET", + url: encodeURI("SearchHelp.aspx?Keywords=" + searchText + "&SortByTitle=" + sortByTitle), + success: function(html) + { + searchResults.innerHTML = html; + } + }); + + return; + } + + if(searchMethod == 2) + { + $.ajax({ + type: "GET", + url: encodeURI("SearchHelp.php?Keywords=" + searchText + "&SortByTitle=" + sortByTitle), + success: function(html) + { + searchResults.innerHTML = html; + } + }); + + return; + } + + // Parse the keywords + var keywords = ParseKeywords(searchText); + + // Get the list of files. We'll be getting multiple files so we need to do this synchronously. + var fileList = []; + + $.ajax({ + type: "GET", + url: "fti/FTI_Files.json", + dataType: "json", + async: false, + success: function(data) + { + $.each(data, function(key, val) + { + fileList[key] = val; + }); + } + }); + + var letters = []; + var wordDictionary = {}; + var wordNotFound = false; + + // Load the keyword files for each keyword starting letter + for(var idx = 0; idx < keywords.length && !wordNotFound; idx++) + { + var letter = keywords[idx].substring(0, 1); + + if($.inArray(letter, letters) == -1) + { + letters.push(letter); + + $.ajax({ + type: "GET", + url: "fti/FTI_" + letter.charCodeAt(0) + ".json", + dataType: "json", + async: false, + success: function(data) + { + var wordCount = 0; + + $.each(data, function(key, val) + { + wordDictionary[key] = val; + wordCount++; + }); + + if(wordCount == 0) + wordNotFound = true; + } + }); + } + } + + if(wordNotFound) + searchResults.innerHTML = "Nothing found"; + else + searchResults.innerHTML = SearchForKeywords(keywords, fileList, wordDictionary, sortByTitle); +} + +// Determine the search method by seeing if the ASPX or PHP search pages are present and working +function DetermineSearchMethod() +{ + var method = 3; + + try + { + $.ajax({ + type: "GET", + url: "SearchHelp.aspx", + async: false, + success: function(html) + { + if(html.substring(0, 8) == "") + method = 1; + } + }); + + if(method == 3) + $.ajax({ + type: "GET", + url: "SearchHelp.php", + async: false, + success: function(html) + { + if(html.substring(0, 8) == "") + method = 2; + } + }); + } + catch(e) + { + } + + return method; +} + +// Split the search text up into keywords +function ParseKeywords(keywords) +{ + var keywordList = []; + var checkWord; + var words = keywords.split(/[\s!@#$%^&*()\-=+\[\]{}\\|<>;:'",.<>/?`~]+/); + + for(var idx = 0; idx < words.length; idx++) + { + checkWord = words[idx].toLowerCase(); + + if(checkWord.length > 2) + { + var charCode = checkWord.charCodeAt(0); + + if((charCode < 48 || charCode > 57) && $.inArray(checkWord, keywordList) == -1) + keywordList.push(checkWord); + } + } + + return keywordList; +} + +// Search for keywords and generate a block of HTML containing the results +function SearchForKeywords(keywords, fileInfo, wordDictionary, sortByTitle) +{ + var matches = [], matchingFileIndices = [], rankings = []; + var isFirst = true; + + for(var idx = 0; idx < keywords.length; idx++) + { + var word = keywords[idx]; + var occurrences = wordDictionary[word]; + + // All keywords must be found + if(occurrences == null) + return "Nothing found"; + + matches[word] = occurrences; + var occurrenceIndices = []; + + // Get a list of the file indices for this match. These are 64-bit numbers but JavaScript only does + // bit shifts on 32-bit values so we divide by 2^16 to get the same effect as ">> 16" and use floor() + // to truncate the result. + for(var ind in occurrences) + occurrenceIndices.push(Math.floor(occurrences[ind] / Math.pow(2, 16))); + + if(isFirst) + { + isFirst = false; + + for(var matchInd in occurrenceIndices) + matchingFileIndices.push(occurrenceIndices[matchInd]); + } + else + { + // After the first match, remove files that do not appear for all found keywords + for(var checkIdx = 0; checkIdx < matchingFileIndices.length; checkIdx++) + if($.inArray(matchingFileIndices[checkIdx], occurrenceIndices) == -1) + { + matchingFileIndices.splice(checkIdx, 1); + checkIdx--; + } + } + } + + if(matchingFileIndices.length == 0) + return "Nothing found"; + + // Rank the files based on the number of times the words occurs + for(var fileIdx = 0; fileIdx < matchingFileIndices.length; fileIdx++) + { + // Split out the title, filename, and word count + var matchingIdx = matchingFileIndices[fileIdx]; + var fileIndex = fileInfo[matchingIdx].split(/\0/); + + var title = fileIndex[0]; + var filename = fileIndex[1]; + var wordCount = parseInt(fileIndex[2]); + var matchCount = 0; + + for(var idx = 0; idx < keywords.length; idx++) + { + occurrences = matches[keywords[idx]]; + + for(var ind in occurrences) + { + var entry = occurrences[ind]; + + // These are 64-bit numbers but JavaScript only does bit shifts on 32-bit values so we divide + // by 2^16 to get the same effect as ">> 16" and use floor() to truncate the result. + if(Math.floor(entry / Math.pow(2, 16)) == matchingIdx) + matchCount += (entry & 0xFFFF); + } + } + + rankings.push({ Filename: filename, PageTitle: title, Rank: matchCount * 1000 / wordCount }); + + if(rankings.length > 99) + break; + } + + rankings.sort(function(x, y) + { + if(!sortByTitle) + return y.Rank - x.Rank; + + return x.PageTitle.localeCompare(y.PageTitle); + }); + + // Format and return the results + var content = "
      "; + + for(var r in rankings) + content += "
    1. " + + rankings[r].PageTitle + "
    2. "; + + content += "
    "; + + if(rankings.length < matchingFileIndices.length) + content += "

    Omitted " + (matchingFileIndices.length - rankings.length) + " more results

    "; + + return content; +} diff --git a/docs/APIv1/scripts/branding.js b/docs/APIv1/scripts/branding.js new file mode 100644 index 00000000..2acdea51 --- /dev/null +++ b/docs/APIv1/scripts/branding.js @@ -0,0 +1,562 @@ +//=============================================================================================================== +// System : Sandcastle Help File Builder +// File : branding.js +// Author : Eric Woodruff (Eric@EWoodruff.us) +// Updated : 10/08/2015 +// Note : Copyright 2014-2015, Eric Woodruff, All rights reserved +// Portions Copyright 2010-2014 Microsoft, All rights reserved +// +// This file contains the methods necessary to implement the language filtering, collapsible section, and +// copy to clipboard options. +// +// This code is published under the Microsoft Public License (Ms-PL). A copy of the license should be +// distributed with the code and can be found at the project website: https://GitHub.com/EWSoftware/SHFB. This +// notice, the author's name, and all copyright notices must remain intact in all applications, documentation, +// and source files. +// +// Date Who Comments +// ============================================================================================================== +// 05/04/2014 EFW Created the code based on the MS Help Viewer script +//=============================================================================================================== + +// The IDs of all code snippet sets on the same page are stored so that we can keep them in synch when a tab is +// selected. +var allTabSetIds = new Array(); + +// The IDs of language-specific text (LST) spans are used as dictionary keys so that we can get access to the +// spans and update them when the user changes to a different language tab. The values of the dictionary +// objects are pipe separated language-specific attributes (lang1=value|lang2=value|lang3=value). The language +// ID can be specific (cs, vb, cpp, etc.) or may be a neutral entry (nu) which specifies text common to multiple +// languages. If a language is not present and there is no neutral entry, the span is hidden for all languages +// to which it does not apply. +var allLSTSetIds = new Object(); + +// Help 1 persistence support. This code must appear inline. +var isHelp1; + +var curLoc = document.location + "."; + +if(curLoc.indexOf("mk:@MSITStore") == 0) +{ + isHelp1 = true; + curLoc = "ms-its:" + curLoc.substring(14, curLoc.length - 1); + document.location.replace(curLoc); +} +else + if(curLoc.indexOf("ms-its:") == 0) + isHelp1 = true; + else + isHelp1 = false; + +// The OnLoad method +function OnLoad(defaultLanguage) +{ + var defLang; + + if(typeof (defaultLanguage) == "undefined" || defaultLanguage == null || defaultLanguage == "") + defLang = "vb"; + else + defLang = defaultLanguage; + + // In MS Help Viewer, the transform the topic is ran through can move the footer. Move it back where it + // belongs if necessary. + try + { + var footer = document.getElementById("pageFooter") + + if(footer) + { + var footerParent = document.body; + + if(footer.parentElement != footerParent) + { + footer.parentElement.removeChild(footer); + footerParent.appendChild(footer); + } + } + } + catch(e) + { + } + + var language = GetCookie("CodeSnippetContainerLanguage", defLang); + + // If LST exists on the page, set the LST to show the user selected programming language + UpdateLST(language); + + // If code snippet groups exist, set the current language for them + if(allTabSetIds.length > 0) + { + var i = 0; + + while(i < allTabSetIds.length) + { + var tabCount = 1; + + // The tab count may vary so find the last one in this set + while(document.getElementById(allTabSetIds[i] + "_tab" + tabCount) != null) + tabCount++; + + tabCount--; + + // If not grouped, skip it + if(tabCount > 1) + SetCurrentLanguage(allTabSetIds[i], language, tabCount); + + i++; + } + } + + InitializeToc(); +} + +// This is just a place holder. The website script implements this function to initialize it's in-page TOC pane +function InitializeToc() +{ +} + +// This function executes in the OnLoad event and ChangeTab action on code snippets. The function parameter +// is the user chosen programming language. This function iterates through the "allLSTSetIds" dictionary object +// to update the node value of the LST span tag per the user's chosen programming language. +function UpdateLST(language) +{ + for(var lstMember in allLSTSetIds) + { + var devLangSpan = document.getElementById(lstMember); + + if(devLangSpan != null) + { + // There may be a carriage return before the LST span in the content so the replace function below + // is used to trim the whitespace at the end of the previous node of the current LST node. + if(devLangSpan.previousSibling != null && devLangSpan.previousSibling.nodeValue != null) + devLangSpan.previousSibling.nodeValue = devLangSpan.previousSibling.nodeValue.replace(/\s+$/, ""); + + var langs = allLSTSetIds[lstMember].split("|"); + var k = 0; + var keyValue; + + while(k < langs.length) + { + keyValue = langs[k].split("="); + + if(keyValue[0] == language) + { + devLangSpan.innerHTML = keyValue[1]; + + // Help 1 and MS Help Viewer workaround. Add a space if the following text element starts + // with a space to prevent things running together. + if(devLangSpan.parentNode != null && devLangSpan.parentNode.nextSibling != null) + { + if(devLangSpan.parentNode.nextSibling.nodeValue != null && + !devLangSpan.parentNode.nextSibling.nodeValue.substring(0, 1).match(/[.,);:!/?]/) && + (isHelp1 || devLangSpan.innerHTML == '>' || devLangSpan.innerHTML == ')')) + { + devLangSpan.innerHTML = keyValue[1] + " "; + } + } + break; + } + + k++; + } + + // If not found, default to the neutral language. If there is no neutral language entry, clear the + // content to hide it. + if(k >= langs.length) + { + if(language != "nu") + { + k = 0; + + while(k < langs.length) + { + keyValue = langs[k].split("="); + + if(keyValue[0] == "nu") + { + devLangSpan.innerHTML = keyValue[1]; + + // Help 1 and MS Help Viewer workaround. Add a space if the following text element + // starts with a space to prevent things running together. + if(devLangSpan.parentNode != null && devLangSpan.parentNode.nextSibling != null) + { + if(devLangSpan.parentNode.nextSibling.nodeValue != null && + !devLangSpan.parentNode.nextSibling.nodeValue.substring(0, 1).match(/[.,);:!/?]/) && + (isHelp1 || devLangSpan.innerHTML == '>' || devLangSpan.innerHTML == ')')) + { + devLangSpan.innerHTML = keyValue[1] + " "; + } + } + break; + } + + k++; + } + } + + if(k >= langs.length) + devLangSpan.innerHTML = ""; + } + } + } +} + +// Get the specified cookie. If not found, return the specified default value. +function GetCookie(cookieName, defaultValue) +{ + if(isHelp1) + { + try + { + var globals = Help1Globals; + + var value = globals.Load(cookieName); + + if(value == null) + value = defaultValue; + + return value; + } + catch(e) + { + return defaultValue; + } + } + + var cookie = document.cookie.split("; "); + + for(var i = 0; i < cookie.length; i++) + { + var crumb = cookie[i].split("="); + + if(cookieName == crumb[0]) + return unescape(crumb[1]) + } + + return defaultValue; +} + +// Set the specified cookie to the specified value +function SetCookie(name, value) +{ + if(isHelp1) + { + try + { + var globals = Help1Globals; + + globals.Save(name, value); + } + catch(e) + { + } + + return; + } + + var today = new Date(); + + today.setTime(today.getTime()); + + // Set the expiration time to be 60 days from now (in milliseconds) + var expires_date = new Date(today.getTime() + (60 * 1000 * 60 * 60 * 24)); + + document.cookie = name + "=" + escape(value) + ";expires=" + expires_date.toGMTString() + ";path=/"; +} + +// Add a language-specific text ID +function AddLanguageSpecificTextSet(lstId) +{ + var keyValue = lstId.split("?") + + allLSTSetIds[keyValue[0]] = keyValue[1]; +} + +var clipboardHandler; + +// Add a language tab set ID +function AddLanguageTabSet(tabSetId) +{ + allTabSetIds.push(tabSetId); + + // Create the clipboard handler on first use + if(clipboardHandler == null && typeof (Clipboard) == "function") + { + clipboardHandler = new Clipboard('.copyCodeSnippet', + { + text: function (trigger) + { + // Get the code to copy to the clipboard from the active tab of the given tab set + var i = 1, tabSetId = trigger.id; + var pos = tabSetId.indexOf('_'); + + if(pos == -1) + return ""; + + tabSetId = tabSetId.substring(0, pos); + + do + { + contentId = tabSetId + "_code_Div" + i; + tabTemp = document.getElementById(contentId); + + if(tabTemp != null && tabTemp.style.display != "none") + break; + + i++; + + } while(tabTemp != null); + + if(tabTemp == null) + return ""; + + return document.getElementById(contentId).innerText; + } + }); + } +} + +// Switch the active tab for all of other code snippets +function ChangeTab(tabSetId, language, snippetIdx, snippetCount) +{ + SetCookie("CodeSnippetContainerLanguage", language); + + SetActiveTab(tabSetId, snippetIdx, snippetCount); + + // If LST exists on the page, set the LST to show the user selected programming language + UpdateLST(language); + + var i = 0; + + while(i < allTabSetIds.length) + { + // We just care about other snippets + if(allTabSetIds[i] != tabSetId) + { + // Other tab sets may not have the same number of tabs + var tabCount = 1; + + while(document.getElementById(allTabSetIds[i] + "_tab" + tabCount) != null) + tabCount++; + + tabCount--; + + // If not grouped, skip it + if(tabCount > 1) + SetCurrentLanguage(allTabSetIds[i], language, tabCount); + } + + i++; + } +} + +// Sets the current language in the specified tab set +function SetCurrentLanguage(tabSetId, language, tabCount) +{ + var tabIndex = 1; + + while(tabIndex <= tabCount) + { + var tabTemp = document.getElementById(tabSetId + "_tab" + tabIndex); + + if(tabTemp != null && tabTemp.innerHTML.indexOf("'" + language + "'") != -1) + break; + + tabIndex++; + } + + if(tabIndex > tabCount) + { + // Select the first non-disabled tab + tabIndex = 1; + + if(document.getElementById(tabSetId + "_tab1").className == "codeSnippetContainerTabPhantom") + { + tabIndex++; + + while(tabIndex <= tabCount) + { + var tab = document.getElementById(tabSetId + "_tab" + tabIndex); + + if(tab.className != "codeSnippetContainerTabPhantom") + { + tab.className = "codeSnippetContainerTabActive"; + document.getElementById(tabSetId + "_code_Div" + j).style.display = "block"; + break; + } + + tabIndex++; + } + } + } + + SetActiveTab(tabSetId, tabIndex, tabCount); +} + +// Set the active tab within a tab set +function SetActiveTab(tabSetId, tabIndex, tabCount) +{ + var i = 1; + + while(i <= tabCount) + { + var tabTemp = document.getElementById(tabSetId + "_tab" + i); + + if (tabTemp != null) + { + if(tabTemp.className == "codeSnippetContainerTabActive") + tabTemp.className = "codeSnippetContainerTab"; + else + if(tabTemp.className == "codeSnippetContainerTabPhantom") + tabTemp.style.display = "none"; + + var codeTemp = document.getElementById(tabSetId + "_code_Div" + i); + + if(codeTemp.style.display != "none") + codeTemp.style.display = "none"; + } + + i++; + } + + // Phantom tabs are shown or hidden as needed + if(document.getElementById(tabSetId + "_tab" + tabIndex).className != "codeSnippetContainerTabPhantom") + document.getElementById(tabSetId + "_tab" + tabIndex).className = "codeSnippetContainerTabActive"; + else + document.getElementById(tabSetId + "_tab" + tabIndex).style.display = "block"; + + document.getElementById(tabSetId + "_code_Div" + tabIndex).style.display = "block"; +} + +// Copy the code from the active tab of the given tab set to the clipboard +function CopyToClipboard(tabSetId) +{ + var tabTemp, contentId; + var i = 1; + + if(typeof (Clipboard) == "function") + return; + + do + { + contentId = tabSetId + "_code_Div" + i; + tabTemp = document.getElementById(contentId); + + if(tabTemp != null && tabTemp.style.display != "none") + break; + + i++; + + } while(tabTemp != null); + + if(tabTemp == null) + return; + + if(window.clipboardData) + { + try + { + window.clipboardData.setData("Text", document.getElementById(contentId).innerText); + } + catch(e) + { + alert("Permission denied. Enable copying to the clipboard."); + } + } + else if(window.netscape) + { + try + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance( + Components.interfaces.nsIClipboard); + + if(!clip) + return; + + var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance( + Components.interfaces.nsITransferable); + + if(!trans) + return; + + trans.addDataFlavor("text/unicode"); + + var str = new Object(); + var len = new Object(); + var str = Components.classes["@mozilla.org/supports-string;1"].createInstance( + Components.interfaces.nsISupportsString); + + var copytext = document.getElementById(contentId).textContent; + + str.data = copytext; + trans.setTransferData("text/unicode", str, copytext.length * 2); + + var clipid = Components.interfaces.nsIClipboard; + + clip.setData(trans, null, clipid.kGlobalClipboard); + } + catch(e) + { + alert("Permission denied. Enter \"about:config\" in the address bar and double-click the \"signed.applets.codebase_principal_support\" setting to enable copying to the clipboard."); + } + } +} + +// Expand or collapse a section +function SectionExpandCollapse(togglePrefix) +{ + var image = document.getElementById(togglePrefix + "Toggle"); + var section = document.getElementById(togglePrefix + "Section"); + + if(image != null && section != null) + if(section.style.display == "") + { + image.src = image.src.replace("SectionExpanded.png", "SectionCollapsed.png"); + section.style.display = "none"; + } + else + { + image.src = image.src.replace("SectionCollapsed.png", "SectionExpanded.png"); + section.style.display = ""; + } +} + +// Expand or collapse a section when it has the focus and Enter is hit +function SectionExpandCollapse_CheckKey(togglePrefix, eventArgs) +{ + if(eventArgs.keyCode == 13) + SectionExpandCollapse(togglePrefix); +} + +// Help 1 persistence object. This requires a hidden input element on the page with a class of "userDataStyle" +// defined in the style sheet that implements the user data binary behavior: +// +var Help1Globals = +{ + UserDataCache: function() + { + var userData = document.getElementById("userDataCache"); + + return userData; + }, + + Load: function(key) + { + var userData = this.UserDataCache(); + + userData.load("userDataSettings"); + + var value = userData.getAttribute(key); + + return value; + }, + + Save: function(key, value) + { + var userData = this.UserDataCache(); + userData.setAttribute(key, value); + userData.save("userDataSettings"); + } +}; diff --git a/docs/APIv1/scripts/clipboard.min.js b/docs/APIv1/scripts/clipboard.min.js new file mode 100644 index 00000000..580433f1 --- /dev/null +++ b/docs/APIv1/scripts/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v1.5.12 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,o){function i(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(r)return r(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n?n:t)},u,u.exports,t,e,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;ao;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],i=[];if(o&&e)for(var r=0,a=o.length;a>r;r++)o[r].fn!==e&&o[r].fn._!==e&&i.push(o[r]);return i.length?n[t]=i:delete n[t],this}},e.exports=o},{}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","select"],r);else if("undefined"!=typeof o)r(n,e("select"));else{var a={exports:{}};r(a,i.select),i.clipboardAction=a.exports}}(this,function(t,e){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},a=function(){function t(t,e){for(var n=0;na?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
    ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f +}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="
    a",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/\s*$/g,sb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:l.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?""!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("