Skip to content

Used to map out pathways and lay out areas of a map for path finding

License

Notifications You must be signed in to change notification settings

benzap/mappt-editor

Repository files navigation

Mappt Editor Readme

d#+AUTHOR: Benjamin Zaporzan

Introduction

Mappt is an application to build maps with intelligent routing capabilitites

Programming Tasks

mappt backend [0%]

  • [ ] Begin work on the design
  • [ ] Decide on a database schema

Mappt Specification [%]

  • [ ] Develop JSON Sample specification

mappt web frontend [%]

  • [ ] Develop Design for frontend application

libmappt

Mappt Specification

Definitions

Mappt

name
The name of our current map that we’d like to traverse. ex. “Ohio Regional Hospital” if we were developing a layout for that particular hospital
maps
a dictionary list consisting of all of the maps that make up the current application.
name
The name of the particular map within the set of maps
description
a unique description describing info about this map. ex. First floor of shuniah building
mapid
A GUID to uniquely identify this map
points
Traversal points to represent within Map Units.
pointid
A GUID to uniquely identify this point
x
the x dimension for the given point
y
the y dimension for the given point
z
the z dimension for the given point
images
maps consist of images.
ref
A reference to the location of the given file. Supported formats have not been determined
scale
The scale of the given image in order to determine it’s representation in Map Units.
position
The position of the image relative to the dimensions of the map.
rotation
the rotation of the given image relative to the map. Expressed in quaternions.
dimensions
The dimensions of the given map. This determines how many units the map makes up in Map Units.
links
links make up the connections between points in the given map. It forms a relation between them.
first
Guid representing the first point
second
Guid representing the second point
entrances
the relationship between two points between any two given maps. They can be thought of as ‘global’ links
first
Guid representing the first point
second
Guid representing the second point

Json Sample

mappt : {
    name : ":String",
    maps : [{
        name : ":String",
        description : ":String",
        mapid : ":Guid",
        points : [{
            pointid : ":Guid",
            x : ":Float",
            y : ":Float",
            z : ":Float",
            tags : {
                ":String" : ":Any",
                    ...
            },
        }],
        images : [{
            ref : ":FileUri",
            scale : [:Float, :Float, :Float],
            position : [:Float, :Float, :Float],
            rotation : [:Float, :Float, :Float, :Float],
            
        }],
        dimensions : [:Float, :Float, :Float],
        links : [{
            first : ":Guid",
            second : ":Guid",
        }],
    }],
    entrances : [{
        first : ":Guid",
        second : ":Guid",
    }],    
}

XML Sample

<mappt>
  <name>Example</name>
  <maps>
    <map mapid="0000-0000-0000-0000">
      <name>Map Name</name>
      <description>Here is a description</description>
      <points>
        <point pointid="0000-0000-0000-0000">
          <position x="0.0" y="0.0" z="0.0"></position>
          <tags>
            <tag key="someKey" value="someValue"></tag>
          </tags>
        </point>
      </points>
      <images>
        <image ref="./somefile">
          <scale x="0.0" y="0.0" z="0.0"></scale>
          <position x="0.0" y="0.0" z="0.0"></position>
          <rotation i="0.0" j="0.0" z="0.0" w="0.0"></rotation>
        </image>
      </images>
      <dimensions>
        <position x="0.0" y="0.0" z="0.0"></position>
      </dimensions>
      <links>
        <link first="0000-0000-0000-0000" second="0000-0000-0000-0000"></link>
      </links>
    </map>
  </maps>
  <entrances>
    <entrance first="0000-0000-0000-0000" second="0000-0000-0000-0000"></entrance>
  </entrances>
</mappt>

Gui Application

Notes

  • using clojure, should I use clojurescript for the frontend, or stick to javascript?

Programming Tasks

Develop the base project.clj file

  • make sure that the development environment is painless to work with. Who wants to spend hours working in an environment that is annoying to work in?

Canvas Protocol

Need a protocol for manipulating the canvas. The main advantage to doing it this way, is to separate out drawing logic from the data

draw map

About

Used to map out pathways and lay out areas of a map for path finding

Resources

License

Stars

Watchers

Forks

Packages

No packages published