Dhilan007
d96cc9ecb9
Merge branch 'develop' of https://github.com/cocos2d/cocos2d-x into develop
2014-03-12 10:08:57 +08:00
minggo
b2e27947a3
Merge pull request #5654 from dabingnn/develop_RenderTextureImprovement
...
Develop render texture improvement
2014-03-11 18:50:51 +08:00
Dhilan007
df12ca963e
issue #4337:label support create by font name,compatible with old labelTTF
...
1.fixed color and opacity has not yet gone into effect.
2.fixed display is not consistent with old LabelTTF when content scale factor of Director not equal to 1.
2014-03-11 18:06:14 +08:00
Dhilan007
b72d009eac
Merge branch 'develop' of https://github.com/cocos2d/cocos2d-x into develop
2014-03-11 16:16:07 +08:00
heliclei
80417f0f35
correct naming convetion
2014-03-11 15:27:28 +08:00
Dhilan007
c2ef7b8796
fix incorrect implementation of Label::getContentSize
2014-03-11 15:03:16 +08:00
Dhilan007
792e182e12
typo fix and coding style improvements.
2014-03-11 14:32:07 +08:00
heliclei
8db680b9ee
add EnumChildNodesByName, walk node tree with callback
2014-03-11 13:58:43 +08:00
minggo
2aa5c7aadd
Merge pull request #5649 from dabingnn/develop_fix_clippingNodeShaderBug
...
closed #4315 : fixed clippingNode alphaTest Bug
2014-03-10 21:45:47 +08:00
Dhilan007
11d3acd478
fixed inappropriate usage of inline.
2014-03-10 20:35:36 +08:00
Dhilan007
8bac35ae2a
closed #4337:label support create by font name,compatible with old labelTTF.
2014-03-10 19:42:43 +08:00
James Chen
63292b5ba6
Merge pull request #5544 from heliclei/node-string-tag
...
CCNode:Add String tag, to support runtime manipulation
2014-03-10 18:26:51 +08:00
heliclei
83c4d5b479
fix comments
2014-03-10 18:21:53 +08:00
Huabing.Xu
f0ae3fd4dc
Merge branch 'develop' into develop_RenderTextureImprovement
2014-03-10 18:11:55 +08:00
Huabing.Xu
e15d0a9d20
RenderTexture saveToFile will return true
2014-03-10 17:42:27 +08:00
Huabing.Xu
f8f2373c2a
closed #4315 : fixed clippingNode alphaTest Bug
2014-03-10 15:12:44 +08:00
James Chen
eca0bce1be
Merge pull request #5633 from huangml/patch-1
...
closed #4319 : Node::removeAllChildrenWithCleanup() does not remove PhysicsBody.
2014-03-10 10:55:54 +08:00
James Chen
2784955845
Merge pull request #5636 from dumganhar/iss3290-onenter-order
...
closed #3290 : The order of onEnter / onExit work correctly on JSB and LuaBindings.
2014-03-08 22:35:09 +08:00
James Chen
7aec578b35
closed #3290 : The order of onEnter works correctly on JSB and LuaBindings.
2014-03-08 22:07:55 +08:00
andyque
82fcf939d0
fix ease elastic action error
2014-03-08 21:51:17 +08:00
黄梦龙
8b737d8aab
Update CCNode.cpp
...
removeAllChildrenWithCleanup() not remove PhysicsBody
2014-03-08 17:42:35 +08:00
minggo
c291cb32a0
Merge pull request #5624 from Dhilan007/develop_label
...
label:fixed vertical alignment is incorrect.
2014-03-07 21:07:09 +08:00
James Chen
84a76db060
Merge pull request #5622 from pandamicro/MotionStreakFix
...
closed #4294 : Added unimplemented position getter/setter in MotionStreak.
2014-03-07 19:10:02 +08:00
pandamicro
2427314a65
Issue #4294 : MotionStreak: Improve position setters
2014-03-07 19:06:51 +08:00
Dhilan007
4905acfa0b
label:fixed vertical alignment is incorrect.
2014-03-07 18:31:33 +08:00
pandamicro
e94cd2357d
Issue #4294 : Add override declaration
2014-03-07 18:11:37 +08:00
Huabing.Xu
ad9c104cfd
migrate saveToFile compatible with new renderer
2014-03-07 17:41:51 +08:00
pandamicro
a005fa1dce
Issue #4294 : Add unimplemented position getter/setter in MotionStreak
2014-03-07 16:32:00 +08:00
minggo
07c0fac44f
Merge pull request #5620 from Dhilan007/develop_label
...
closed #4301:Label support vertical alignment and assign dimensions.
2014-03-07 16:12:21 +08:00
Dhilan007
ac944cd42b
fixed incorrect display when the size of label not enough to support display all text.
2014-03-07 15:58:49 +08:00
minggo
4251bcf425
Merge pull request #5469 from natural-law/issue3991
...
Add method to reload cached texture & update the nodes used the texture.
2014-03-07 15:58:17 +08:00
Dhilan007
c233b636cd
closed #4301:Label support vertical alignment and assign dimensions.
2014-03-07 14:58:44 +08:00
James Chen
9b0c0ab44e
Merge pull request #5616 from dumganhar/glview-refactor
...
Refactoring GLView for desktop platforms, and adding protected method `updateDesignResolutionSize` for GLViewProtocol class.
2014-03-07 14:15:20 +08:00
James Chen
e0e9e1723c
Merge pull request #5612 from Dhilan007/develop_label
...
fixed #4300:fixed Label:draw location and BBOX is incorrect.
2014-03-07 14:09:39 +08:00
James Chen
1cfd14f27d
Tab -> 4 spaces, remove unused spaces for CCGLView.h
2014-03-07 14:03:57 +08:00
James Chen
ae2f7a4a7d
updateDesignResolution -> updateDesignResolutionSize.
2014-03-07 14:01:30 +08:00
James Chen
d699f62193
Tab -> 4 spaces, remove unused spaces.
2014-03-07 13:59:56 +08:00
James Chen
8b359dd90e
Refactoring GLView for desktop platforms, and adding protected method `updateDesignResolutionSize` for GLViewProtocol class.
2014-03-07 13:51:12 +08:00
Dhilan007
f0119ef62f
fixed horizontal kerning is incorrect.
2014-03-07 12:03:45 +08:00
Dhilan007
063bde51c3
fixed #4300:fixed Label:draw location and BBOX is incorrect.
2014-03-07 11:42:13 +08:00
Huabing.Xu
5c1be5f2ef
Merge branch 'develop' into develop_fix_node_transform_bug
...
* develop:
Improved documentation
better doctrings
fixes for linux
small setup.py fixes
Update CHANGELOG [ci skip]
closed #4291:open CCEditBox as modal dialog
Fixes 'schedule test/issue#2268' crashes
closed #4150 : fix physics position/rotation tag bug.
2014-03-07 10:07:19 +08:00
Huabing.Xu
9fc6177570
fix bug for outdated transform status
2014-03-07 10:03:34 +08:00
Ricardo Quesada
57b6478de7
Improved documentation
2014-03-06 16:14:06 -08:00
Ricardo Quesada
77d19e9bc2
better doctrings
...
improved documentation for Node
2014-03-06 14:04:19 -08:00
zhangbin
56a46892fe
closed #3991 , Remove the method CCTextureCache::updateTexture().
2014-03-06 17:38:18 +08:00
zhangbin
822ef8d588
Merge branch 'develop' into issue3991
2014-03-06 17:28:20 +08:00
zhangbin
fec04dd6ae
Merge branch 'develop' of https://github.com/cocos2d/cocos2d-x into develop
2014-03-06 11:03:49 +08:00
James Chen
87b657b5bb
Merge pull request #5575 from dumganhar/iss4286-event-crash
...
closed #4286 : 'EventDispatcherTest/Issue 4129' crashes on Windows.
2014-03-06 11:03:34 +08:00
Ricardo Quesada
273d0d22f1
little performance improvement in quad command
2014-03-05 18:50:09 -08:00
James Chen
183622c718
'EventDispatcherTest/Issue 4129' crashes on Windows.
2014-03-06 10:45:29 +08:00
heliclei
73a3011b11
fix comments
2014-03-06 10:31:29 +08:00
heliclei
08d0cde490
Merge remote-tracking branch 'upstream/develop' into node-string-tag
2014-03-06 10:02:50 +08:00
zhangbin
6da0afdd03
Solve the crash in CocoStudioComponentsTest.
2014-03-06 09:23:27 +08:00
Ricardo Quesada
a0ab8fcdf3
onDraw() updated
...
`onDraw()` receives `const kmMat4 &transform` and `bool
transformUpdated`.
`CC_NODE_DRAW_SETUP()` is no longer used in our code.
`_modelViewTransform` is only used as a cache.
2014-03-05 15:49:08 -08:00
Ricardo Quesada
0cb759cab8
Better names for tests
2014-03-05 11:50:12 -08:00
minggo
b7df75745e
Merge pull request #5562 from Dhilan007/develop_label
...
issue #3629:new label support customize the effects such as Shadow[blur is unsupported], Outline
2014-03-05 17:28:37 +08:00
heliclei
55080d713b
refactor string tag to name
2014-03-05 17:03:25 +08:00
Dhilan007
dfdf19daff
remove unused shader and also did adjust FontAtlas::getTexture
2014-03-05 16:51:16 +08:00
Dhilan007
23501b40aa
issue #3629:new label support customize the effects such as Shadow[blur is unsupported], Outline
2014-03-05 15:54:40 +08:00
James Chen
20146c3ecb
Merge pull request #5558 from Dhilan007/develop_label
...
close #4276:fixed crash on CocoStudioGuiTest->LabelBMFontTest.
2014-03-05 15:24:36 +08:00
James Chen
9652da06f8
Merge pull request #5554 from koowolf/#5550_win
...
closed #4278 : Upgrading kazmath to the latest version.
2014-03-05 14:58:24 +08:00
James Chen
ec70d067d7
Merge pull request #5556 from boyu0/v3.0_final_test
...
Fix particle test->AddAndRemove test crash.
2014-03-05 14:53:05 +08:00
Dhilan007
c3c3e12ee6
close #4276:fixed crash on CocoStudioGuiTest->LabelBMFontTest.
2014-03-05 14:41:59 +08:00
boyu0
06faad7020
Fix partical test->add and remove particle system crash.
2014-03-05 14:32:22 +08:00
koowolf
3365280a0a
build kazmath on win32
2014-03-05 14:30:55 +08:00
James Chen
02572da9dc
Adds EventListenerTouchOneByOne::isSwallowTouches, fixes a typo for Director::EVENT_AFTER_UPDATE.
2014-03-05 11:28:21 +08:00
samuele3
3edeba5001
Merge branch 'develop' of git://github.com/cocos2d/cocos2d-x into bug_fix
2014-03-05 09:52:37 +08:00
samuele3
53851151d9
fix:TimerScriptHandler can’t do anything in the `cancel` function
2014-03-05 09:51:57 +08:00
Ricardo Quesada
c63f210e26
Compiles on Android
2014-03-04 16:59:39 -08:00
Ricardo Quesada
4fe3b16287
Updates to latest version of kazmath
2014-03-04 16:33:00 -08:00
Ricardo Quesada
7ac663e02c
GL Program API fixes
2014-03-04 13:51:43 -08:00
heliclei
cbec0f9a15
CCNode:Add String tag, to support runtime manipulation
2014-03-05 00:15:01 +08:00
James Chen
bb86a9e350
Merge pull request #5517 from bmanGH/feature/fix_timer_cancel_bug
...
closed #4272 : Timer::cancel always call Director::getInstance()->getScheduler() even in another Scheduler
2014-03-04 22:08:55 +08:00
minggo
6cb665b637
Merge pull request #5534 from dabingnn/develop_RenderTextureImprovement
...
Develop render texture improvement
2014-03-04 18:30:37 +08:00
Huabing.Xu
3d0cd62e12
add comment to make interface clearer
2014-03-04 17:34:48 +08:00
James Chen
98e1099370
Fixes crash of PerformanceTest/EventDispatcherTest.
2014-03-04 16:43:04 +08:00
Huabing.Xu
99d0ce160a
rename setVirtualViewPort->setVirtualViewport
2014-03-04 15:41:36 +08:00
Huabing.Xu
ec397611f6
remove blank line,adjust indent
2014-03-04 15:30:05 +08:00
Huabing.Xu
756024e9f1
implement interface setKeepMatrix, setVirtualViewPort
2014-03-04 15:07:28 +08:00
James Chen
387174d633
issue #4234 : Acceleration -> const Acceleration&
2014-03-04 13:42:36 +08:00
James Chen
5c70548742
issue #4234 : 'Event* event' needs to be in 'TouchScriptData' struct.
2014-03-04 13:42:06 +08:00
Huabing.Xu
68130fb4d0
fix matrix push/pop bug
2014-03-04 11:06:39 +08:00
Huabing.Xu
a759d9ae60
calculate viewport based on _fullRect _rtRect and _fullRectViewport
2014-03-04 10:57:57 +08:00
Huabing.Xu
7949cb2cd9
add interface for keep Matrix
2014-03-04 10:41:03 +08:00
Ricardo Quesada
8bdfce9bbe
Merge branch 'develop' into visit_draw_improved
2014-03-03 17:31:29 -08:00
Ricardo Quesada
81f5254e15
Removes setNormalizedPosition
...
This funciton is useful, but the code is buggy.
In should check the parents' position instead of Director::Size()
Let's do it correctly, and then re-add this function
2014-03-03 16:08:30 -08:00
Ricardo Quesada
c386f88e32
Merge branch 'develop' into visit_draw_improved
...
Conflicts:
CHANGELOG
cocos/gui/UILayout.h
2014-03-03 11:27:42 -08:00
bmanGH
d0f8dbd4be
Fix Timer::cancel always call Director::getInstance()->getScheduler() even in another Scheduler;
2014-03-03 19:12:59 +08:00
minggo
594342ea3e
Merge pull request #5505 from dumganhar/event-dispatcher-refactor
...
[EventDispatcher] Adds 'pauseEventListenersForTarget', 'resumeEventListenersForTarget' and 'removeEventListenersForTarget'.
2014-03-03 17:56:57 +08:00
minggo
be0ac5dc1c
Merge pull request #5493 from boyu0/bug4150_physics_position_rotation
...
closed #4150 : fix physics position and rotation bug.
2014-03-03 14:57:33 +08:00
James Chen
1d2d2df1e9
issue #4165 : Adds missing deprecated methods in Scheduler class.
2014-03-03 11:57:36 +08:00
James Chen
1aa9e35fb2
Merge pull request #5500 from dumganhar/scheduler-refactor
...
closed #4165 : Refactors Scheduler class.
2014-03-03 11:20:06 +08:00
James Chen
04663b4a9c
closed #4165 : Updates comments.
2014-03-03 11:12:04 +08:00
James Chen
09c0bae4a1
closed #4165 : Deprecates old methods: Scheduler::(un)scheduleSelector, Scheduler::isScheduleForTarget.
2014-03-03 11:07:48 +08:00
James Chen
757425c54b
issue #4165 : Scheduler::scheduleCallback -> Scheduler::schedule, Scheduler::scheduleSelector -> Scheduler::schedule. APIs are clear for c++ developers now.
2014-03-03 11:00:30 +08:00
boyu0
c99b0a0b6a
closed #4150 : Fix missing "!"
2014-03-03 01:48:56 +08:00
James Chen
dceb047ba6
TimerTargetCallback::initWithLambda -> TimerTargetCallback::initWithCallback.
2014-03-02 18:43:17 +08:00
James Chen
f3949e078b
[EventDispatcher] Adds 'pauseEventListenersForTarget', 'resumeEventListenersForTarget' and 'removeEventListenersForTarget'.
2014-03-02 17:41:18 +08:00
James Chen
30d7130eb0
closed #4160 : Out of range exception in EventDispatcher
2014-03-02 16:16:03 +08:00
Ricardo Quesada
cdc19eea1c
Nodes: setAdditionalTransform() receives a pointer
...
and not a const reference.
If the pointer is `NULL`, then it won't use the additionalTransform
2014-03-01 08:26:54 -08:00
Ricardo Quesada
219ef6d897
removes CC_TEXTURE_ATLAS_USE_TRIANGLE_STRIP support
...
It was never used. And it is slower.
2014-02-28 22:09:18 -08:00
James Chen
e6d2c4ec73
Refactors Scheduler class.
...
* Timer is an abstract class now.
* Adds three new timers ( `TimerTargetSelector`, `TimerTargetCallback`, `TimerScriptHandler`) which are inherited from Timer.
* Adds new API 'scheduleCallback` / `unscheduleCallbackForKey', and callback's target could be any classes since we're using `void*` to identify target.
* `Scheduler::scheduleCallback` use `std::function`, therefore, it supports passing `lambda`, `member_function` and `global_function`.
* The old selector API is still kept since it's very useful when schedule callback is a member function, it doesn't need a `key` to identify the callback function. (+1 squashed commit)
* Adds relevant test cases.
2014-03-01 14:09:09 +08:00
Ricardo Quesada
b50a787f6d
Adds new ParticleTest for auto-batching
2014-02-28 22:03:36 -08:00
Ricardo Quesada
3588041409
removed empty spaces
2014-02-28 16:39:04 -08:00
Ricardo Quesada
9d501479c1
removes unused ivar from ParticleSystemQuad
2014-02-28 16:19:27 -08:00
Ricardo Quesada
da8e571862
shaders set in the correct position
2014-02-28 16:14:55 -08:00
Ricardo Quesada
d78304599d
Cache working OK.
...
Performance increased in 20% for static objects.
2014-02-28 16:10:48 -08:00
Ricardo Quesada
13b60c8759
Applies Wu Hao's patch for 2.5D
2014-02-28 13:48:00 -08:00
Ricardo Quesada
6920bec6ef
transform object returns the MV
...
code cleaner.
the kmGL code is altogether
2014-02-28 11:20:53 -08:00
Ricardo Quesada
ff79c0d9ad
Merge branch 'develop' into visit_draw_improved
2014-02-28 10:59:07 -08:00
James Chen
225b5e0e4f
Merge pull request #5492 from dumganhar/iss4129-remove-all-listener
...
closed #4129 : Event listeners used in engine shouldn't be removed by method removeAllEventListeners().
2014-02-28 16:09:54 +08:00
James Chen
d33017f27a
issue #4129 : Adds default argument(nullptr) for dispatchCustomEvent.
2014-02-28 15:40:45 +08:00
boyu0
a934d29c57
issue #4150 : Correct body position with the node has a parent. Add set/getPosition/Rotation method.
2014-02-28 15:31:25 +08:00
James Chen
7774bb4c6c
closed #4129 : Event listeners in engine shouldn't be removed by method removeAllEventListeners().
2014-02-28 15:09:53 +08:00
James Chen
bbc1c385c2
issue #4129 : EventTouch::getTouches return const reference.
2014-02-28 15:08:18 +08:00
Ricardo Quesada
eb66ddd931
visit and draw improved.
...
`visit()` and `draw()` are improved.
they both receive:
- `Renderer`
- `kmMat4` for transformation
- `bool` whether or not the transform changed from the previous frame
Although `draw` and `visit` are not using the 3 new parameters,
they will start using it in the coming days (or weeks, or months).
Those parameters are needed for:
- `Renderer` shouldn't be a singleton. There should be one renderer per Director. There could be more than one renderer
- we should get rid of `kmGLXXX` functions since nodoby knows what is happening. the `kmMat4` is for that.
- whenever possible, we should try to optimize the multiplications. the `dirty` flag is for that.
We need those changes, so, it is better to change the API now, and not right after v3.0-final is released.
2014-02-27 21:43:54 -08:00
James Chen
658cf72d31
issue #4129 : Uses 'const reference' when getting touches by EventTouch::getTouches.
2014-02-28 13:43:28 +08:00
James Chen
8a04fbabf1
issue #4129 : EventDispatcher::_listeners -> _listenerMap.
2014-02-28 12:01:47 +08:00
zhangbin
ddf5957a9c
closed #3684 , Set shader program before TextureAtlas is rendered.
2014-02-28 11:43:41 +08:00
James Chen
4277509966
Merge pull request #5463 from andyque/refactor3877
...
closed #3877 . make fadeIn and fadeOut behaviours correct
2014-02-27 21:49:38 +08:00
James Chen
a96f44f31d
Adds override for override functions (onEnter, onExit) in cpp-tests.
2014-02-27 21:10:03 +08:00
andyque
32d3bf03bd
fixed #3877 . make fadeIn and fadeOut behaviours correct
2014-02-27 21:00:25 +08:00
boyu0
8c536589df
Merge branch 'develop' of https://github.com/cocos2d/cocos2d-x into iss4118_physical_performance_improve
2014-02-27 20:04:04 +08:00
minggo
8d47d5f16a
return immediately when no changing
2014-02-27 15:12:57 +08:00
boyu0
b63641c7a5
issue #4118 : delete physicsSetPosition/Rotation method and add physics position/rotation tag.
2014-02-27 14:36:09 +08:00
boyu0
f400c1ac68
issue #4118 : edit contact test and fix node setPhysicsBody bug
2014-02-27 13:35:37 +08:00
boyu0
75ec508f0a
issue #4118 : improve performance. add Node and Sprite physicsSetPosition and physicsSetRotation method.
2014-02-27 09:45:35 +08:00
Huabing.Xu
cd7b075900
closed #3874 : fix bug, blendID should be shifted by 50 bits
2014-02-27 09:27:33 +08:00
boyu0
4df1e104f3
issue #4118 : improve performance.
2014-02-26 19:56:52 +08:00
Huabing.Xu
c7315a2e3e
closed #3874 : expand textureID bit to 32bits
2014-02-26 15:01:45 +08:00
zhangbin
24ba47a43a
closed #3991 , Add method to reload cached texture & update the nodes used the texture.
2014-02-26 11:44:54 +08:00
James Chen
5e315273f9
Merge pull request #5467 from boyu0/bug4144_node_setphysicsbody
...
closed #4144 : fix bug: Can not use Node::setPhysicsBody to reset a physics body.
2014-02-26 11:43:19 +08:00
James Chen
2b2979551e
Merge pull request #5460 from boyu0/iss4118_physical_performance_improve
...
issue #4118 : Physical performance improve.
2014-02-26 11:37:13 +08:00
boyu0
912dad7a71
closed #4144 : fix bug: Node::setPhysicsBody doesn't work at the second time.
2014-02-26 10:53:41 +08:00
James Chen
51808b59e9
More const reference love in EventDispatcher.
2014-02-25 14:31:24 +08:00
Ricardo Quesada
18c3a8dd02
little fixes for sprite
2014-02-24 15:18:07 -08:00
James Chen
21fe4f234b
Merge pull request #5382 from boyu0/iss4039_tilemap_objectgroup_fix
...
closed #4039 : fix bug: tilemap <object> x, y, width and height value parse incorrect.
2014-02-24 22:23:05 +08:00
James Chen
dfde6938d2
Merge pull request #5452 from dabingnn/develop_CC_SPRITE_DEBUG_DRAW
...
closed #3818 : fix CC_SPRITE_DEBUG_DRAW feature
2014-02-24 21:51:24 +08:00
James Chen
b5b9c7f938
Merge pull request #5451 from Dhilan007/develop_movePDC
...
closed #4123:fixed thread deadlock if new functions are added in callback.
2014-02-24 21:43:37 +08:00
Dhilan007
387bd544bf
closed issue#4123:fixed thread deadlock if new functions are added in callback.
2014-02-24 21:08:05 +08:00
boyu0
d15009c510
issue #4039 : delete name "converted_x", "converted_y", "converted_width", "converted_height".
2014-02-24 20:14:46 +08:00
James Chen
81e7cec98f
Merge pull request #5385 from boyu0/refactor_tilemap_xml_format_index
...
refactor tilemap xml format index count.
2014-02-24 20:09:11 +08:00
Huabing.Xu
f20d487ade
closed #3818 : fix CC_SPRITE_DEBUG_DRAW feature
2014-02-24 20:02:48 +08:00
James Chen
1b91234325
Merge pull request #5283 from seemk/director_cleanup_fix
...
closed #4099 : Fixed crashing when calling CCDirector's end() on win32.
2014-02-24 16:58:34 +08:00
boyu0
1082f3cad4
issue #4039 : change name “position_x”, “position_y”, “size_width”, “size_height” to "converted_x", "converted_y", "converted_width", "converted_height".
2014-02-24 16:39:15 +08:00
boyu0
a4cc0edb4a
issue #4118 : refactor physics update
2014-02-24 16:17:42 +08:00
Dhilan007
b54607bfc9
only using std::max for window.
2014-02-24 11:54:58 +08:00
Dhilan007
d6cd2eb05f
fix compiling error cause by using 'fmaxf'.
2014-02-24 11:38:03 +08:00
Ricardo Quesada
f77b92f1d7
performance improvements in culling
2014-02-23 02:02:28 -08:00
Ricardo Quesada
04460750b8
culling working for both 2d and 3d projections
2014-02-23 01:09:52 -08:00