diff --git a/include/cinder/Timeline.h b/include/cinder/Timeline.h index a55c5571b1..50e9b7808e 100644 --- a/include/cinder/Timeline.h +++ b/include/cinder/Timeline.h @@ -150,9 +150,10 @@ class CI_API Timeline : public TimelineItem { void insert( TimelineItemRef item ); //! adds an item to the timeline, setting its startTime to be at \a atTime. Safe to use from callback fn's. void insert( TimelineItemRef item, float atTime ) { item->mStartTime = atTime; insert( item ); } - //! Returns the number of items in the Timeline size_t getNumItems() const { return mItems.size(); } + ///! Returns all items in the Timeline + const std::multimap& getItems() { return mItems; } //! Returns true if there are no items in the Timeline bool empty() const { return mItems.empty(); } //! Returns the first item in the timeline the target of which matches \a target @@ -191,6 +192,8 @@ class CI_API Timeline : public TimelineItem { TimelineRef result = std::static_pointer_cast( thisTimelineItem ); return result; } + + //! \cond virtual void stepTo( float absoluteTime, bool /*reverse*/ ) { stepTo( absoluteTime ); } @@ -243,4 +246,4 @@ class CI_API Cue : public TimelineItem { std::function mFunction; }; -} // namespace cinder \ No newline at end of file +} // namespace cinder diff --git a/samples/_timeline/TimelineInspection/include/Resources.h b/samples/_timeline/TimelineInspection/include/Resources.h new file mode 100644 index 0000000000..a203e762d2 --- /dev/null +++ b/samples/_timeline/TimelineInspection/include/Resources.h @@ -0,0 +1,9 @@ +#pragma once +#include "cinder/CinderResources.h" + +//#define RES_MY_RES CINDER_RESOURCE( ../resources/, image_name.png, 128, IMAGE ) + + + + + diff --git a/samples/_timeline/TimelineInspection/resources/CinderApp.icns b/samples/_timeline/TimelineInspection/resources/CinderApp.icns new file mode 100644 index 0000000000..e3f05c8962 Binary files /dev/null and b/samples/_timeline/TimelineInspection/resources/CinderApp.icns differ diff --git a/samples/_timeline/TimelineInspection/resources/cinder_app_icon.ico b/samples/_timeline/TimelineInspection/resources/cinder_app_icon.ico new file mode 100644 index 0000000000..b35fb854d8 Binary files /dev/null and b/samples/_timeline/TimelineInspection/resources/cinder_app_icon.ico differ diff --git a/samples/_timeline/TimelineInspection/src/TimelineInspectionApp.cpp b/samples/_timeline/TimelineInspection/src/TimelineInspectionApp.cpp new file mode 100644 index 0000000000..15be482f3a --- /dev/null +++ b/samples/_timeline/TimelineInspection/src/TimelineInspectionApp.cpp @@ -0,0 +1,277 @@ +#include "cinder/app/App.h" +#include "cinder/app/RendererGl.h" +#include "cinder/gl/gl.h" + +#include "cinder/params/Params.h" +#include "cinder/Rand.h" +#include "cinder/Timeline.h" + +using namespace ci; +using namespace ci::app; +using namespace std; + +class TimelineInspectionApp : public App { + public: + void setup() override; + + void mouseDown( MouseEvent event ) override; + void mouseUp( MouseEvent event ) override; + void mouseDrag( MouseEvent event ) override; + void keyUp( KeyEvent event ) override; + + void update() override; + void draw() override; + void drawTimeline(); + + void buildTimelineItems(); + + + void changeColor(); + + + TimelineRef mTimeline; + bool doTimelineUpdate = true; + + ci::Anim scale; + ci::Anim rotation; + ci::Anim position; + + + Color mColor; + +}; + +void TimelineInspectionApp::setup() +{ + + mTimeline = Timeline::create(); + mTimeline->setInfinite(false); + mTimeline->setDefaultAutoRemove(false); + + + mColor = Color(0.7, 0.1, 0.4); + + position = getWindowCenter(); + scale = 1.0f; + rotation = 0.0f; + + buildTimelineItems(); +} + +void TimelineInspectionApp::buildTimelineItems(){ + + mTimeline->apply(&scale, 3.0f, 5.0f).autoRemove(false); + mTimeline->apply(&position, vec2(30, getWindowCenter().y), 1.0f).delay(2.5f) ; + mTimeline->apply(&rotation, float(M_PI * 2) , 2.0f).delay(5.f) ; + + mTimeline->appendTo(&position, vec2(getWindowWidth() - 30, getWindowCenter().y), 5.0f).delay(5.0f); + mTimeline->appendTo(&scale, 0.5f, 3.0f).delay(4.0f); + + mTimeline->appendTo(&rotation, float(M_PI_4), 3.0f).delay(3.0f); + + + mTimeline->add([&]{ + + changeColor(); + + }, mTimeline->getDuration() * 0.5f ); +} + +void TimelineInspectionApp::changeColor(){ + + // change the overral color to something random + mColor = ColorT(CM_HSV, randFloat(0, 1), 0.75, 0.75); +} + + +void TimelineInspectionApp::mouseDown( MouseEvent event ) +{ + doTimelineUpdate = false; +} + +void TimelineInspectionApp::mouseUp(cinder::app::MouseEvent event) +{ + doTimelineUpdate = true; +} + +void TimelineInspectionApp::mouseDrag( MouseEvent event ) +{ + + float timelineWindowWidth = getWindowWidth(); + + auto screenToTimeFn = [&](float x) -> float { + float posNorm = x / timelineWindowWidth; + return posNorm * mTimeline->getDuration(); + }; + + + mTimeline->stepTo( screenToTimeFn( event.getX() ) ); + +} + +void TimelineInspectionApp::keyUp(cinder::app::KeyEvent event){ + + if( event.getChar() == 's' ){ + mTimeline->appendTo(&scale, randFloat(0.1f, 5.0f), randFloat( 0.5f, 1.0f)).delay(0.5f); + } + + + else if( event.getChar() == 'r' ){ + mTimeline->appendTo(&rotation, randFloat(0.0f, M_PI_2), randFloat( 0.5f, 1.0f)).delay(0.5f); + } + + else if( event.getChar() == 'p' ){ + + auto pos = getWindowCenter() + randVec2() * 50.f; + mTimeline->appendTo(&position, pos, randFloat( 0.5f, 1.0f)).delay(0.5f); + } + + + else if( event.getChar() == ' ' ){ + + + mTimeline->add([&]{ + + changeColor(); + + }, mTimeline->getCurrentTime() ); + + } + + +} + +void TimelineInspectionApp::update() +{ + + if( doTimelineUpdate ) + mTimeline->step(1.f/60.f); +} + +void TimelineInspectionApp::drawTimeline() +{ + + float timelineWindowHeight = 100.0f; + float timelineWindowWidth = getWindowWidth(); + + float itemHeight = 20.0f; + + + // lambda functions to transform the timeline time to a screen position + auto timeToScreenFn = [&]( float t ) -> float { + float normTime = t / mTimeline->getDuration(); + return normTime * timelineWindowWidth; + }; + + + auto items = mTimeline->getItems(); + + + //lampada function that draws a target + auto drawTimelineItemFn = [&]( void* target ){ + + auto itearator = items.equal_range( target ); + + for (std::multimap::iterator it=itearator.first; it!=itearator.second; ++it){ + + auto startPos = timeToScreenFn(it->second->getStartTime()); + auto endPos = timeToScreenFn(it->second->getEndTime()); + + Rectf r( startPos, 0, endPos, itemHeight ); + gl::drawSolidRect( r ); + } + }; + + + + { // draw Anims ( position, rotation, scale ) + gl::ScopedColor sc; + + + {// draw scale + gl::ScopedModelMatrix sm; + gl::color( Color(1.0f, 0.3, 0.35) ); + gl::translate( vec2(0, 5) ); + drawTimelineItemFn( scale.ptr() ); + + gl::drawString("scale", vec2(0,5)); + + gl::color( Color::gray(0.75) ); + gl::drawLine( vec2(0, itemHeight), vec2(timelineWindowWidth, itemHeight ) ); + } + + + // draw rotation + { + gl::ScopedModelMatrix sm; + gl::color( Color(0.7f, 0.7, 0.1) ); + gl::translate( vec2(0, itemHeight + 5) ); + drawTimelineItemFn( rotation.ptr() ); + gl::drawString("rotation", vec2(0,5)); + + gl::color( Color::gray(0.75) ); + gl::drawLine( vec2(0, itemHeight), vec2(timelineWindowWidth, itemHeight ) ); + } + + {// draw Position + gl::ScopedModelMatrix sm; + gl::color( Color(0.3f, 0.3, 0.9) ); + gl::translate( vec2(0, itemHeight * 2 + 5) ); + drawTimelineItemFn( position.ptr() ); + gl::drawString("position", vec2(0,5)); + + gl::color( Color::gray(0.75) ); + gl::drawLine( vec2(0, itemHeight), vec2(timelineWindowWidth, itemHeight ) ); + } + + } + + + + {// iterate every item and draw Cues + for( auto& item : items ){ + + auto cue = dynamic_pointer_cast( item.second ); + if( cue ){ + auto pos = vec2( timeToScreenFn( cue->getStartTime() ), itemHeight * 4); + gl::drawSolidCircle( pos , 3 ); + } + } + + gl::drawString("cues: ", vec2(0, itemHeight * 3.8) ); + gl::drawLine(vec2(0, itemHeight * 4 + 10), vec2(timelineWindowWidth, itemHeight * 4 + 10) ); + } + + + + { // draw timeline cursor + + gl::ScopedColor sc( Color::white() ); + float cursorXPos = timeToScreenFn( mTimeline->getCurrentTime() ); + gl::drawLine( vec2( cursorXPos, 0.f) , vec2( cursorXPos,timelineWindowHeight ) ); + } +} + + +void TimelineInspectionApp::draw() +{ + gl::clear( Color::gray(0.4) ); + + drawTimeline(); + + + { + ci::Rectf rect( -10, -10, 10, 10 ); + + gl::ScopedColor sc( mColor ); + gl::ScopedModelMatrix sm; + + gl::translate( position() ); + gl::rotate( rotation() ); + gl::scale( vec3(scale()) ); + + gl::drawSolidRect( rect ); + } +} + +CINDER_APP( TimelineInspectionApp, RendererGl ) diff --git a/samples/_timeline/TimelineInspection/vc2015/Resources.rc b/samples/_timeline/TimelineInspection/vc2015/Resources.rc new file mode 100644 index 0000000000..3700bd6430 --- /dev/null +++ b/samples/_timeline/TimelineInspection/vc2015/Resources.rc @@ -0,0 +1,3 @@ +#include "../include/Resources.h" + +1 ICON "..\\resources\\cinder_app_icon.ico" diff --git a/samples/_timeline/TimelineInspection/vc2015/TimelineInspection.sln b/samples/_timeline/TimelineInspection/vc2015/TimelineInspection.sln new file mode 100644 index 0000000000..e54415b008 --- /dev/null +++ b/samples/_timeline/TimelineInspection/vc2015/TimelineInspection.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2015 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TimelineInspection", "TimelineInspection.vcxproj", "{677A3086-B2B8-413E-9B77-BD1C73EA131C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {677A3086-B2B8-413E-9B77-BD1C73EA131C}.Debug|Win32.ActiveCfg = Debug|Win32 + {677A3086-B2B8-413E-9B77-BD1C73EA131C}.Debug|Win32.Build.0 = Debug|Win32 + {677A3086-B2B8-413E-9B77-BD1C73EA131C}.Release|Win32.ActiveCfg = Release|Win32 + {677A3086-B2B8-413E-9B77-BD1C73EA131C}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/samples/_timeline/TimelineInspection/vc2015/TimelineInspection.vcxproj b/samples/_timeline/TimelineInspection/vc2015/TimelineInspection.vcxproj new file mode 100644 index 0000000000..db55f05a40 --- /dev/null +++ b/samples/_timeline/TimelineInspection/vc2015/TimelineInspection.vcxproj @@ -0,0 +1,118 @@ + + + + Debug + Win32 + + + Release + Win32 + + + + {677A3086-B2B8-413E-9B77-BD1C73EA131C} + TimelineInspection + Win32Proj + + + + Application + false + v140 + Unicode + false + + + Application + true + v140 + Unicode + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(ProjectDir)build\$(Platform)\$(Configuration)\ + $(ProjectDir)build\$(Platform)\$(Configuration)\intermediate\ + true + $(ProjectDir)build\$(Platform)\$(Configuration)\ + $(ProjectDir)build\$(Platform)\$(Configuration)\intermediate\ + false + + + + Disabled + ..\include;"..\..\..\..\include" + WIN32;_WIN32_WINNT=0x0601;_WINDOWS;NOMINMAX;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + true + + + "..\..\..\..\include";..\include + + + cinder.lib;OpenGL32.lib;%(AdditionalDependencies) + "..\..\..\..\lib\msw\$(PlatformTarget)";"..\..\..\..\lib\msw\$(PlatformTarget)\$(Configuration)\$(PlatformToolset)" + true + Windows + false + + MachineX86 + LIBCMT;LIBCPMT + + + + + ..\include;"..\..\..\..\include" + WIN32;_WIN32_WINNT=0x0601;_WINDOWS;NOMINMAX;NDEBUG;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + true + + + true + + + "..\..\..\..\include";..\include + + + cinder.lib;OpenGL32.lib;%(AdditionalDependencies) + "..\..\..\..\lib\msw\$(PlatformTarget)";"..\..\..\..\lib\msw\$(PlatformTarget)\$(Configuration)\$(PlatformToolset)" + false + true + Windows + true + + false + + MachineX86 + + + + + + + + + + + + + + + + diff --git a/samples/_timeline/TimelineInspection/vc2015/TimelineInspection.vcxproj.filters b/samples/_timeline/TimelineInspection/vc2015/TimelineInspection.vcxproj.filters new file mode 100644 index 0000000000..b4bfff35e8 --- /dev/null +++ b/samples/_timeline/TimelineInspection/vc2015/TimelineInspection.vcxproj.filters @@ -0,0 +1,37 @@ + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Header Files + + + + + Header Files + + + + + Resource Files + + + diff --git a/samples/_timeline/TimelineInspection/xcode/Info.plist b/samples/_timeline/TimelineInspection/xcode/Info.plist new file mode 100644 index 0000000000..838dc0d6b5 --- /dev/null +++ b/samples/_timeline/TimelineInspection/xcode/Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + CinderApp.icns + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Copyright © 2015 __MyCompanyName__. All rights reserved. + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/samples/_timeline/TimelineInspection/xcode/TimelineInspection.xcodeproj/project.pbxproj b/samples/_timeline/TimelineInspection/xcode/TimelineInspection.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..0009eaabbe --- /dev/null +++ b/samples/_timeline/TimelineInspection/xcode/TimelineInspection.xcodeproj/project.pbxproj @@ -0,0 +1,341 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 006D720419952D00008149E2 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 006D720219952D00008149E2 /* AVFoundation.framework */; }; + 006D720519952D00008149E2 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 006D720319952D00008149E2 /* CoreMedia.framework */; }; + 0091D8F90E81B9330029341E /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0091D8F80E81B9330029341E /* OpenGL.framework */; }; + 00B784B30FF439BC000DE1D7 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00B784AF0FF439BC000DE1D7 /* Accelerate.framework */; }; + 00B784B40FF439BC000DE1D7 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00B784B00FF439BC000DE1D7 /* AudioToolbox.framework */; }; + 00B784B50FF439BC000DE1D7 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00B784B10FF439BC000DE1D7 /* AudioUnit.framework */; }; + 00B784B60FF439BC000DE1D7 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00B784B20FF439BC000DE1D7 /* CoreAudio.framework */; }; + 00B9955A1B128DF400A5C623 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00B995581B128DF400A5C623 /* IOKit.framework */; }; + 00B9955B1B128DF400A5C623 /* IOSurface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00B995591B128DF400A5C623 /* IOSurface.framework */; }; + 5323E6B20EAFCA74003A9687 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5323E6B10EAFCA74003A9687 /* CoreVideo.framework */; }; + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + 3C84539A775942F8B13C8F66 /* TimelineInspection_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 7113B9B6D26D45B481C2F41F /* TimelineInspection_Prefix.pch */; }; + 40AEC2EBC0164409903873C3 /* CinderApp.icns in Resources */ = {isa = PBXBuildFile; fileRef = ECC799D6A64C46DE8A0580E5 /* CinderApp.icns */; }; + 73740BFCF1E24E5381EE1D90 /* Resources.h in Headers */ = {isa = PBXBuildFile; fileRef = 16588CB3839F4AE0835093E8 /* Resources.h */; }; + 81F5461849E94B4DB5E6371D /* TimelineInspectionApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 63143282F4FB426FAF36F498 /* TimelineInspectionApp.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 006D720219952D00008149E2 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 006D720319952D00008149E2 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + 0091D8F80E81B9330029341E /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; + 00B784AF0FF439BC000DE1D7 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 00B784B00FF439BC000DE1D7 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 00B784B10FF439BC000DE1D7 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; + 00B784B20FF439BC000DE1D7 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 00B995581B128DF400A5C623 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 00B995591B128DF400A5C623 /* IOSurface.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOSurface.framework; path = System/Library/Frameworks/IOSurface.framework; sourceTree = SDKROOT; }; + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 5323E6B10EAFCA74003A9687 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; }; + 8D1107320486CEB800E47090 /* TimelineInspection.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TimelineInspection.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 63143282F4FB426FAF36F498 /* TimelineInspectionApp.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.cpp; path = ../src/TimelineInspectionApp.cpp; sourceTree = ""; name = TimelineInspectionApp.cpp; }; + 16588CB3839F4AE0835093E8 /* Resources.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ../include/Resources.h; sourceTree = ""; name = Resources.h; }; + ECC799D6A64C46DE8A0580E5 /* CinderApp.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = ../resources/CinderApp.icns; sourceTree = ""; name = CinderApp.icns; }; + 4464CACD2FFE423C89A1B1C9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; name = Info.plist; }; + 7113B9B6D26D45B481C2F41F /* TimelineInspection_Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = "\"\""; path = TimelineInspection_Prefix.pch; sourceTree = ""; name = TimelineInspection_Prefix.pch; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 006D720419952D00008149E2 /* AVFoundation.framework in Frameworks */, + 006D720519952D00008149E2 /* CoreMedia.framework in Frameworks */, + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + 0091D8F90E81B9330029341E /* OpenGL.framework in Frameworks */, + 5323E6B20EAFCA74003A9687 /* CoreVideo.framework in Frameworks */, + 00B784B30FF439BC000DE1D7 /* Accelerate.framework in Frameworks */, + 00B784B40FF439BC000DE1D7 /* AudioToolbox.framework in Frameworks */, + 00B784B50FF439BC000DE1D7 /* AudioUnit.framework in Frameworks */, + 00B784B60FF439BC000DE1D7 /* CoreAudio.framework in Frameworks */, + 00B9955A1B128DF400A5C623 /* IOKit.framework in Frameworks */, + 00B9955B1B128DF400A5C623 /* IOSurface.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Source */ = { + isa = PBXGroup; + children = ( + 63143282F4FB426FAF36F498 /* TimelineInspectionApp.cpp */, + ); + name = Source; + sourceTree = ""; + }; + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 006D720219952D00008149E2 /* AVFoundation.framework */, + 006D720319952D00008149E2 /* CoreMedia.framework */, + 00B784AF0FF439BC000DE1D7 /* Accelerate.framework */, + 00B784B00FF439BC000DE1D7 /* AudioToolbox.framework */, + 00B784B10FF439BC000DE1D7 /* AudioUnit.framework */, + 00B784B20FF439BC000DE1D7 /* CoreAudio.framework */, + 5323E6B10EAFCA74003A9687 /* CoreVideo.framework */, + 0091D8F80E81B9330029341E /* OpenGL.framework */, + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + 00B995581B128DF400A5C623 /* IOKit.framework */, + 00B995591B128DF400A5C623 /* IOSurface.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D1107320486CEB800E47090 /* TimelineInspection.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* TimelineInspection */ = { + isa = PBXGroup; + children = ( + 01B97315FEAEA392516A2CEA /* Blocks */, + 29B97315FDCFA39411CA2CEA /* Headers */, + 080E96DDFE201D6D7F000001 /* Source */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = TimelineInspection; + sourceTree = ""; + }; + 01B97315FEAEA392516A2CEA /* Blocks */ = { + isa = PBXGroup; + children = ( + ); + name = Blocks; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Headers */ = { + isa = PBXGroup; + children = ( + 16588CB3839F4AE0835093E8 /* Resources.h */, + 7113B9B6D26D45B481C2F41F /* TimelineInspection_Prefix.pch */, + ); + name = Headers; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + ECC799D6A64C46DE8A0580E5 /* CinderApp.icns */, + 4464CACD2FFE423C89A1B1C9 /* Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* TimelineInspection */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "TimelineInspection" */; + buildPhases = ( + 8D1107290486CEB800E47090 /* Resources */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TimelineInspection; + productInstallPath = "$(HOME)/Applications"; + productName = TimelineInspection; + productReference = 8D1107320486CEB800E47090 /* TimelineInspection.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TimelineInspection" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* TimelineInspection */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D1107260486CEB800E47090 /* TimelineInspection */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 40AEC2EBC0164409903873C3 /* CinderApp.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 81F5461849E94B4DB5E6371D /* TimelineInspectionApp.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + C01FCF4B08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = TimelineInspection_Prefix.pch; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + OTHER_LDFLAGS = "\"$(CINDER_PATH)/lib/macosx/$(CONFIGURATION)/libcinder.a\""; + PRODUCT_BUNDLE_IDENTIFIER = "org.libcinder.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = TimelineInspection; + SYMROOT = ./build; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_FAST_MATH = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "NDEBUG=1", + "$(inherited)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = TimelineInspection_Prefix.pch; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + OTHER_LDFLAGS = "\"$(CINDER_PATH)/lib/macosx/$(CONFIGURATION)/libcinder.a\""; + PRODUCT_BUNDLE_IDENTIFIER = "org.libcinder.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = TimelineInspection; + STRIP_INSTALLED_PRODUCT = YES; + SYMROOT = ./build; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CINDER_PATH = "../../../.."; + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_CXX_LIBRARY = "libc++"; + ENABLE_TESTABILITY = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "\"$(CINDER_PATH)/include\""; + MACOSX_DEPLOYMENT_TARGET = 10.8; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + USER_HEADER_SEARCH_PATHS = "\"$(CINDER_PATH)/include\" ../include"; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CINDER_PATH = "../../../.."; + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "\"$(CINDER_PATH)/include\""; + MACOSX_DEPLOYMENT_TARGET = 10.8; + SDKROOT = macosx; + USER_HEADER_SEARCH_PATHS = "\"$(CINDER_PATH)/include\" ../include"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "TimelineInspection" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TimelineInspection" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/samples/_timeline/TimelineInspection/xcode/TimelineInspection_Prefix.pch b/samples/_timeline/TimelineInspection/xcode/TimelineInspection_Prefix.pch new file mode 100644 index 0000000000..226b4a63fc --- /dev/null +++ b/samples/_timeline/TimelineInspection/xcode/TimelineInspection_Prefix.pch @@ -0,0 +1,12 @@ +#if defined( __cplusplus ) + #include "cinder/Cinder.h" + + #include "cinder/app/App.h" + + #include "cinder/gl/gl.h" + + #include "cinder/CinderMath.h" + #include "cinder/Matrix.h" + #include "cinder/Vector.h" + #include "cinder/Quaternion.h" +#endif