Skip to content

Instantly share code, notes, and snippets.

@csarsurvey
Forked from robschmuecker/README.md
Created February 14, 2014 10:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save csarsurvey/8999077 to your computer and use it in GitHub Desktop.
Save csarsurvey/8999077 to your computer and use it in GitHub Desktop.
Bueh
{
"name": "Adapting How?",
"children": [
{
"name": "Implicit",
"children": [
{
"name": "Analyzing",
"children": [
{
"name": "Analyzing virtual data",
"children": [
{
"name": "Amount of data",
"children": [
{"name": "[Julier2002]", "citation_abbreviation": "[Julier2002]", "citation": "Julier, S., Rosenblum, L., Dc, W., Feiner, S., and Sestito, S. Information Filtering for Mobile Augmented Reality. (2000), 3–11", "size": 1}
]
},
{
"name": "Distance of data",
"children": [
{"name": "[Uratani2005]","citation_abbreviation": "[Uratani2005]", "citation": "Uratani, K., Takemura, H.: A Study of Depth Visualization Techniques for Virtual Annotations in Augmented Reality, Proceeding VR '05 Proceedings of the 2005 IEEE Conference 2005 on Virtual Reality, 2005", "size": 1}
]
}
]
},
{
"name": "Analyzing system",
"children": [
{
"name": "Analyzing system behaviour",
"children": [
{
"name": "Tracking errors",
"children": [
{"name": "[MacIntyre2002]",
"citation_abbreviation": "[MacIntyre2002]", "citation": "MacIntyre, B., Coelho, E.M., and Julier, S.J. (2002). Estimating and adapting to registration errors in augmented reality systems. Proceedings IEEE Virtual Reality 2002, IEEE Comput. Soc., 73–80", "size": 1},
{"name": "[Hallaway2004]", "size": 1,
"citation_abbreviation": "[Hallaway2004]", "citation": "Hallaway, D., Feiner, S., and Höllerer, T., (2004) Bridging the gaps: Hybrid tracking for adaptive mobile augmented reality. Applied Artificial Intelligence, Special Edition on Artificial Intelligence in Mobile Systems."},
{"name": "Coelho2004", "size": 1, "citation": "Coelho, E. M., Julier, S. J., & Maclntyre, B. (2004, November). OSGAR: A scene graph with uncertain transformations. In Mixed and Augmented Reality, 2004. ISMAR 2004. Third IEEE and ACM International Symposium on (pp. 6-15). IEEE.", "citation_abbreviation": "[Coehlho2004]" }
]
}
]
},
{
"name": "Analyzing system state",
"children": [
{"name": "MacWilliams2005", "size": 1, "citation": "MacWilliams, A. (2005). A Decentralized Adaptive Architecture for Ubiquitous Augmented Reality Systems, Dissertation, Technische Universität München, June 2005.", "citation_abbreviation": "[MacWilliams2005]" },
{"name": "Verbelen2011", "size": 1, "citation": "Verbelen, T., Stevens, T., Simoens, P., De Turck, F., and Dhoedt, B. Dynamic deployment and quality adaptation for mobile augmented reality applications. Journal of Systems and Software 84, 11 (2011), 1871–1882.", "citation_abbreviation": "[Verbelen2011]"}
]
}
]
},
{
"name": "Analyzing user behaviour",
"children": [
{
"name": "Body sensor readings",
"children": [
{"name": "[Xu2012]", "size": 1, "citation": "Xu, Y., Stojanovic, N., Stojanovic, L., Cabrera, A., & Schuchert, T. (2012, July). An approach for using complex event processing for adaptive augmented reality in cultural heritage domain: experience report. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (pp. 139-148). ACM.", "citation_abbreviation": " [Xu2012]" },
{"name": "[Duenser2011]", "size": 1, "citation": "Dünser, A., Grasset, R., & Farrant, H. (2010). Towards immersive and adaptive augmented reality exposure treatment. Studies in health technology and informatics, 167, 37-41.", "citation_abbreviation": " [Duenser2011]"},
{"name": "Lewandowski2011", "size": 1, "citation": "Lewandowski, J., Arochena, H.E., Naguib, R.N.G., and Chao, K.-M. A Portable Framework Design to Support User Context Aware Augmented Reality Applications. 2011 Third International Conference on Games and Virtual Worlds for Serious Applications, IEEE (2011), 144–147.", "citation_abbreviation": " [Lewandowski2011]"}
]
},
{
"name": "Body posture readings",
"children": [
{"name": "[Stricker2012]", "size": 1,
"citation": "Stricker, D., & Bleser, G. (2012, August). From Interactive to Adaptive Augmented Reality. In Ubiquitous Virtual Reality (ISUVR), 2012 International Symposium on (pp. 18-21). IEEE.", "citation_abbreviation": " [Stricker2012]"
}
]
},
{
"name": "View direction readings",
"children": [
{"name": " Xu2012_1", "size": 1, "citation": "Xu, Y., Stojanovic, N., Stojanovic, L., Cabrera, A., & Schuchert, T. (2012, July). An approach for using complex event processing for adaptive augmented reality in cultural heritage domain: experience report. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (pp. 139-148). ACM.", "citation_abbreviation": " [Xu2012]" }
]
}
]
},
{
"name": "Analyzing physical enviroment",
"children": [
{
"name": "Analyzing video images",
"children": [
{"name": "[Rosten2005]", "size": 1, "citation": "Rosten, E., Reitmayr, G., & Drummond, T. (2005). Real-time video annotations for augmented reality. In Advances in Visual Computing (pp. 294-302). Springer Berlin Heidelberg.", "citation_abbreviation": "[Rosten2005]"},
{"name": "[Grasset2012]", "size": 1, "citation": "Grasset, R., Langlotz, T., Kalkofen, D., Tatzgern, M., & Schmalstieg, D. (2012, November). Image-driven view management for augmented reality browsers. In ISMAR (pp. 177-186).", "citation_abbreviation": "[Grasset2012]"},
{"name": "[Kalkofen2009]", "size": 1, "citation": "Kalkofen, D., Zollman, S., Schall, G., Reitmayr, G., & Schmalstieg, D. (2009). Adaptive Visualization in Outdoor AR Displays. In International Symposium on Mixed and Augmented Reality (pp. 19-23).", "citation_abbreviation": "[Kalkofen2009]"},
{"name": "[Kalkofen2013]", "size": 1, "citation": "Kalkofen, D., Veas, E., Zollmann, S., Steinberger, M., & Schmalstieg, D. (2013, October). Adaptive ghosted views for Augmented Reality. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on (pp. 1-9). IEEE.", "citation_abbreviation": "[Kalkofen2013]"},
{"name": "[Bordes2011]", "size": 1, "citation": "Bordes, L., Breckon, T. P., Katramados, I., & Kheyrollahi, A. (2011). Adaptive object placement for augmented reality use in driver assistance systems.", "citation_abbreviation": "[Bordes2011]"},
{"name": "Tanaka2008", "size": 1, "citation": "Tanaka, K., Kishino, F., and Miyamae, M. An information layout method for an optical see-through head mounted display focusing on the viewability. 2008 7th IEEE/ACM International Symposium on Mixed and Augmented Reality, Ieee (2008), 139–142", "citation_abbreviation": "[Tanaka2008]"}
]
},
{
"name": "Analyzing depth sensor data",
"children": [
{"name": "[Henderson2008]", "size": 1, "citation": " Henderson, S.J. and Feiner, S. Opportunistic controls. Proceedings of the 2008 ACM symposium on Virtual reality software and technology - VRST ’08, ACM Press (2008), 211.", "citation_abbreviation": "[Henderson2008]"}
]
},
{
"name": "Analyzing model data",
"children": [
{"name": "[Kalkofen2009]", "size": 1, "citation": "Kalkofen, D., Zollman, S., Schall, G., Reitmayr, G., & Schmalstieg, D. (2009). Adaptive Visualization in Outdoor AR Displays. In International Symposium on Mixed and Augmented Reality (pp. 19-23).", "citation_abbreviation": "[Kalkofen2009]"}
]
},
{
"name": "Analyzing audio data",
"children": [
{"name": "[Xu2012]", "size": 1, "citation": "Xu, Y., Stojanovic, N., Stojanovic, L., Cabrera, A., & Schuchert, T. (2012, July). An approach for using complex event processing for adaptive augmented reality in cultural heritage domain: experience report. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (pp. 139-148). ACM.", "citation_abbreviation": " [Xu2012]" }
]
}
]
}
]
}
]
},
{
"name": "Explizit",
"children": [
{
"name": "User Input",
"children": [
{
"name": "GUI",
"children": [
{"name": "[Mendez2007]", "size": 1, "citation": "Mendez, E., & Schmalstieg, D. (2007, November). Adaptive Augmented Reality using context markup and style maps. In Proceedings of the 2007 6th IEEE and ACM International Symposium on Mixed and Augmented Reality (pp. 1-2). IEEE Computer Society.", "citation_abbreviation": "[Mendez2007]" },
{"name": "[Barakonyi2008]", "size": 1, "citation": " Barakonyi, Istvan, and Dieter Schmalstieg. Augmented reality agents for user interface adaptation, Computer Animation and Virtual Worlds 19.1 (2008): 23-35.", "citation_abbreviation": "[Barakonyi2008]" }
]
},
{
"name": "User Profile",
"children": [
{"name": "Sinclair2001_b", "size": 1,"citation": "Sinclair, P., & Martinez, K. (2001, August). Adaptive hypermedia in augmented reality. In Proceedings of the 3rd workshop on adaptive hypertext and hypermedia systems, ACM hypertext 2001 conference (Vol. 8).", "citation_abbreviation": "[Sinclair2001]"},
{"name": "[Shin2009]", "size": 1, "citation":"Choonsung Shin, Wonwoo Lee, Youngjung Suh, Hyoseok Yoon, Youngho Lee and Woontack Woo, CAMAR 2.0: Future Direction of Context-Aware Mobile Augmented Reality Space, 2009 International Symposium on Ubiquitous Virtual Reality", "citation_abbreviation": " [Shin2009]"},
{"name": "[Beadle1997]", "size": 1, "citation": "Beadle, H.W.P., Harper, B., Jr., G.Q.M., and Judge, J. Augmented Reality as an Interface to Adaptive Hypermedia Systems. Proc. IEEE/IEE International Conference on Telecommunications, Taylor & Francis (1997).", "citation_abbreviation": "[Beadle1997]" }
]
}
]
}
]
}
]
}
{
"name": "Adaptive to what",
"children": [
{
"name": "Human Factors",
"children": [
{
"name": "Preferences",
"children": [
{"name": "[Sinclair2001]", "size": 1,
"citation": "Sinclair, P., & Martinez, K. (2001, August). Adaptive hypermedia in augmented reality. In Proceedings of the 3rd workshop on adaptive hypertext and hypermedia systems, ACM hypertext 2001 conference (Vol. 8).", "citation_abbreviation": "[Sinclair2001]"}
]
},
{
"name": "Interests",
"children": [
{"name": "[Sinclair2001]", "size": 1,
"citation": "Sinclair, P., & Martinez, K. (2001, August). Adaptive hypermedia in augmented reality. In Proceedings of the 3rd workshop on adaptive hypertext and hypermedia systems, ACM hypertext 2001 conference (Vol. 8).", "citation_abbreviation": "[Sinclair2001]"}
]
},
{
"name": "Capabilities",
"children": [
{
"name": "Motion Capabillities",
"children": [
{"name": "[Stricker2012]", "size": 1, "citation":
"Stricker, D., & Bleser, G. (2012, August). From Interactive to Adaptive Augmented Reality. In Ubiquitous Virtual Reality (ISUVR), 2012 International Symposium on (pp. 18-21). IEEE.", "citation_abbreviation": " [Stricker2012]"
}
]
},
{
"name": "Concentration",
"children": [
{"name": "Concurent Tasks"},
{"name": "Task Importance"}
]
},
{
"name": "bio-physical status", "children": [
{"name": "Concurent Tasks"}
]
}
]
},
{
"name": "State",
"children": [
{
"name": "Physiological State",
"children": [
{"name": "Xu2012", "size": 1, "citation": "Xu, Y., Stojanovic, N., Stojanovic, L., Cabrera, A., & Schuchert, T. (2012, July). An approach for using complex event processing for adaptive augmented reality in cultural heritage domain: experience report. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (pp. 139-148). ACM.", "citation_abbreviation": " [Xu2012]" },
{"name": "Duenser2011", "size": 1, "citation": "Dünser, A., Grasset, R., & Farrant, H. (2010). Towards immersive and adaptive augmented reality exposure treatment. Studies in health technology and informatics, 167, 37-41.", "citation_abbreviation": " [Duenser2011]"},
{"name": "Lewandowski2011", "size": 1, "citation": "Lewandowski, J., Arochena, H.E., Naguib, R.N.G., and Chao, K.-M. A Portable Framework Design to Support User Context Aware Augmented Reality Applications. 2011 Third International Conference on Games and Virtual Worlds for Serious Applications, IEEE (2011), 144–147.", "citation_abbreviation": " [Lewandowski2011]"}
]
},
{
"name": "Attention",
"children": [
{"name": " Xu2012_1", "size": 1, "citation": "Xu, Y., Stojanovic, N., Stojanovic, L., Cabrera, A., & Schuchert, T. (2012, July). An approach for using complex event processing for adaptive augmented reality in cultural heritage domain: experience report. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (pp. 139-148). ACM.", "citation_abbreviation": " [Xu2012]" }
]
},
{
"name": "Motion",
"children": [
{"name": "[Stricker2012]", "size": 1, "citation":
"Stricker, D., & Bleser, G. (2012, August). From Interactive to Adaptive Augmented Reality. In Ubiquitous Virtual Reality (ISUVR), 2012 International Symposium on (pp. 18-21). IEEE.", "citation_abbreviation": " [Stricker2012]"}
]
},
{
"name": "Activity",
"children": [
{"name": "[Shin2009]", "size": 1, "citation":
"Choonsung Shin, Wonwoo Lee, Youngjung Suh, Hyoseok Yoon, Youngho Lee and Woontack Woo, CAMAR 2.0: Future Direction of Context-Aware Mobile Augmented Reality Space, 2009 International Symposium on Ubiquitous Virtual Reality", "citation_abbreviation": " [Shin2009]"}
]
}
]
}
]
},
{
"name": "User Tasks",
"children": [
{
"name": "User Goals",
"children": [
{"name": "[Beadle1997]", "size": 1, "citation": "Beadle, H.W.P., Harper, B., Jr., G.Q.M., and Judge, J. Augmented Reality as an Interface to Adaptive Hypermedia Systems. Proc. IEEE/IEE International Conference on Telecommunications, Taylor & Francis (1997).", "citation_abbreviation": "[Beadle1997]" } ,
{"name": "Sinclair2001_b", "size": 1,
"citation": "Sinclair, P., & Martinez, K. (2001, August). Adaptive hypermedia in augmented reality. In Proceedings of the 3rd workshop on adaptive hypertext and hypermedia systems, ACM hypertext 2001 conference (Vol. 8).", "citation_abbreviation": "[Sinclair2001]"}
]
},
{
"name": "Information",
"children": [
{
"name": "Quantity",
"children": [
{"name": "Julier2002", "size": 1, "citation": "Julier, S., Lanzagorta, M., Baillot, Y., Rosenblum, L., Feiner, S., Hollerer, T., & Sestito, S. (2000). Information filtering for mobile augmented reality. In Augmented Reality, 2000.(ISAR 2000). Proceedings. IEEE and ACM International Symposium on (pp. 3-11). IEEE.", "citation_abbreviation": "[Julier2002]"}
]
},
{
"name": "Clutter",
"children": [
{"name": "Rosten2005", "size": 1, "citation": "Rosten, E., Reitmayr, G., & Drummond, T. (2005). Real-time video annotations for augmented reality. In Advances in Visual Computing (pp. 294-302). Springer Berlin Heidelberg.", "citation_abbreviation": "[Rosten2005]"},
{"name": "Grasset2012", "size": 1, "citation": "Grasset, R., Langlotz, T., Kalkofen, D., Tatzgern, M., & Schmalstieg, D. (2012, November). Image-driven view management for augmented reality browsers. In ISMAR (pp. 177-186).", "citation_abbreviation": "[Grasset2012]"},
{"name": "Kalkofen2009", "size": 1, "citation": "Kalkofen, D., Zollman, S., Schall, G., Reitmayr, G., & Schmalstieg, D. (2009). Adaptive Visualization in Outdoor AR Displays. In International Symposium on Mixed and Augmented Reality (pp. 19-23).", "citation_abbreviation": "[Kalkofen2009]"},
{"name": "Tanaka2008", "size": 1, "citation": "Tanaka, K., Kishino, F., and Miyamae, M. An information layout method for an optical see-through head mounted display focusing on the viewability. 2008 7th IEEE/ACM International Symposium on Mixed and Augmented Reality, Ieee (2008), 139–142", "citation_abbreviation": "[Tanaka2008]"}
]
},
{
"name": "Readabillity",
"children": [
{"name": "Gabbard2005", "size": 1, "citation": "Gabbard, J. L., Swan, J. E., Hix, D., Schulman, R. S., Lucas, J., & Gupta, D. (2005, March). An empirical user-based study of text drawing styles and outdoor background textures for augmented reality. In Virtual Reality, 2005. Proceedings. VR 2005. IEEE (pp. 11-18). IEEE.", "citation_abbreviation": "[Gabbard2005]"},
{"name": "Kalkofen2013", "size": 1, "citation": "Kalkofen, D., Veas, E., Zollmann, S., Steinberger, M., & Schmalstieg, D. (2013, October). Adaptive ghosted views for Augmented Reality. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on (pp. 1-9). IEEE.", "citation_abbreviation": "[Kalkofen2013]"}
]
},
{
"name": "Distance",
"children": [
{"name": "Uratani2005", "size": 1, "citation": "Uratani, K., Machida, T., Kiyokawa, K., & Takemura, H. (2005, March). A study of depth visualization techniques for virtual annotations in augmented reality. In Proceedings of the 2005 IEEE Conference (pp. 295-296).", "citation_abbreviation": "[Uratani2005]"}
]
}
]
}
]
},
{
"name": "Activity/Environmental Factors",
"children": [
{
"name": "Place",
"children": [
{"name": "Bordes2011", "size": 1, "citation": "Bordes, L., Breckon, T. P., Katramados, I., & Kheyrollahi, A. (2011). Adaptive object placement for augmented reality use in driver assistance systems.", "citation_abbreviation": "[Bordes2011]"},
{"name": "Hervas2011", "size": 1, "citation": "Hervás, R., Bravo, J., & Fontecha, J. (2011). Awareness marks: adaptive services through user interactions with augmented objects. Personal and Ubiquitous Computing, 15(4), 409-418.", "citation_abbreviation": "[Hervas2011]"}
]
},
{
"name": "Social Networks",
"children": [
{"name": " Hervas2011_1", "size": 1, "citation": "Hervás, R., Bravo, J., & Fontecha, J. (2011). Awareness marks: adaptive services through user interactions with augmented objects. Personal and Ubiquitous Computing, 15(4), 409-418.", "citation_abbreviation": "[Hervas2011]"}
]
},
{
"name": "Importance of enviromental objects",
"children": [
{"name": "Rosten2005", "size": 1, "citation": "Rosten, E., Reitmayr, G., & Drummond, T. (2005). Real-time video annotations for augmented reality. In Advances in Visual Computing (pp. 294-302). Springer Berlin Heidelberg.", "citation_abbreviation": "[Rosten2005]"},
{"name": "Grasset2012", "size": 1, "citation": "Grasset, R., Langlotz, T., Kalkofen, D., Tatzgern, M., & Schmalstieg, D. (2012, November). Image-driven view management for augmented reality browsers. In ISMAR (pp. 177-186).", "citation_abbreviation": "[Grasset2012]"},
{"name": "Kalkofen2009", "size": 1, "citation": "Kalkofen, D., Zollman, S., Schall, G., Reitmayr, G., & Schmalstieg, D. (2009). Adaptive Visualization in Outdoor AR Displays. In International Symposium on Mixed and Augmented Reality (pp. 19-23).", "citation_abbreviation": "[Kalkofen2009]"},
{"name": "Kalkofen2013", "size": 1, "citation": "Kalkofen, D., Veas, E., Zollmann, S., Steinberger, M., & Schmalstieg, D. (2013, October). Adaptive ghosted views for Augmented Reality. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on (pp. 1-9). IEEE.", "citation_abbreviation": "[Kalkofen2013]"}
]
}
]
},
{
"name": "Technical Factors",
"children": [
{
"name": "Interactive System",
"children": [
{
"name": "System State",
"children": [
{"name": "Bühling2012", "size": 1, "citation": "Bühling, R., Obaid, M., Hammer, S., & André, E. (2012, December). Mobile augmented reality and adaptive art: a game-based motivation for energy saving. In Proceedings of the 11th International Conference on Mobile and Ubiquitous Multimedia (p. 50). ACM.", "citation_abbreviation": "[Bühling2012]"},
{"name": "Verbelen2011", "size": 1, "citation": "Verbelen, T., Stevens, T., Simoens, P., De Turck, F., and Dhoedt, B. Dynamic deployment and quality adaptation for mobile augmented reality applications. Journal of Systems and Software 84, 11 (2011), 1871–1882.", "citation_abbreviation": "[Verbelen2011]"}
]
},
{
"name": "Input",
"children": [
{
"name": "Environment Sensors",
"children": [
{
"name": "Location",
"children": [
{
"name": "Spatial Uncertainties",
"children": [
{"name": "Hallaway2004", "size": 1, "citation": " Hallaway, D., Feiner, S., & Höllerer, T. (2004). Bridging the gaps: Hybrid tracking for adaptive mobile augmented reality. Applied Artificial Intelligence, 18(6), 477-500.", "citation_abbreviation": "[Hallaway2004]"},
{"name": "Coelho2004", "size": 1, "citation": "Coelho, E. M., Julier, S. J., & Maclntyre, B. (2004, November). OSGAR: A scene graph with uncertain transformations. In Mixed and Augmented Reality, 2004. ISMAR 2004. Third IEEE and ACM International Symposium on (pp. 6-15). IEEE.", "citation_abbreviation": "[Coehlho2004]" },
{"name": "MacWilliams2005", "size": 1, "citation": "MacWilliams, A. (2005). A Decentralized Adaptive Architecture for Ubiquitous Augmented Reality Systems, Dissertation, Technische Universität München, June 2005.", "citation_abbreviation": "[MacWilliams2005]" },
{"name": "MacIntyre2002", "size": 1, "citation": "MacIntyre, B., Coelho, E.M., and Julier, S.J. (2002). Estimating and adapting to registration errors in augmented reality systems. Proceedings IEEE Virtual Reality 2002, IEEE Comput. Soc., 73–80.", "citation_abbreviation": "[MacIntyre2002]" }
]
}
]
}
]
},
{
"name": "User Input",
"children": [
{"name": "Mendez2007", "size": 1, "citation": "Mendez, E., & Schmalstieg, D. (2007, November). Adaptive Augmented Reality using context markup and style maps. In Proceedings of the 2007 6th IEEE and ACM International Symposium on Mixed and Augmented Reality (pp. 1-2). IEEE Computer Society.", "citation_abbreviation": "[Mendez2007]" }
]
}
]
},
{
"name": "Output",
"children": [
{
"name": "Visual Displays ",
"children": [
]
}
]
}
]
}
]
}
]
}
{
"name": "Adaptive to what",
"children": [
{
"name": "Human Factors",
"children":
[
{
"name": "User's State",
"children": [
{
"name": "Physiological State",
"children": [
{"name": "Xu2012", "size": 1, "citation": "Xu, Y., Stojanovic, N., Stojanovic, L., Cabrera, A., & Schuchert, T. (2012, July). An approach for using complex event processing for adaptive augmented reality in cultural heritage domain: experience report. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (pp. 139-148). ACM.", "citation_abbreviation": " [Xu2012]" },
{"name": "Duenser2011", "size": 1, "citation": "Dünser, A., Grasset, R., & Farrant, H. (2010). Towards immersive and adaptive augmented reality exposure treatment. Studies in health technology and informatics, 167, 37-41.", "citation_abbreviation": " [Duenser2011]"},
{"name": "Lewandowski2011", "size": 1, "citation": "Lewandowski, J., Arochena, H.E., Naguib, R.N.G., and Chao, K.-M. A Portable Framework Design to Support User Context Aware Augmented Reality Applications. 2011 Third International Conference on Games and Virtual Worlds for Serious Applications, IEEE (2011), 144–147.", "citation_abbreviation": " [Lewandowski2011]"}
]
},
{
"name": "Cognitive State",
"children": [
{
"name": "Attention",
"children": [
{
"name": "User Goals",
"children": [
{"name": "[Beadle1997]", "size": 1, "citation": "Beadle, H.W.P., Harper, B., Jr., G.Q.M., and Judge, J. Augmented Reality as an Interface to Adaptive Hypermedia Systems. Proc. IEEE/IEE International Conference on Telecommunications, Taylor & Francis (1997).", "citation_abbreviation": "[Beadle1997]" } ,
{"name": "Sinclair2001_b", "size": 1,
"citation": "Sinclair, P., & Martinez, K. (2001, August). Adaptive hypermedia in augmented reality. In Proceedings of the 3rd workshop on adaptive hypertext and hypermedia systems, ACM hypertext 2001 conference (Vol. 8).", "citation_abbreviation": "[Sinclair2001]"},
{"name": "Concurent Tasks"},
{"name": "Task Importance"}
]
},
{"name": " Xu2012_1", "size": 1, "citation": "Xu, Y., Stojanovic, N., Stojanovic, L., Cabrera, A., & Schuchert, T. (2012, July). An approach for using complex event processing for adaptive augmented reality in cultural heritage domain: experience report. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (pp. 139-148). ACM.", "citation_abbreviation": " [Xu2012]" }
]
}
]
},
{
"name": "Affective State",
"children": []
},
{
"name": "Perceptual Capabilities",
"children":
[
{"name": "Gabbard2005", "size": 1, "citation": "Gabbard, J. L., Swan, J. E., Hix, D., Schulman, R. S., Lucas, J., & Gupta, D. (2005, March). An empirical user-based study of text drawing styles and outdoor background textures for augmented reality. In Virtual Reality, 2005. Proceedings. VR 2005. IEEE (pp. 11-18). IEEE.", "citation_abbreviation": "[Gabbard2005]"},
{"name": "Kalkofen2013", "size": 1, "citation": "Kalkofen, D., Veas, E., Zollmann, S., Steinberger, M., & Schmalstieg, D. (2013, October). Adaptive ghosted views for Augmented Reality. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on (pp. 1-9). IEEE.", "citation_abbreviation": "[Kalkofen2013]"},
{"name": "Uratani2005", "size": 1, "citation": "Uratani, K., Machida, T., Kiyokawa, K., & Takemura, H. (2005, March). A study of depth visualization techniques for virtual annotations in augmented reality. In Proceedings of the 2005 IEEE Conference (pp. 295-296).", "citation_abbreviation": "[Uratani2005]"}
]
},
{
"name": "Attitude / Preferences",
"children": [
{"name": "[Sinclair2001]", "size": 1,
"citation": "Sinclair, P., & Martinez, K. (2001, August). Adaptive hypermedia in augmented reality. In Proceedings of the 3rd workshop on adaptive hypertext and hypermedia systems, ACM hypertext 2001 conference (Vol. 8).", "citation_abbreviation": "[Sinclair2001]"}
]
},
{
"name": "Action/Activity",
"children": [
{
"name": "Current Activity",
"children": [
{
"name": "Motion",
"children": [
{"name": "[Stricker2012]", "size": 1, "citation":
"Stricker, D., & Bleser, G. (2012, August). From Interactive to Adaptive Augmented Reality. In Ubiquitous Virtual Reality (ISUVR), 2012 International Symposium on (pp. 18-21). IEEE.", "citation_abbreviation": " [Stricker2012]"}
]
}
]
},
{
"name": "Activity History",
"children": [
{"name": "[Shin2009]", "size": 1, "citation":
"Choonsung Shin, Wonwoo Lee, Youngjung Suh, Hyoseok Yoon, Youngho Lee and Woontack Woo, CAMAR 2.0: Future Direction of Context-Aware Mobile Augmented Reality Space, 2009 International Symposium on Ubiquitous Virtual Reality", "citation_abbreviation": " [Shin2009]"}
]
}
]
}
]
},
{
"name": "Social Factors",
"children":
[
{
"name": "Place",
"children":
[
{
"name": "Privacy",
"children": [
]
},
{
"name": "Crowdedness",
"children": [
]
},
{
"name": "Bordes2011", "size": 1, "citation": "Bordes, L., Breckon, T. P., Katramados, I., & Kheyrollahi, A. (2011). Adaptive object placement for augmented reality use in driver assistance systems.", "citation_abbreviation": "[Bordes2011]"
},
{
"name": "Hervas2011", "size": 1, "citation": "Hervás, R., Bravo, J., & Fontecha, J. (2011). Awareness marks: adaptive services through user interactions with augmented objects. Personal and Ubiquitous Computing, 15(4), 409-418.", "citation_abbreviation": "[Hervas2011]"
}
]
},
{
"name": "Social Networks",
"children": [
{"name": " Hervas2011_1", "size": 1, "citation": "Hervás, R., Bravo, J., & Fontecha, J. (2011). Awareness marks: adaptive services through user interactions with augmented objects. Personal and Ubiquitous Computing, 15(4), 409-418.", "citation_abbreviation": "[Hervas2011]"}
]
}
]
}
]
},
{
"name": "Activity/Environmental Factors",
"children":
[
{
"name": "Space",
"children":
[
{
"name": "Physical Location",
"children":
[
{
"name": "Physical Attributes",
"children":
[
{
"name": "Noise",
"children": [ ]
},
{
"name": "Scene Brigthness",
"children": [ ]
},
{
"name": "Temperature",
"children": [ ]
},
{
"name": "Motion",
"children": [ ]
}
]
}
]
},
{
"name": "Virtual Location",
"children": [ ]
}
]
},
{
"name": "Time",
"children": [ ]
},
{
"name": "??Importance of enviromental objects",
"children": [
{"name": "Rosten2005", "size": 1, "citation": "Rosten, E., Reitmayr, G., & Drummond, T. (2005). Real-time video annotations for augmented reality. In Advances in Visual Computing (pp. 294-302). Springer Berlin Heidelberg.", "citation_abbreviation": "[Rosten2005]"},
{"name": "Grasset2012", "size": 1, "citation": "Grasset, R., Langlotz, T., Kalkofen, D., Tatzgern, M., & Schmalstieg, D. (2012, November). Image-driven view management for augmented reality browsers. In ISMAR (pp. 177-186).", "citation_abbreviation": "[Grasset2012]"},
{"name": "Kalkofen2009", "size": 1, "citation": "Kalkofen, D., Zollman, S., Schall, G., Reitmayr, G., & Schmalstieg, D. (2009). Adaptive Visualization in Outdoor AR Displays. In International Symposium on Mixed and Augmented Reality (pp. 19-23).", "citation_abbreviation": "[Kalkofen2009]"},
{"name": "Kalkofen2013", "size": 1, "citation": "Kalkofen, D., Veas, E., Zollmann, S., Steinberger, M., & Schmalstieg, D. (2013, October). Adaptive ghosted views for Augmented Reality. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on (pp. 1-9). IEEE.", "citation_abbreviation": "[Kalkofen2013]"}
]
},
{
"name": "Digital Information",
"children": [
{
"name": "Quantity",
"children": [
{"name": "Julier2002", "size": 1, "citation": "Julier, S., Lanzagorta, M., Baillot, Y., Rosenblum, L., Feiner, S., Hollerer, T., & Sestito, S. (2000). Information filtering for mobile augmented reality. In Augmented Reality, 2000.(ISAR 2000). Proceedings. IEEE and ACM International Symposium on (pp. 3-11). IEEE.", "citation_abbreviation": "[Julier2002]"}
]
},
{
"name": "Processed Information / Information Presentation",
"children": [
{
"name": "Clutter",
"children": [
{"name": "Rosten2005", "size": 1, "citation": "Rosten, E., Reitmayr, G., & Drummond, T. (2005). Real-time video annotations for augmented reality. In Advances in Visual Computing (pp. 294-302). Springer Berlin Heidelberg.", "citation_abbreviation": "[Rosten2005]"},
{"name": "Grasset2012", "size": 1, "citation": "Grasset, R., Langlotz, T., Kalkofen, D., Tatzgern, M., & Schmalstieg, D. (2012, November). Image-driven view management for augmented reality browsers. In ISMAR (pp. 177-186).", "citation_abbreviation": "[Grasset2012]"},
{"name": "Kalkofen2009", "size": 1, "citation": "Kalkofen, D., Zollman, S., Schall, G., Reitmayr, G., & Schmalstieg, D. (2009). Adaptive Visualization in Outdoor AR Displays. In International Symposium on Mixed and Augmented Reality (pp. 19-23).", "citation_abbreviation": "[Kalkofen2009]"},
{"name": "Tanaka2008", "size": 1, "citation": "Tanaka, K., Kishino, F., and Miyamae, M. An information layout method for an optical see-through head mounted display focusing on the viewability. 2008 7th IEEE/ACM International Symposium on Mixed and Augmented Reality, Ieee (2008), 139–142", "citation_abbreviation": "[Tanaka2008]"}
]
},
{
"name": "Text Readabillity",
"children": [
{"name": "Gabbard2005", "size": 1, "citation": "Gabbard, J. L., Swan, J. E., Hix, D., Schulman, R. S., Lucas, J., & Gupta, D. (2005, March). An empirical user-based study of text drawing styles and outdoor background textures for augmented reality. In Virtual Reality, 2005. Proceedings. VR 2005. IEEE (pp. 11-18). IEEE.", "citation_abbreviation": "[Gabbard2005]"},
{"name": "Kalkofen2013", "size": 1, "citation": "Kalkofen, D., Veas, E., Zollmann, S., Steinberger, M., & Schmalstieg, D. (2013, October). Adaptive ghosted views for Augmented Reality. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on (pp. 1-9). IEEE.", "citation_abbreviation": "[Kalkofen2013]"}
]
},
{
"name": "Apparent Size",
"children": [
{"name": "Uratani2005", "size": 1, "citation": "Uratani, K., Machida, T., Kiyokawa, K., & Takemura, H. (2005, March). A study of depth visualization techniques for virtual annotations in augmented reality. In Proceedings of the 2005 IEEE Conference (pp. 295-296).", "citation_abbreviation": "[Uratani2005]"}
]
}
]
}
]
}
]
},
{
"name": "Technical Factors",
"children": [
{
"name": "Interactive System",
"children": [
{
"name": "System State and Characteristics",
"children": [
{
"name": "Processing Power",
"children": [ ]
},
{
"name": "Battery Consumption / expected uptime",
"children": [ ]
},
{"name": "Bühling2012", "size": 1, "citation": "Bühling, R., Obaid, M., Hammer, S., & André, E. (2012, December). Mobile augmented reality and adaptive art: a game-based motivation for energy saving. In Proceedings of the 11th International Conference on Mobile and Ubiquitous Multimedia (p. 50). ACM.", "citation_abbreviation": "[Bühling2012]"},
{"name": "Verbelen2011", "size": 1, "citation": "Verbelen, T., Stevens, T., Simoens, P., De Turck, F., and Dhoedt, B. Dynamic deployment and quality adaptation for mobile augmented reality applications. Journal of Systems and Software 84, 11 (2011), 1871–1882.", "citation_abbreviation": "[Verbelen2011]"}
]
},
{
"name": "Input",
"children": [
{
"name": "Sensor Characteristics",
"children": [ ]
},
{
"name": "Environment Sensors",
"children": [
{
"name": "Location",
"children": [
{
"name": "Spatial Uncertainties",
"children": [
{"name": "Hallaway2004", "size": 1, "citation": " Hallaway, D., Feiner, S., & Höllerer, T. (2004). Bridging the gaps: Hybrid tracking for adaptive mobile augmented reality. Applied Artificial Intelligence, 18(6), 477-500.", "citation_abbreviation": "[Hallaway2004]"},
{"name": "Coelho2004", "size": 1, "citation": "Coelho, E. M., Julier, S. J., & Maclntyre, B. (2004, November). OSGAR: A scene graph with uncertain transformations. In Mixed and Augmented Reality, 2004. ISMAR 2004. Third IEEE and ACM International Symposium on (pp. 6-15). IEEE.", "citation_abbreviation": "[Coehlho2004]" },
{"name": "MacWilliams2005", "size": 1, "citation": "MacWilliams, A. (2005). A Decentralized Adaptive Architecture for Ubiquitous Augmented Reality Systems, Dissertation, Technische Universität München, June 2005.", "citation_abbreviation": "[MacWilliams2005]" },
{"name": "MacIntyre2002", "size": 1, "citation": "MacIntyre, B., Coelho, E.M., and Julier, S.J. (2002). Estimating and adapting to registration errors in augmented reality systems. Proceedings IEEE Virtual Reality 2002, IEEE Comput. Soc., 73–80.", "citation_abbreviation": "[MacIntyre2002]" }
]
}
]
}
]
},
{
"name": "??User Input",
"children": [
{"name": "Mendez2007", "size": 1, "citation": "Mendez, E., & Schmalstieg, D. (2007, November). Adaptive Augmented Reality using context markup and style maps. In Proceedings of the 2007 6th IEEE and ACM International Symposium on Mixed and Augmented Reality (pp. 1-2). IEEE Computer Society.", "citation_abbreviation": "[Mendez2007]" }
]
}
]
},
{
"name": "Output",
"children": [
{
"name": "Visual Displays ",
"children": [
{
"name": "Spatial Arrangement",
"children": []
},
{
"name": "Display Characteristics",
"children": []
}
]
}
]
}
]
},
{
"name": "Technical Infrastructure",
"children": [
{
"name": "Network Characteristics",
"children": [
]
}
]
}
]
}
]
}
{
"name": "Adapting What?",
"children": [
{
"name": "System Input",
"children": [
{
"name": "Interface",
"children": [
{"name": "[Hallaway2004]", "size": 1, "citation": " Hallaway, D., Feiner, S., & Höllerer, T. (2004). Bridging the gaps: Hybrid tracking for adaptive mobile augmented reality. Applied Artificial Intelligence, 18(6), 477-500.", "citation_abbreviation": "[Hallaway2004]"},
{"name": "[Stricker2012]", "size": 1, "citation":
"Stricker, D., & Bleser, G. (2012, August). From Interactive to Adaptive Augmented Reality. In Ubiquitous Virtual Reality (ISUVR), 2012 International Symposium on (pp. 18-21). IEEE.", "citation_abbreviation": " [Stricker2012]"},
{"name": "[Xu2012]", "size": 1, "citation": "Xu, Y., Stojanovic, N., Stojanovic, L., Cabrera, A., & Schuchert, T. (2012, July). An approach for using complex event processing for adaptive augmented reality in cultural heritage domain: experience report. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (pp. 139-148). ACM.", "citation_abbreviation": " [Xu2012]" },
{"name": "[Hervas2011]", "size": 1, "citation": "Hervás, R., Bravo, J., & Fontecha, J. (2011). Awareness marks: adaptive services through user interactions with augmented objects. Personal and Ubiquitous Computing, 15(4), 409-418.", "citation_abbreviation": "[Hervas2011]"} ,
{"name": "Xu2012", "size": 1, "citation": "Xu, Y., Stojanovic, N., Stojanovic, L., Cabrera, A., & Schuchert, T. (2012, July). An approach for using complex event processing for adaptive augmented reality in cultural heritage domain: experience report. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (pp. 139-148). ACM.", "citation_abbreviation": " [Xu2012]" },
{"name": "Lewandowski2011", "size": 1, "citation": "Lewandowski, J., Arochena, H.E., Naguib, R.N.G., and Chao, K.-M. A Portable Framework Design to Support User Context Aware Augmented Reality Applications. 2011 Third International Conference on Games and Virtual Worlds for Serious Applications, IEEE (2011), 144–147.", "citation_abbreviation": " [Lewandowski2011]"}
]
},
{
"name": "Interaction Modalities",
"children": [
{"name": "ArtSense", "size": 1}
]
}
]
},
{
"name": "System Configuration",
"children": [
{
"name": "Senors Usage",
"children": [
]
},
{
"name": "Registration Techniques",
"children": [
{"name": "MacWilliams2005", "size": 1, "citation": "MacWilliams, A. (2005). A Decentralized Adaptive Architecture for Ubiquitous Augmented Reality Systems, Dissertation, Technische Universität München, June 2005.", "citation_abbreviation": "[MacWilliams2005]" },
{"name": "Verbelen2011", "size": 1, "citation": "Verbelen, T., Stevens, T., Simoens, P., De Turck, F., and Dhoedt, B. Dynamic deployment and quality adaptation for mobile augmented reality applications. Journal of Systems and Software 84, 11 (2011), 1871–1882.", "citation_abbreviation": "[Verbelen2011]"}
]
}
]
},
{
"name": "System Output",
"children": [
{
"name": "Content",
"children": [
{"name": "[Sinclair2001]", "size": 1, "citation": "Sinclair, P., & Martinez, K. (2001, August). Adaptive hypermedia in augmented reality. In Proceedings of the 3rd workshop on adaptive hypertext and hypermedia systems, ACM hypertext 2001 conference (Vol. 8).", "citation_abbreviation": "[Sinclair2001]"},
{"name": "[Beadle1997]", "size": 1, "citation": "Beadle, H.W.P., Harper, B., Jr., G.Q.M., and Judge, J. Augmented Reality as an Interface to Adaptive Hypermedia Systems. Proc. IEEE/IEE International Conference on Telecommunications, Taylor & Francis (1997).", "citation_abbreviation": "[Beadle1997]" } ,
{"name": "[Bühling2012]", "size": 1, "citation": "Bühling, R., Obaid, M., Hammer, S., & André, E. (2012, December). Mobile augmented reality and adaptive art: a game-based motivation for energy saving. In Proceedings of the 11th International Conference on Mobile and Ubiquitous Multimedia (p. 50). ACM.", "citation_abbreviation": "[Bühling2012]"},
{"name": "[Shin2009]", "size": 1, "citation": "Choonsung Shin, Wonwoo Lee, Youngjung Suh, Hyoseok Yoon, Youngho Lee and Woontack Woo, CAMAR 2.0: Future Direction of Context-Aware Mobile Augmented Reality Space, 2009 International Symposium on Ubiquitous Virtual Reality", "citation_abbreviation": " [Shin2009]"}
]
},
{
"name": "Information Presentation",
"children": [
{
"name": "Spatial Arrangement",
"children": [
{"name": "[Rosten2005]", "size": 1, "citation": "Rosten, E., Reitmayr, G., & Drummond, T. (2005). Real-time video annotations for augmented reality. In Advances in Visual Computing (pp. 294-302). Springer Berlin Heidelberg.", "citation_abbreviation": "[Rosten2005]"},
{"name": "[Grasset2012]", "size": 1, "citation": "Grasset, R., Langlotz, T., Kalkofen, D., Tatzgern, M., & Schmalstieg, D. (2012, November). Image-driven view management for augmented reality browsers. In ISMAR (pp. 177-186).", "citation_abbreviation": "[Grasset2012]"} ,
{"name": "[Bordes2011]", "size": 1, "citation": "Bordes, L., Breckon, T. P., Katramados, I., & Kheyrollahi, A. (2011). Adaptive object placement for augmented reality use in driver assistance systems.", "citation_abbreviation": "[Bordes2011]"},
{"name": "Tanaka2008", "size": 1, "citation": "Tanaka, K., Kishino, F., and Miyamae, M. An information layout method for an optical see-through head mounted display focusing on the viewability. 2008 7th IEEE/ACM International Symposium on Mixed and Augmented Reality, Ieee (2008), 139–142", "citation_abbreviation": "[Tanaka2008]"}
]
},
{
"name": "Appearance Adaptation",
"children": [
{"name": "[Kalkofen2013]", "size": 1, "citation": "Kalkofen, D., Veas, E., Zollmann, S., Steinberger, M., & Schmalstieg, D. (2013, October). Adaptive ghosted views for Augmented Reality. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on (pp. 1-9). IEEE.", "citation_abbreviation": "[Kalkofen2013]"},
{"name": "MacIntyre2002", "size": 1, "citation": "MacIntyre, B., Coelho, E.M., and Julier, S.J. (2002). Estimating and adapting to registration errors in augmented reality systems. Proceedings IEEE Virtual Reality 2002, IEEE Comput. Soc., 73–80.", "citation_abbreviation": "[MacIntyre2002]" },
{"name": "[Coelho2004]", "size": 1, "citation": "Coelho, E. M., Julier, S. J., & Maclntyre, B. (2004, November). OSGAR: A scene graph with uncertain transformations. In Mixed and Augmented Reality, 2004. ISMAR 2004. Third IEEE and ACM International Symposium on (pp. 6-15). IEEE.", "citation_abbreviation": "[Coehlho2004]" },
{"name": "[Bordes2011]", "size": 1, "citation": "Bordes, L., Breckon, T. P., Katramados, I., & Kheyrollahi, A. (2011). Adaptive object placement for augmented reality use in driver assistance systems.", "citation_abbreviation": "[Bordes2011]"},
{"name": "[Uratani2005]", "size": 1, "citation": "Uratani, K., Machida, T., Kiyokawa, K., & Takemura, H. (2005, March). A study of depth visualization techniques for virtual annotations in augmented reality. In Proceedings of the 2005 IEEE Conference (pp. 295-296).", "citation_abbreviation": "[Uratani2005]"},
{"name": "[Beadle1997]", "size": 1, "citation": "Sinclair, P., & Martinez, K. (2001, August). Adaptive hypermedia in augmented reality. In Proceedings of the 3rd workshop on adaptive hypertext and hypermedia systems, ACM hypertext 2001 conference (Vol. 8).", "citation_abbreviation": "[Beadle1997]" },
{"name": "[Bühling2012]", "size": 1, "citation": "Bühling, R., Obaid, M., Hammer, S., & André, E. (2012, December). Mobile augmented reality and adaptive art: a game-based motivation for energy saving. In Proceedings of the 11th International Conference on Mobile and Ubiquitous Multimedia (p. 50). ACM.", "citation_abbreviation": "[Bühling2012]"},
{"name": "[Hallaway2004]", "size": 1, "citation": " Hallaway, D., Feiner, S., & Höllerer, T. (2004). Bridging the gaps: Hybrid tracking for adaptive mobile augmented reality. Applied Artificial Intelligence, 18(6), 477-500.", "citation_abbreviation": "[Hallaway2004]"},
{"name": "[Kalkofen2009]", "size": 1, "citation": "Kalkofen, D., Zollman, S., Schall, G., Reitmayr, G., & Schmalstieg, D. (2009). Adaptive Visualization in Outdoor AR Displays. In International Symposium on Mixed and Augmented Reality (pp. 19-23).", "citation_abbreviation": "[Kalkofen2009]"},
{"name": "[Mendez2007]", "size": 1, "citation": "Mendez, E., & Schmalstieg, D. (2007, November). Adaptive Augmented Reality using context markup and style maps. In Proceedings of the 2007 6th IEEE and ACM International Symposium on Mixed and Augmented Reality (pp. 1-2). IEEE Computer Society.", "citation_abbreviation": "[Mendez2007]" }
]
},
{
"name": "Amount of Data",
"children": [
{"name": "[Julier2002]", "size": 1, "citation": "Julier, S., Lanzagorta, M., Baillot, Y., Rosenblum, L., Feiner, S., Hollerer, T., & Sestito, S. (2000). Information filtering for mobile augmented reality. In Augmented Reality, 2000.(ISAR 2000). Proceedings. IEEE and ACM International Symposium on (pp. 3-11). IEEE.", "citation_abbreviation": "[Julier2002]"},
{"name": "[Sinclair2001]", "size": 1,"citation": "Sinclair, P., & Martinez, K. (2001, August). Adaptive hypermedia in augmented reality. In Proceedings of the 3rd workshop on adaptive hypertext and hypermedia systems, ACM hypertext 2001 conference (Vol. 8).", "citation_abbreviation": "[Sinclair2001]"}
]
}
]
}
]
}
]
}
// Get JSON data
//treeJSON = d3.json("testTree1.json", function(error, treeData) {
treeJSON = d3.json("data-how.json", function(error, treeData) {
var HOR_DIST_PER_LEVEL = 200; // the horizontal sitance per node
var VERT_DIST_PER_LEVEL = 100;
var MIN_NODE_RADIUS = 10;
var MIN_NODE_AREA = MIN_NODE_RADIUS * MIN_NODE_RADIUS * Math.PI;
var toolTip = d3.select(document.getElementById("toolTip"));
var header = d3.select(document.getElementById("head"));
var toolTipText = d3.select(document.getElementById("toolTipText"));
// Calculate total nodes, max label length
var totalNodes = 0;
var maxLabelLength = 0;
// variables for drag/drop
var selectedNode = null;
var draggingNode = null;
// panning variables
var panSpeed = 200;
var panBoundary = 20; // Within 20px from edges will pan when dragging.
// Misc. variables
var i = 0;
var duration = 750;
var root;
// size of the diagram
var viewerWidth = $(document).width();
var viewerHeight = $(document).height();
var tree = d3.layout.tree()
.size([viewerHeight, viewerWidth]);
// define a d3 diagonal projection for use by the node paths later on.
var diagonal = d3.svg.diagonal()
.projection(function(d) {
return [d.y, d.x];
});
// A recursive helper function for performing some setup by walking through all nodes
function visit(parent, visitFn, childrenFn) {
if (!parent) return;
visitFn(parent);
var children = childrenFn(parent);
var totalNumLeaves = 0;
if (children) {
var count = children.length;
//totalNumLeaves = totalNumLeaves + children.length
for (var i = 0; i < count; i++) {
totalNumLeaves = totalNumLeaves + visit(children[i], visitFn, childrenFn);
}
parent["totalNumLeaves"] = totalNumLeaves;
return totalNumLeaves;
} else { // we have a leaf node
//parent["totalNumLeaves"] = totalNumLeaves;
if(parent.citation)
return 1;
else { return 0; }
}
}
// Call visit function to establish maxLabelLength
visit(treeData, function(d) {
totalNodes++;
maxLabelLength = Math.max(d.name.length, maxLabelLength);
}, function(d) {
//return d.children && d.children.length > 0 ? d.children : null;
return d.children && d.children.length > 0 ? d.children : null;
});
// sort the tree according to the node names
function sortTree() {
tree.sort(function(a, b) {
return b.name.toLowerCase() < a.name.toLowerCase() ? 1 : -1;
});
}
// Sort the tree initially incase the JSON isn't in a sorted order.
//sortTree();
// TODO: Pan function, can be better implemented.
function pan(domNode, direction) {
var speed = panSpeed;
if (panTimer) {
clearTimeout(panTimer);
translateCoords = d3.transform(svgGroup.attr("transform"));
if (direction == 'left' || direction == 'right') {
translateX = direction == 'left' ? translateCoords.translate[0] + speed : translateCoords.translate[0] - speed;
translateY = translateCoords.translate[1];
} else if (direction == 'up' || direction == 'down') {
translateX = translateCoords.translate[0];
translateY = direction == 'up' ? translateCoords.translate[1] + speed : translateCoords.translate[1] - speed;
}
scaleX = translateCoords.scale[0];
scaleY = translateCoords.scale[1];
scale = zoomListener.scale();
svgGroup.transition().attr("transform", "translate(" + translateX + "," + translateY + ")scale(" + scale + ")");
d3.select(domNode).select('g.node').attr("transform", "translate(" + translateX + "," + translateY + ")");
zoomListener.scale(zoomListener.scale());
zoomListener.translate([translateX, translateY]);
panTimer = setTimeout(function() {
pan(domNode, speed, direction);
}, 50);
}
}
// Define the zoom function for the zoomable tree
function zoom() {
svgGroup.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}
// define the zoomListener which calls the zoom function on the "zoom" event constrained within the scaleExtents
var zoomListener = d3.behavior.zoom().scaleExtent([0.1, 3]).on("zoom", zoom);
function initiateDrag(d, domNode) {
draggingNode = d;
d3.select(domNode).select('.ghostCircle').attr('pointer-events', 'none');
d3.selectAll('.ghostCircle').attr('class', 'ghostCircle show');
d3.select(domNode).attr('class', 'node activeDrag');
svgGroup.selectAll("g.node").sort(function(a, b) { // select the parent and sort the path's
if (a.id != draggingNode.id) return 1; // a is not the hovered element, send "a" to the back
else return -1; // a is the hovered element, bring "a" to the front
});
// if nodes has children, remove the links and nodes
if (nodes.length > 1) {
// remove link paths
links = tree.links(nodes);
nodePaths = svgGroup.selectAll("path.link")
.data(links, function(d) {
return d.target.id;
}).remove();
// remove child nodes
nodesExit = svgGroup.selectAll("g.node")
.data(nodes, function(d) {
return d.id;
}).filter(function(d, i) {
if (d.id == draggingNode.id) {
return false;
}
return true;
}).remove();
}
// remove parent link
parentLink = tree.links(tree.nodes(draggingNode.parent));
svgGroup.selectAll('path.link').filter(function(d, i) {
if (d.target.id == draggingNode.id) {
return true;
}
return false;
}).remove();
dragStarted = null;
}
// define the baseSvg, attaching a class for styling and the zoomListener
var baseSvg = d3.select("#tree-container").append("svg")
.attr("width", viewerWidth)
.attr("height", viewerHeight)
.attr("class", "overlay")
.call(zoomListener);
// Define the drag listeners for drag/drop behaviour of nodes.
dragListener = d3.behavior.drag()
.on("dragstart", function(d) {
if (d == root) {
return;
}
dragStarted = true;
nodes = tree.nodes(d);
d3.event.sourceEvent.stopPropagation();
// it's important that we suppress the mouseover event on the node being dragged. Otherwise it will absorb the mouseover event and the underlying node will not detect it d3.select(this).attr('pointer-events', 'none');
})
.on("drag", function(d) {
if (d == root) {
return;
}
if (dragStarted) {
domNode = this;
initiateDrag(d, domNode);
}
// get coords of mouseEvent relative to svg container to allow for panning
relCoords = d3.mouse($('svg').get(0));
if (relCoords[0] < panBoundary) {
panTimer = true;
pan(this, 'left');
} else if (relCoords[0] > ($('svg').width() - panBoundary)) {
panTimer = true;
pan(this, 'right');
} else if (relCoords[1] < panBoundary) {
panTimer = true;
pan(this, 'up');
} else if (relCoords[1] > ($('svg').height() - panBoundary)) {
panTimer = true;
pan(this, 'down');
} else {
try {
clearTimeout(panTimer);
} catch (e) {
}
}
d.x0 += d3.event.dy;
d.y0 += d3.event.dx;
var node = d3.select(this);
node.attr("transform", "translate(" + d.y0 + "," + d.x0 + ")");
updateTempConnector();
}).on("dragend", function(d) {
if (d == root) {
return;
}
domNode = this;
if (selectedNode) {
// now remove the element from the parent, and insert it into the new elements children
var index = draggingNode.parent.children.indexOf(draggingNode);
if (index > -1) {
draggingNode.parent.children.splice(index, 1);
}
if (typeof selectedNode.children !== 'undefined' || typeof selectedNode._children !== 'undefined') {
if (typeof selectedNode.children !== 'undefined') {
selectedNode.children.push(draggingNode);
} else {
selectedNode._children.push(draggingNode);
}
} else {
selectedNode.children = [];
selectedNode.children.push(draggingNode);
}
// Make sure that the node being added to is expanded so user can see added node is correctly moved
expand(selectedNode);
sortTree();
endDrag();
} else {
endDrag();
}
});
function endDrag() {
selectedNode = null;
d3.selectAll('.ghostCircle').attr('class', 'ghostCircle');
d3.select(domNode).attr('class', 'node');
// now restore the mouseover event or we won't be able to drag a 2nd time
d3.select(domNode).select('.ghostCircle').attr('pointer-events', '');
updateTempConnector();
if (draggingNode !== null) {
update(root);
centerNode(draggingNode);
draggingNode = null;
}
}
// Helper functions for collapsing and expanding nodes.
function collapse(d) {
if (d.children) {
d._children = d.children;
d._children.forEach(collapse);
d.children = null;
}
}
function expand(d) {
if (d._children) {
d.children = d._children;
d.children.forEach(expand);
d._children = null;
}
}
var overCircle = function(d) {
selectedNode = d;
updateTempConnector();
};
var outCircle = function(d) {
selectedNode = null;
updateTempConnector();
};
// Function to update the temporary connector indicating dragging affiliation
var updateTempConnector = function() {
var data = [];
if (draggingNode !== null && selectedNode !== null) {
// have to flip the source coordinates since we did this for the existing connectors on the original tree
data = [{
source: {
x: selectedNode.y0,
y: selectedNode.x0
},
target: {
x: draggingNode.y0,
y: draggingNode.x0
}
}];
}
var link = svgGroup.selectAll(".templink").data(data);
link.enter().append("path")
.attr("class", "templink")
.attr("d", d3.svg.diagonal())
.attr('pointer-events', 'none');
link.attr("d", d3.svg.diagonal());
link.exit().remove();
};
// Function to center node when clicked/dropped so node doesn't get lost when collapsing/moving with large amount of children.
function centerNode(source) {
scale = zoomListener.scale();
x = -source.y0;
y = -source.x0;
x = x * scale + viewerWidth / 2;
y = y * scale + viewerHeight / 2;
d3.select('g').transition()
.duration(duration)
.attr("transform", "translate(" + x + "," + y + ")scale(" + scale + ")");
zoomListener.scale(scale);
zoomListener.translate([x, y]);
}
// Toggle children function
function toggleChildren(d) {
if (d.children) {
d._children = d.children;
d.children = null;
} else if (d._children) {
d.children = d._children;
d._children = null;
}
return d;
}
// Toggle children on click.
function click(d) {
if (d3.event.defaultPrevented) return; // click suppressed
d = toggleChildren(d);
update(d);
centerNode(d);
}
function update(source) {
// Compute the new height, function counts total children of root node and sets tree height accordingly.
// This prevents the layout looking squashed when new nodes are made visible or looking sparse when nodes are removed
// This makes the layout more consistent.
var levelWidth = [1];
var childCount = function(level, n) {
if (n.children && n.children.length > 0) {
if (levelWidth.length <= level + 1) levelWidth.push(0);
levelWidth[level + 1] += n.children.length;
n.children.forEach(function(d) {
childCount(level + 1, d);
});
}
};
childCount(0, root);
//var newHeight = d3.max(levelWidth) * 25; // 25 pixels per line
var newHeight = d3.max(levelWidth) * VERT_DIST_PER_LEVEL; // 25 pixels per line
tree = tree.size([newHeight, viewerWidth]);
// Compute the new tree layout.
//var nodes = tree.nodes(root).reverse();
var nodes = tree.nodes(root);
var links = tree.links(nodes);
// Set widths between levels based on maxLabelLength.
nodes.forEach(function(d) {
//d.y = (d.depth * (maxLabelLength * 10)); //maxLabelLength * 10px
// alternatively to keep a fixed scale one can set a fixed depth per level
// Normalize for fixed-depth by commenting out below line
//d.y = (d.depth * 500); //500px per level.
d.y = (d.depth * HOR_DIST_PER_LEVEL); //500px per level.
});
// Update the nodes…
node = svgGroup.selectAll("g.node")
.data(nodes, function(d) {
return d.id || (d.id = ++i);
});
// Enter any new nodes at the parent's previous position.
var nodeEnter = node.enter().append("g")
// .call(dragListener)
.attr("class", "node")
.attr("transform", function(d) {
return "translate(" + source.y0 + "," + source.x0 + ")";
})
.on('click', click)
.on("mouseover", function(d) { node_onMouseOver(d); })
.on("mouseout", function(d) { // when the mouse leaves a circle, do the following
toolTip.transition()// declare the transition properties to fade-out the div
.duration(500) // it shall take 500ms
.style("opacity", "0"); // and go all the way to an opacity of nil
});
nodeEnter.append("circle")
.attr('class', 'nodeCircle')
.attr("r", 0)
.style("fill", function(d) {
return d._children ? "lightsteelblue" : "#fff";
});
nodeEnter.append("text")
.attr("x", function(d) {
return d.children || d._children ? -10 : 10;
})
.attr("dy", ".35em")
.attr('class', 'nodeText')
.attr("text-anchor", function(d) {
return d.children || d._children ? "end" : "start";
})
.text(function(d) {
return d.name;
})
.style("fill-opacity", 0);
/*
// phantom node to give us mouseover in a radius around it
nodeEnter.append("circle")
.attr('class', 'ghostCircle')
.attr("r", 30)
.attr("opacity", 0.2) // change this to zero to hide the target area
.style("fill", "red")
.attr('pointer-events', 'mouseover')
.on("mouseover", function(node) {
overCircle(node);
})
.on("mouseout", function(node) {
outCircle(node);
});
*/
// Update the text to reflect whether node has children or not.
node.select('text')
.attr("x", function(d) {
var radius = computeNodeRadius(d);
return d.children || d._children ? (-radius - 5) : (radius + 5);
})
.attr("text-anchor", function(d) {
return d.children || d._children ? "end" : "start";
})
.text(function(d) {
if((!(d.children || d._children)) && d.citation)
return d.citation_abbreviation;
else
return d.name;
//return d.children || d._children ? d.name : d.citation_abbreviation;
});
// Change the circle fill depending on whether it has children and is collapsed
node.select("circle.nodeCircle")
.attr("r", function(d) { return computeNodeRadius(d);} )
.style("fill", function(d) {
return d._children ? "lightsteelblue" : "#fff";
});
// Transition nodes to their new position.
var nodeUpdate = node.transition()
.duration(duration)
.attr("transform", function(d) {
return "translate(" + d.y + "," + d.x + ")";
});
// Fade the text in
nodeUpdate.select("text")
.style("fill-opacity", 1);
// Transition exiting nodes to the parent's new position.
var nodeExit = node.exit().transition()
.duration(duration)
.attr("transform", function(d) {
return "translate(" + source.y + "," + source.x + ")";
})
.remove();
nodeExit.select("circle")
.attr("r", 0);
nodeExit.select("text")
.style("fill-opacity", 0);
// Update the links…
var link = svgGroup.selectAll("path.link")
.data(links, function(d) {
return d.target.id;
});
// Enter any new links at the parent's previous position.
link.enter().insert("path", "g")
.attr("class", function(d) {
return "link";
/*
*/
})
.attr("d", function(d) {
var o = {
x: source.x0,
y: source.y0
};
return diagonal({
source: o,
target: o
});
})
.style("stroke-width", function (d,i) {
return computeNodeRadius(d.target) * 2;
})
.style("stroke-opacity", function(d){
var ret = (1-((d.source.depth+1)/8))
//if (d.target[spendField] <= 0) ret=0;
return ret;
})
.style("stroke", function (d) {
if(d.target.citation) // if we have a paper
return "blue";
else return "orange";
})
// Transition links to their new position.
link.transition()
.duration(duration)
.attr("d", diagonal);
// Transition exiting nodes to the parent's new position.
link.exit().transition()
.duration(duration)
.attr("d", function(d) {
var o = {
x: source.x,
y: source.y
};
return diagonal({
source: o,
target: o
});
})
.remove();
// Stash the old positions for transition.
nodes.forEach(function(d) {
d.x0 = d.x;
d.y0 = d.y;
});
// the area of the circle should be proportional to the
// number of leaves
// A = pi * r*r
// r = sqrt(A/pi)
function computeNodeRadius(d) {
if(d.totalNumLeaves) {
//console.log(d.totalNumLeaves);
return (Math.sqrt((MIN_NODE_AREA * (d.totalNumLeaves+1)) / Math.PI))
}
return MIN_NODE_RADIUS;
}
function node_onMouseOver(d) {
toolTip.transition()
.duration(200)
.style("opacity", ".9");
header.text(d["citation_abbreviation"]);
if(d.citation)
{
toolTipText.text(d["citation"]);
} else { // show how many leaves the node has
if(d["totalNumLeaves"])
toolTipText.text("Number of papers in category: " + d["totalNumLeaves"]);
else
toolTipText.text("Number of papers in category: 0");
}
toolTip.style("left", (d3.event.pageX+15) + "px")
.style("top", (d3.event.pageY-75) + "px");
}
}
// Append a group which holds all nodes and which the zoom Listener can act upon.
var svgGroup = baseSvg.append("g");
// Define the root
root = treeData;
root.x0 = viewerHeight / 2;
root.y0 = 0;
// Layout the tree initially and center on the root node.
update(root);
centerNode(root);
});
<!DOCTYPE html>
<meta charset="utf-8">
<style type="text/css">
.node {
cursor: pointer;
}
.overlay{
background-color:#EEE;
}
.node circle {
fill: #fff;
stroke: orange;
stroke-width: 2px;
}
.node text {
font-size:24px;
font-family:sans-serif;
}
.link {
fill: none;
stroke: orange;
stroke-width: 1.5px;
}
.innerLink {
fill: none;
stroke: orange;
stroke-width: 1.5px;
}
.citationLink {
fill: none;
stroke: blue;
stroke-width: 1.5px;
}
.templink {
fill: none;
stroke: red;
stroke-width: 3px;
}
.ghostCircle.show{
display:block;
}
.ghostCircle, .activeDrag .ghostCircle{
display: none;
}
div.tooltip {
position: absolute; /* reference for measurement */
text-align: left;
pointer-events: none; /* 'none' tells the mouse to ignore the rectangle */
background: #FFFFEF;
width: 400px;
height: 165px;
padding: 10px;
border: 1px solid #D5D5D5;
font-family: arial,helvetica,sans-serif;
position: absolute;
font-size: 0.9em;
color: #333;
padding: 10px;
border-radius: 3px;
background: rgba(255,255,255,0.9);
color: #000;
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
/* -moz-box-shadow: 0 1px 5px rgba(0,0,0,0.4); */
border:1px solid rgba(200,200,200,0.85);
}
div.tooltipTail {
position: absolute;
left:-7px;
top: 72px;
width: 7px;
height: 13px;
background: url("images/tail_white.png") 50% 0%;
}
div.toolTipBody {
position:absolute;
height:100px;
width:230px;
}
div.header {
text-transform: uppercase;
text-align: left;
font-size: 14px;
margin-bottom: 2px;
color:#666;
text-align:center;
}
</style>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://d3js.org/d3.v3.min.js"></script>
<body>
<div id="toolTip" class="tooltip" style="opacity:0;">
<div id="head" class="header"></div>
<div style="position:absolute; left:10px">
<div id="federalDiv" style="width:385px; left:0px; top:10px; position: absolute;" class="selected">
<div id="toolTipText" class="header4"></div>
</div>
</div>
<div class="tooltipTail"></div>
</div>
<div id="tree-container"></div>
<script src="dndTree.js"></script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment