mirror of
https://github.com/mapmapteam/mapmap.git
synced 2026-06-16 12:33:19 +02:00
Merge branch 'develop' of github.com:mapmapteam/mapmap into develop
Conflicts: Paint.cpp
This commit is contained in:
@@ -31,7 +31,7 @@ PROJECT_NAME = "MapMap"
|
||||
# This could be handy for archiving the generated documentation or
|
||||
# if some version control system is used.
|
||||
|
||||
PROJECT_NUMBER = "0.0.1"
|
||||
PROJECT_NUMBER = "0.1.1"
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
||||
# base path where the generated documentation will be put.
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
Contribute to MapMap
|
||||
====================
|
||||
|
||||
Build software, doc and the translations
|
||||
----------------------------------------
|
||||
See INSTALL.
|
||||
|
||||
Coding style
|
||||
------------
|
||||
* indent with 2 spaces
|
||||
@@ -19,6 +23,8 @@ We use Semantic Versioning 2.0.0. Given a version number MAJOR.MINOR.PATCH, incr
|
||||
* PATCH version when you make backwards-compatible bug fixes.
|
||||
See http://semver.org/
|
||||
|
||||
We want the 0 series to be backward-compatible. That means that a project created with MapMap 0.1 should still work with MapMap 0.99, if we ever get to such a version number. When we will break this backward-compatibilty, we will start the 1 series and provide a migration script. This script might be ran from the command-line or on the Web. The other thing we need to be backward-compatible is the OSC interface. The rest of the software can change. This includes the names of the menu items and the appearance of the user interface. We will try to keep these consistent, though.
|
||||
|
||||
Files
|
||||
-----
|
||||
* BUGS: List of bugs to fix. (or, again, use github for these)
|
||||
@@ -30,3 +36,41 @@ Files
|
||||
* images/: Images part of the GUI.
|
||||
* prototypes/ : Contains prototypes. Please ask the project maintainer before removing some of these.
|
||||
|
||||
Code management with Git
|
||||
------------------------
|
||||
* We develop in the develop branch. The master branch is only for the latest tag.
|
||||
* Create a branch for each new features. Merge it to develop.
|
||||
* Create release-x.y.z branch for releases.
|
||||
* If possible, avoid merges, and use git rebase instead. (like in the GNOME projects)
|
||||
* Create a x.y branch for each x.y major.minor version series.
|
||||
* For a new release, merge develop to master (or your branch to the major.minor branch if it's a bugfix release) and then tag it there.
|
||||
* In doubt, ask the release manager.
|
||||
|
||||
Make a release
|
||||
--------------
|
||||
* If it's a new feature, increment minor. If it's bugfix, increment micro. If it's not backward-compatible, increment major.
|
||||
* Create a release-x.y.z branch
|
||||
* Verify the version number:
|
||||
* VERSION in mapmap.pro
|
||||
* PROJECT_NUMBER in Doxyfile
|
||||
* MAPMAP_VERSION in MainWindow.h
|
||||
* MAPMAP_VERSION in sh_make_tarball.sh (until we fixe the tarball target in .pro)
|
||||
* Edit NEWS
|
||||
* run make
|
||||
* run ./sh_build_doc.sh
|
||||
* merge to master, or to the major.minor branch
|
||||
* run ./sh_make_tarball.sh
|
||||
* then untar it, cd to that dir and build the whole thing to see if it works
|
||||
* git tag x.y.z
|
||||
* go back to your release branch
|
||||
* increment micro (or minor) version number in the files above.
|
||||
* merge into develop.
|
||||
* keep developing.
|
||||
|
||||
XML file version number
|
||||
-----------------------
|
||||
* update its minor number when you introduce new features.
|
||||
* update its major number when it's not backward-comptatible anymore with its previous versions
|
||||
* generally, we should follow the MapMap version, when new changes are introduced. (no need to increment it otherwise)
|
||||
* we will need to implement some fancy XML file version number checking in the future.
|
||||
|
||||
|
||||
@@ -13,6 +13,11 @@ Dependencies:
|
||||
* liblo
|
||||
* gstreamer-0.10
|
||||
|
||||
Non-mandatory:
|
||||
|
||||
* doxygen
|
||||
* graphviz
|
||||
|
||||
Build it::
|
||||
|
||||
./build.sh
|
||||
@@ -29,6 +34,7 @@ Do this::
|
||||
For extras::
|
||||
|
||||
sudo apt-get install -y \
|
||||
graphviz \
|
||||
doxygen
|
||||
|
||||
To edit translations
|
||||
|
||||
+2
-2
@@ -40,8 +40,8 @@
|
||||
#include "qttreepropertybrowser.h"
|
||||
#include "qtgroupboxpropertybrowser.h"
|
||||
|
||||
#define MAPMAP_VERSION "0.0.9"
|
||||
#define MAPMAP_EXTENSION "mpm"
|
||||
#define MAPMAP_VERSION "0.1.1"
|
||||
#define MAPMAP_EXTENSION "mmp"
|
||||
|
||||
/**
|
||||
* This is the main window of MapMap. It acts as both a view and a controller interface.
|
||||
|
||||
@@ -18,20 +18,17 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef MAPPING_H_
|
||||
#define MAPPING_H_
|
||||
|
||||
#include <QtGlobal>
|
||||
#include <tr1/memory>
|
||||
|
||||
#include "Shape.h"
|
||||
#include "Paint.h"
|
||||
|
||||
#include "UidAllocator.h"
|
||||
|
||||
/**
|
||||
* Mapping is the central concept of Libremapping.
|
||||
* Mapping is the central concept of this software.
|
||||
*
|
||||
* A Mapping represents a relationship between an input Paint and
|
||||
* and output Shape where the paint (possibly modified by some other
|
||||
|
||||
+1
-1
@@ -431,7 +431,7 @@ bool MediaImpl::runVideo() {
|
||||
}
|
||||
|
||||
_videoNewBufferCounter--;
|
||||
std::cout << "VideoImpl::runVideo: read frame #" << _videoNewBufferCounter << std::endl;
|
||||
//std::cout << "VideoImpl::runVideo: read frame #" << _videoNewBufferCounter << std::endl;
|
||||
}
|
||||
|
||||
_postRun();
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
Release notes for MapMap
|
||||
========================
|
||||
|
||||
2014-04-30 - MapMap 0.1.0
|
||||
-------------------------
|
||||
* Initial release.
|
||||
* Qt user interface.
|
||||
* Video mapping with GStreamer.
|
||||
* Quad, meshes, triangles, circles.
|
||||
* Color paint.
|
||||
* Fullscreen output window.
|
||||
* MMP project XML file format version 0.1.
|
||||
|
||||
|
||||
@@ -4,21 +4,21 @@ MapMap OSC Interface
|
||||
API Reference
|
||||
-------------
|
||||
|
||||
/texture/uri
|
||||
/mapmap/paint/media/load
|
||||
~~~~~~~~~~~~
|
||||
Change a media URI::
|
||||
|
||||
/texture/uri ,is <paintId> <URI>
|
||||
/mapmap/paint/media/load ,is <paintId> <path>
|
||||
|
||||
URI: Path to a file. (WARNING: we will change this API soon.
|
||||
paintID: A number. Usually 0, or 1 or 2... depending on how many paints you have in your project.
|
||||
path: Path to a file.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
Change a media URI::
|
||||
Change a media path::
|
||||
|
||||
osc-send osc.udp://localhost:12345 /texture/uri ,is 0 ~/Videos/clips_finaux_ok/lys_flou_net.mov
|
||||
osc-send osc.udp://localhost:12345 /mapmap/paint/media/load ,is 0 ~/Videos/clips_finaux_ok/lys_flou_net.mov
|
||||
|
||||
See also
|
||||
--------
|
||||
|
||||
+2
-3
@@ -211,12 +211,11 @@ void OscInterface::applyOscCommand(MainWindow &main_window, QVariantList & comma
|
||||
std::string typetags = command.at(1).toString().toStdString();
|
||||
|
||||
// Handle all OSC messages here
|
||||
if (path == "/texture/uri" && typetags == "is")
|
||||
if (path == "/mapmap/paint/media/load" && typetags == "is")
|
||||
{
|
||||
int paint_id = command.at(2).toInt();
|
||||
std::string image_uri = command.at(3).toString().toStdString();
|
||||
//std::cout << "TODO load /image/uri " << image_id << " " << image_uri << std::endl;
|
||||
// TODO:
|
||||
//std::cout << "load /mapmap/paint/media/load " << paint_id << " " << image_uri << std::endl;
|
||||
main_window.setTextureUri(paint_id, image_uri);
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -41,8 +41,10 @@ bool ProjectReader::readFile(QIODevice *device)
|
||||
}
|
||||
|
||||
QDomElement root = doc.documentElement();
|
||||
if (root.tagName() != "project" || root.attribute("version") != "1.0") {
|
||||
_xml.raiseError(QObject::tr("The file is not a mapmap version 1.0 file."));
|
||||
// The handling of the version number will get fancier as we go.
|
||||
if (root.tagName() != "project" || root.attribute("version") != "0.1")
|
||||
{
|
||||
_xml.raiseError(QObject::tr("The file is not a mapmap version 0.1 file."));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ bool ProjectWriter::writeFile(QIODevice *device)
|
||||
_xml.writeStartDocument();
|
||||
_xml.writeDTD("<!DOCTYPE mapmap>");
|
||||
_xml.writeStartElement("project");
|
||||
_xml.writeAttribute("version", "1.0");
|
||||
_xml.writeAttribute("version", "0.1"); // Similar to pkg-config version numbers.
|
||||
|
||||
_xml.writeStartElement("paints");
|
||||
for (int i = 0; i < _manager->nPaints(); i++)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
MapMap
|
||||
============
|
||||
|
||||
======
|
||||
MapMap is a free video mapping software.
|
||||
|
||||
Projection mapping, also known as video mapping and spatial augmented reality,
|
||||
@@ -27,19 +26,22 @@ Build and install
|
||||
-----------------
|
||||
See the INSTALL file.
|
||||
|
||||
On Mac OS X, you need GStreamer: http://cdn.gstreamer.com/osx/universal/gstreamer-sdk-2013.6-universal.pkg
|
||||
To use this software on Mac OS X:
|
||||
* Install Qt5. You can get it from http://qt-project.org/downloads and choose the default location.
|
||||
* Install the GStreamer SDK Runtime files from http://docs.gstreamer.com/display/GstSDK/Installing+on+Mac+OS+X
|
||||
|
||||
Authors
|
||||
-------
|
||||
* Alexandre Quessy
|
||||
* Sofian Audry
|
||||
* Mike Latona
|
||||
* Vasilis Liaskovitis
|
||||
* Alexandre Quessy: release manager, developer, technical writer, project manager.
|
||||
* Sofian Audry: lead developer, user interface designer, project manager.
|
||||
|
||||
Contributors
|
||||
------------
|
||||
* Christian Ambaud
|
||||
* Maxime Damecour
|
||||
* Julien Keable
|
||||
* Sylvain Cormier
|
||||
* Mike Latona: user interface designer.
|
||||
* Vasilis Liaskovitis: developer.
|
||||
* Maxime Damecour: inspiration.
|
||||
* Christian Ambaud: sponsor, inspiration.
|
||||
* Louis Desjardins: project manager.
|
||||
* Julien Keable: developer.
|
||||
* Sylvain Cormier: developer.
|
||||
|
||||
|
||||
@@ -1,6 +1,27 @@
|
||||
To do in MapMap
|
||||
===============
|
||||
|
||||
TODO before 0.2.0
|
||||
-----------------
|
||||
* change xy position to integers?
|
||||
* "avec le soutien de l'Organisation internationale de la Francophonie", with the logo.
|
||||
* integration des icones de mike
|
||||
* shmsrc???? non... on a plutot autre chose.. c'est a dire, plus de formes.
|
||||
* traduction complete. multilinguisme fonctionnel.
|
||||
* video upside-down fixed
|
||||
* manuel de base, bilingue. (en HTML dans le Contents?)
|
||||
* save media URI when it's changed via OSC
|
||||
* remove name? (and re-add it soon)
|
||||
* allow the user to change the OSC port number user a menu item and a dialog.
|
||||
* be able to change the media source
|
||||
* is it really the closest vertex that is dragged?
|
||||
* how come paint quads don't have a dimension?
|
||||
* create more number boxes for points when we change the dimension of a quad texture mapping.
|
||||
* Be able to cancel a change when moving around a mapping.
|
||||
* Be able to change the color of a color paint.
|
||||
* Be able to undo deleting a mapping, and a paint.
|
||||
* implement name : dans l'inspecteur
|
||||
|
||||
Code
|
||||
----
|
||||
|
||||
@@ -64,9 +85,9 @@ You should make sure to block all incoming messages on that port if you don't wa
|
||||
/mapmap/project/load ,s <file>
|
||||
/mapmap/project/save ,s <file>
|
||||
/mapmap/paint/color/rgba ,iffff <paint identifier> <red> <green> <blue> <alpha> (each channel within [0,1])
|
||||
/mapmap/paint/texture/load ,is <paint identifier> <file>
|
||||
/mapmap/paint/texture/speed ,if <paint identifier> <speed ratio> (1.0 means 100% speed)
|
||||
/mapmap/paint/texture/seek ,il <paint identifier> <time position> (in milliseconds)
|
||||
/mapmap/paint/media/load ,is <paint identifier> <file>
|
||||
/mapmap/paint/media/speed ,if <paint identifier> <speed ratio> (1.0 means 100% speed)
|
||||
/mapmap/paint/media/seek ,il <paint identifier> <time position> (in milliseconds)
|
||||
/mapmap/output/fullscreen ,i <enable>
|
||||
/mapmap/output/size ,ii <width> <height>
|
||||
/mapmap/output/position ,ii <x> <y>
|
||||
|
||||
@@ -5,6 +5,20 @@
|
||||
#include <QtGui>
|
||||
#include "MainWindow.h"
|
||||
#include "MainApplication.h"
|
||||
#include <stdlib.h>
|
||||
#include <iostream>
|
||||
|
||||
static void set_env_vars_if_needed()
|
||||
{
|
||||
#ifdef __MACOSX_CORE__
|
||||
std::cout << "OS X detected. Set environment for GStreamer-SDK support." << std::endl;
|
||||
if (0 == setenv("GST_PLUGIN_PATH", "/Library/Frameworks/GStreamer.framework/Libraries", 1))
|
||||
std::cout << " * GST_PLUGIN_PATH=Library/Frameworks/GStreamer.framework/Libraries" << std::endl;
|
||||
if (0 == setenv("GST_DEBUG", "2", 1))
|
||||
std::cout << " * GST_DEBUG=2" << std::endl;
|
||||
//setenv("LANG", "C", 1);
|
||||
#endif // __MACOSX_CORE__
|
||||
}
|
||||
|
||||
// This class is just used to provide sleep functionalities in the main() method.
|
||||
class I : public QThread
|
||||
@@ -23,7 +37,8 @@ public:
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// TODO: avoid segfaults when OSC port is busy
|
||||
set_env_vars_if_needed();
|
||||
|
||||
MainApplication app(argc, argv);
|
||||
|
||||
if (!QGLFormat::hasOpenGL())
|
||||
|
||||
+20
-2
@@ -1,5 +1,6 @@
|
||||
CONFIG += qt debug
|
||||
TEMPLATE = app
|
||||
VERSION = 0.1.1
|
||||
TARGET = mapmap
|
||||
QT += gui opengl xml
|
||||
CONFIG += qt debug
|
||||
@@ -15,7 +16,6 @@ HEADERS = \
|
||||
MappingManager.h \
|
||||
Maths.h \
|
||||
MediaImpl.h \
|
||||
Paint.h \
|
||||
OscInterface.h \
|
||||
OscReceiver.h \
|
||||
OutputGLWindow.h \
|
||||
@@ -29,8 +29,8 @@ HEADERS = \
|
||||
|
||||
SOURCES = \
|
||||
DestinationGLCanvas.cpp \
|
||||
MainWindow.cpp \
|
||||
MainApplication.cpp \
|
||||
MainWindow.cpp \
|
||||
Mapper.cpp \
|
||||
MapperGLCanvas.cpp \
|
||||
Mapping.cpp \
|
||||
@@ -52,6 +52,8 @@ QT += gui opengl xml
|
||||
RESOURCES = mapmap.qrc
|
||||
TRANSLATIONS = mapmap_fr.ts
|
||||
include(contrib/qtpropertybrowser/src/qtpropertybrowser.pri)
|
||||
|
||||
# Add the docs target:
|
||||
docs.depends = $(HEADERS) $(SOURCES)
|
||||
docs.commands = (cat Doxyfile; echo "INPUT = $?") | doxygen -
|
||||
QMAKE_EXTRA_TARGETS += docs
|
||||
@@ -92,6 +94,7 @@ unix:!mac {
|
||||
|
||||
# Mac OS X-specific:
|
||||
mac {
|
||||
TARGET = MapMap
|
||||
DEFINES += MACOSX
|
||||
# INCLUDEPATH += \
|
||||
# /opt/local/include/ \
|
||||
@@ -142,3 +145,18 @@ win32 {
|
||||
CONFIG += console
|
||||
}
|
||||
|
||||
# Adds the tarball target
|
||||
tarball.target = mapmap-$${VERSION}.tar.gz
|
||||
tarball.commands = git archive --format=tar.gz -9 --prefix=mapmap-$${VERSION}/ --output=mapmap-$${VERSION}.tar.gz HEAD
|
||||
tarball.depends = .git
|
||||
QMAKE_EXTRA_TARGETS += tarball
|
||||
|
||||
# Show various messages
|
||||
message("MapMap version: $${VERSION}")
|
||||
# message("Qt version: $$[QT_VERSION]")
|
||||
# message("LIBS: $${LIBS}")
|
||||
# message("PKGCONFIG: $${PKGCONFIG}")
|
||||
# message("The project contains the following files: $${SOURCES} $${HEADERS}}")
|
||||
# message("To create a tarball, run `make tarball`")
|
||||
# message("To build the documentation, run `make docs`")
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
set -o verbose
|
||||
#export GST_PLUGIN_PATH=/Library/Frameworks/GStreamer.framework/Libraries
|
||||
export LANG=C
|
||||
export GST_DEBUG=3
|
||||
FILEPATH=/Users/aalex/Desktop/mapmap-videos/BonneFete.mov
|
||||
#FILEPATH=/Users/aalex/Downloads/sintel_trailer-480p.ogv
|
||||
# export GST_DEBUG=3
|
||||
#FILEPATH=/Users/aalex/Desktop/mapmap-videos/BonneFete.mov
|
||||
FILEPATH=/Users/aalex/Downloads/sintel_trailer-480p.ogv
|
||||
|
||||
gst-launch-0.10 uridecodebin uri=file://${FILEPATH} ! ffmpegcolorspace ! autovideosink
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
#export GST_PLUGIN_PATH=/Library/Frameworks/GStreamer.framework/Libraries
|
||||
#export GST_DEBUG=2
|
||||
export LANG=C
|
||||
./mapmap.app/Contents/MacOS/mapmap
|
||||
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
MAPMAP_VERSION=0.1.1
|
||||
|
||||
git archive --format=tar.gz -9 --prefix=mapmap-${MAPMAP_VERSION}/ --output=mapmap-${MAPMAP_VERSION}.tar.gz HEAD
|
||||
|
||||
Reference in New Issue
Block a user