public static GameObject MakeNewLinkGo(RouteMan rman, LcLink link, float linkRadius, string cname) { var go = new GameObject(); var linkgo = go.AddComponent <LinkGo>(); linkgo.rman = rman; linkgo.link = link; linkgo.name = link.name; linkgo.linkName = link.name; linkgo.nodeName1 = link.node1.name; linkgo.nodeName2 = link.node2.name; go.name = link.name; // + "-go"; var p1 = link.node1.pt; var p2 = link.node2.pt; var midpt = (p1 + p2) / 2; go.transform.localPosition = midpt; var pcyl = GraphUtil.CreatePipe(link.name, p1, p2, linkRadius, cname); if (rman != null && rman.garnish != RouterGarnishE.none) { var text = link.name; var anglat = GraphUtil.GetAngLatDegrees(p1, p2); GraphUtil.addFloatingTextStatic(go, midpt, text + " ang:" + anglat, cname, anglat + 90); } pcyl.transform.parent = go.transform; return(go); }
public static GameObject MakeNewNodeGo(RouteMan rman, LcNode node, float nodesize, string cname) { var go = new GameObject(); var nodego = go.AddComponent <NodeGo>(); nodego.rman = rman; nodego.node = node; nodego.name = node.name; nodego.nodeName = node.name; nodego.nodePt = node.pt; nodego.nodeTransform = node.transform; nodego.nodeTransformSetCount = node.transformSetCount; nodego.lastmsg = ""; if (node.transform != null) { nodego.nodePtWc = node.transform.TransformPoint(node.pt); } go.name = node.name; go.transform.localPosition = node.pt; var sph = GraphUtil.CreateMarkerSphere(node.name + "-sph", node.pt, nodesize, cname); node.go = sph; if (rman != null && rman.garnish != RouterGarnishE.none) { var text = node.name + "\n" + node.pt; GraphUtil.addFloatingTextStatic(go, node.pt, text, cname, 90); } sph.transform.parent = go.transform; node.transform = sph.transform; node.transformSetCount += 1; return(go); }
// Use this for initialization void Start() { // Create ground //ground = GameObject.CreatePrimitive(PrimitiveType.Plane); //ground.name = "Ground-Plane"; //ground.Transforms.localScale = new Vector3(50, 50, 25); //ground.GetComponent<Renderer>().material.SetColor("_Color", Color.cyan); // Create routeman //rmango = new GameObject("RouteMan"); //rman = rmango.AddComponent<RouteMan>(); //rman.rmango = rmango; gt = GetComponent <GUIText>(); // Find routeman rman = FindObjectsOfType <RouteMan>()[0]; RouteMan.Log("Assigned rman"); rman.unitySim = true; rman.logfilenameroot = "c:\\transfer\\" + rman.logfilenameroot; var fsh = FindObjectsOfType <FollowShere>()[0]; fsh.setRouteMan(rman); // Move light back a bit var dlight = GameObject.Find("Directional Light"); dlight.transform.localPosition = new Vector3(-1, 0, -1); }
public bool CalculateOptimalTransformation() { var opo = new oapOptimizer(optTypeSelectorE.rotYtransXYZ); opo.verbosity = oapOptimizer.verbosityE.info; opo.addOapList(emlist); opo.init(); opo.optimize(); rotvek_deg = opo.rotvek * 180 / Mathf.PI; trnvek_met = opo.trnvek; var plausible = true; if (Mathf.Abs(rotvek_deg.y) > 10) { plausible = false; } if (Vector3.Magnitude(trnvek_met) > 1.0) { plausible = false; } RouteMan.Log("Opo status:" + opo.status + " bstval:" + opo.bstval + " bstidx:" + opo.bstiter + " Plausible:" + plausible); RouteMan.Log("Optimized rotvek:" + rotvek_deg.ToString("f3")); RouteMan.Log("Optimized trnvek:" + trnvek_met.ToString("f3")); Debug.Log("Opo status:" + opo.status + " bstval:" + opo.bstval + " bstidx:" + opo.bstiter + " Plausible:" + plausible); Debug.Log("Optimized rotvek:" + rotvek_deg.ToString("f3")); Debug.Log("Optimized trnvek:" + trnvek_met.ToString("f3")); return(plausible); }
public void RefreshRouteManGos() { // Cleanse the transform :) saveHighobs(); rgo.transform.SetPositionAndRotation(Vector3.zero, Quaternion.identity); rgo.transform.localScale = Vector3.one; // This is Unity wierdness - it should work doing things before // rgo.transform.localScale = new Vector3(rgoScale, rgoScale, rgoScale); // rgo.transform.Rotate(0, rgoRotate, 0); // rgo.transform.Translate(rgoTranslate); linkcloudctrl.RefreshGos(); pathctrl.RefreshGos(); birdctrl.RefreshGos(); errmarkctrl.RefreshGos(); floorplanctrl.RefreshGos(); // We have to do it afterwards - that is the trick :) rgo.transform.localScale = new Vector3(rgoScale, rgoScale, rgoScale); rgo.transform.Rotate(0, rgoRotate, 0); rgo.transform.Translate(rgoTranslate); rgoTransformSetCount += 1; RouteMan.Log("Refresh rgo - Scale:" + rgoScale + " Rotate:" + rgoRotate + " Translate:" + rgoTranslate); keycount = keyman.totalKeywordCount(); //restoreHighobs(); }
public void initKeywordsWithRooms() { keywords2 = new Dictionary <string, System.Action>(); var keylist = rman.linkcloudctrl.GetKeywordKeys(); int nadded = 0; foreach (var key in keylist) { var val = rman.linkcloudctrl.GetKeywordValue(key); keywords2.Add(key, () => { rman.NodeAction(val); }); nadded += 1; RouteMan.Log("Adding key:" + key + " Val:" + val); } if (kR2 != null) { kR2.Stop(); kR2.Dispose(); kR2 = null; } if (keywords2.Count > 0) { kR2 = new KeywordRecognizer(keywords2.Keys.ToArray()); kR2.OnPhraseRecognized += kROnPhraseRecognized2; kR2.Start(); } RouteMan.Log("keywords rooms num keys:" + keywords2.Count); }
// Use this for initialization void initKeywords() { keywords1 = new Dictionary <string, System.Action>(); addStandardKeywords(keywords1); kR1 = new KeywordRecognizer(keywords1.Keys.ToArray()); kR1.OnPhraseRecognized += kROnPhraseRecognized; kR1.Start(); RouteMan.Log("keywords1 started num keys:" + keywords1.Count); }
public void writeLogToFile() { var fname = this.logfilenameroot; fname += System.DateTime.Now.ToString("yyyyMMddTHHmmss") + ".log"; GraphUtil.writeLinkedListToFile(loglist, fname); RouteMan.Log("Wrote " + loglist.Count + " lines to file " + fname); Debug.Log("Wrote " + loglist.Count + " lines to file " + fname); }
public void DecInc() { scaleIncFak = scaleIncFak / 1.1f; rotationIncDeg = rotationIncDeg / 2f; tranlsationIncMeter = tranlsationIncMeter / 2f; keywordLoadInc /= 2; RouteMan.Log("ScaInfFak " + scaleIncFak + " rotIncDeg:" + rotationIncDeg + "transIncM " + tranlsationIncMeter + " keyInc:" + keywordLoadInc); }
public void SetErrorCorrect(bool onoff) { autoerrorcorrect = onoff; RouteMan.Log("autoerrorcorrect now:" + autoerrorcorrect); if (autoerrorcorrect && errmarkctrl.markingState != ErrorMarkerCtrl.markingStateE.marking) { errmarkctrl.startMarking(); } }
public void RealizeFloorPlanStatus() { if (floorplanctrl.visible) { var lcld = linkcloudctrl.getLinkCloud(); floorplanctrl.setGraphtex(lcld.floorMan); } RouteMan.Log("Show floor plan:" + floorplanctrl.visible); }
public void CorrectPositionAndAngle() { var pdist = CorrectAngle(); var pp = pathctrl.path.MovePositionAlongPath(pdist); // var ppwc = pathctrl.pathgo.transform.TransformPoint(pp.pt); // why do we have to do this? Should be wc already? var ptwc = rgo.transform.TransformPoint(pp.pt); RouteMan.Log("Both pdist:" + pdist + " pp.pt:" + pp.pt + " ptwc:" + ptwc); CorrectPosition(ptwc); }
public void StartBird() { BirdVel = initBirdVel; if (BirdVel == 0) { BirdVel = 1; // this should not happen } sbsRunning(); RouteMan.Log("StartBird called"); }
public void CreateLinkCloud() { pathctrl.path = null; //DeleteLinkCloud(); RefreshRouteManGos(); RouteMan.Log("Calling astar"); Astar(); // SetEndNode(pathctrl.endnodename); keyman.initKeywordsWithRooms(); }
public void DisableSpatialMapping() { if (smm != null) { smm.SetSpatialMapping(false); } else { RouteMan.Log("smm is null"); } }
public void setRouteMan(RouteMan rman) { // this is attached as a component, thus we cannot set it in a contructor this.rman = rman; var gt = new graphtex(); var sca = new Vector3(7, 1, 9.76f); var rot = new Vector3(0, -90, 0); var trn = new Vector3(38.55f, 0, -27.79f); gt.SetMaterialPlane("RedwestBfloor3", 676, 938, sca, rot, trn); this.gt = gt; }
public void writeLogToAzureBlob() { #if NETFX_CORE var fname = "hlbirdlog"; #else var fname = "unbirdlog"; #endif GraphUtil.writeLinkedListToAzureBlob(loglist, fname); RouteMan.Log("Wrote " + loglist.Count + " lines to blob " + fname); Debug.Log("Wrote " + loglist.Count + " lines to blob " + fname); }
public void ChangeSpatialExtent(float val) { var smgo = GetSpatialMapper(); var smr = smgo.GetComponent <SpatialMappingRenderer>(); var hbe = smr.halfBoxExtents; var newhbe = hbe + new Vector3(val, val, val); smr.halfBoxExtents = newhbe; RouteMan.Log("Spatial Mapping halfBoxExtents set to :" + newhbe); Debug.Log("Spatial Mapping halfBoxExtents set to :" + newhbe); }
public void ChangeSpatialDetail(int val) { var smgo = GetSpatialMapper(); var smr = smgo.GetComponent <UnityEngine.VR.WSA.SpatialMappingRenderer>(); var lod = smr.lodType; var newlod = NextLodVal(lod, val); smr.lodType = newlod; RouteMan.Log("Spatial Mapping Lod Changed old:" + lod + " new:" + newlod); Debug.Log("Spatial Mapping Lod Changed old:" + lod + " new:" + newlod); }
public void CorrectPosition() { var maincam = Camera.main; // only works with one camera var campt = maincam.transform.position; //campt.y = 0; var pathcampt = pathctrl.FindClosestPointOnPath(campt); //pathcampt.y = 0; //var ppwc = pathctrl.pathgo.transform.TransformPoint(pathcampt); var ppwc = pathcampt; RouteMan.Log("CP pathcampt:" + pathcampt + " ppwc:" + ppwc); CorrectPosition(ppwc); }
void kROnPhraseRecognized2(PhraseRecognizedEventArgs args) { System.Action kwAction; if (keywords2.TryGetValue(args.text, out kwAction)) { RouteMan.Log("You just said " + args.text); kwhistory.AddLast(args.text); kwAction.Invoke(); } else { RouteMan.Log("Could not find " + args.text); } }
public void TranslateEverything(Vector3 tinc) { if (movecamera) { Camera.main.transform.position += tinc; RouteMan.Log("TranslateEverything tinc:" + tinc + " Moved Camera"); } else { rgoTranslate = rgoTranslate + tinc; RouteMan.Log("TranslateEverything tinc:" + tinc + " rgoTranslate:" + rgoTranslate); RefreshRouteManGos(); } }
// Update is called once per frame void Update() { foreach (char c in Input.inputString) { RouteMan.Log("hit " + c); switch (c) { case 's': { SplitlSelLink(); break; } } } }
public void SetSpatialMapping(bool onoff) { var smgo = GetSpatialMapper(); if (smgo == null) { return; } var smm = smgo.GetComponent <HoloToolkit.Unity.SpatialMapping.SpatialMappingManager>(); RouteMan.Log("Found Spatial Mapping Component"); Debug.Log("Found Spatial Mapping Component"); smm.DrawVisualMeshes = onoff; RouteMan.Log("Spatial Mapping " + onoff); Debug.Log("Spatial Mapping " + onoff); }
private void CorrectPosition(Vector3 ptwc) { var maincam = Camera.main; // only works with one camera var campt = maincam.transform.position; //campt.y = 0; var diff = ptwc - campt; diff.y += home_height; var adiff = adjustDiff(diff); //var adiff = diff; RouteMan.Log("Campt:" + campt + " ptwc:" + ptwc + " hh:" + home_height + " diff:" + diff + " adiff:" + adiff); rgoTranslate = rgoTranslate - adiff; //StopBird(); RefreshRouteManGos(); }
GameObject GetSpatialMapper() { if (smgo != null) { return(smgo); } smgo = GameObject.Find("SpatialMapping"); if (smgo == null) { RouteMan.Log("Could not find SpatialMapper GameObject"); return(null); } RouteMan.Log("Found SpatialMapper GameObject"); Debug.Log("Found SpatialMapper GameObject"); return(smgo); }
public void CorrectAngleOnVectors(Vector3 vk1, Vector3 vk2, bool refresh = true) { vk1 = Vector3.Normalize(vk1); vk2 = Vector3.Normalize(vk2); var ang1 = 180 * Mathf.Atan2(vk1.z, vk1.x) / Mathf.PI; var ang2 = 180 * Mathf.Atan2(vk2.z, vk2.x) / Mathf.PI; RouteMan.Log("vk2:" + vk2 + " ang2:" + ang2 + " vk1:" + vk1 + " ang1:" + ang1); var dang = ang2 - ang1; rgoRotate = rgoRotate - dang; if (refresh) { //StopBird(); RefreshRouteManGos(); } }
public void ChangeName() { var lcld = node.lc; var stat = lcld.ChangeNodeName(node.name, nodeName); lastmsg = stat.fullstatus(); if (stat.ok) { RouteMan.Log(lastmsg); rman.RequestRefresh(nodeName); } else { RouteMan.Log(lastmsg); nodeName = node.name; // change the go name back to avoid confusion } }
public void OrientToEndNode(string newenodename) { RouteMan.Log("OrientToEndNode:" + newenodename); home_rgoRotate = rgoRotate; home_rgoScale = rgoScale; home_rgoTranslate = rgoTranslate; home_height = Camera.main.transform.position.y; var lpt = linkcloudctrl.GetNode(newenodename); if (lpt.wegtos.Count == 0) { return; } var wa = lpt.wegtos.First(); // get the first one, it should suffice var lnk = wa.link; //var p1wc = lnk.lp1.transform.TransformPoint(lnk.lp1.pt); //var p2wc = lnk.lp2.transform.TransformPoint(lnk.lp2.pt); //var p1wc = lnk.lp1.ptwc; //var p2wc = lnk.lp2.ptwc; //var lnkdir = p2wc - p1wc; var wfr = wa.frNode.pt; var wto = wa.toNode.pt; var wfrwc = rgo.transform.TransformPoint(wfr); var wtowc = rgo.transform.TransformPoint(wto); var lnkdir = wfr - wto; lnkdir = rgo.transform.TransformVector(lnkdir); RouteMan.Log("CorrectAngle"); RouteMan.Log("lpt.name:" + lpt.name + " wfr:" + wfr + " wto:" + wto); RouteMan.Log(" wc:" + lpt.name + " wfrwc:" + wfrwc + " wtowc:" + wtowc); var camfor = Camera.main.transform.forward; CorrectAngleOnVectors(lnkdir, camfor); // Position lpt = linkcloudctrl.GetNode(newenodename); wa = lpt.wegtos.First(); var wto1 = wa.toNode.pt; var wto1wc = rgo.transform.TransformPoint(wto1); CorrectPosition(wto1wc); RouteMan.Log("CorrectPosition"); RouteMan.Log("Node:" + lpt.name + " wto1:" + wto1 + " wto1wc:" + wto1wc); }
public void GenAstarPath() { if (startnodename == "") { LcNode snode = null; var prefstart = rman.linkcloudctrl.GetKeywordValue("DefStartNode"); snode = rman.linkcloudctrl.GetNodeOrNull(prefstart); if (snode == null) { snode = rman.linkcloudctrl.GetNode(0); } if (snode == null) { RouteMan.Log("Could not find start node in GenAstarPath"); return; } startnodename = snode.name; } if (endnodename == "") { LcNode enode = null; var prefstart = rman.linkcloudctrl.GetKeywordValue("DefEndNode"); enode = rman.linkcloudctrl.GetNodeOrNull(prefstart); if (enode == null) { enode = rman.linkcloudctrl.GetNode(-1); // lastpoint } if (enode == null) { RouteMan.Log("Could not find end node in GenAstarPath"); return; } endnodename = enode.name; } path = rman.linkcloudctrl.GenAstar(startnodename, endnodename); if (path == null) { RouteMan.Log("A * path was not found"); } else { RouteMan.Log("A * path length:" + _path.waypts.Count + " len:" + _path.pathLength); } }