๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Maya Context

by ๐“ƒ๐’ถ๐“ƒ๐’ถ๏ฝก 2015. 8. 5.

์ถœ์ฒ˜

http://wanochoi.com/?p=1782



Context๋ž€ ๋งˆ์šฐ์Šค์˜ ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜์—ฌ ์–ด๋– ํ•œ ํŠน์ • ์ž‘์—… ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•œ Maya์˜ ํŠน์ˆ˜ ๋ชจ๋“œ๋ฅผ ๋งํ•œ๋‹ค.


Maya์—์„œ context๋Š” tool๊ณผ ๋™์ผํ•œ ๊ฐœ๋…์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

๋‹ค๋งŒ, graphical user interface ๊ธฐ์ค€์—์„œ๋Š” tool์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ , programming interface ๊ธฐ์ค€์—์„œ๋Š” context๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.


setToolTo [context name]์œผ๋กœ ํŠน์ • ์ปจํ…์ŠคํŠธ ๋ชจ๋“œ๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

currentCtx: ํ˜„์žฌ ์–ด๋– ํ•œ ์ปจํ…์ŠคํŠธ ๋ชจ๋“œ์— ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด.


๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๊ฐ€์ง€ API ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„์„œ ์ž์‹ ๋งŒ์˜ custom context๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

1) MPxContext

2) MPxContextCommand

3) MPxToolCommand


MPxContext๊ฐ€ ์‹ค์ œ ์ปจํ…์ŠคํŠธ ๊ตฌํ˜„๋ถ€๋ฅผ ๋‹ด๋‹นํ•˜๊ณ , MPxContextCommand๊ฐ€ ์ปจํ…์ŠคํŠธ ๋“ฑ๋ก์„ ๋‹ด๋‹นํ•œ๋‹ค.

MPxToolCommand์˜ ์‚ฌ์šฉ์€ ํ•„์ˆ˜์‚ฌํ•ญ์€ ์•„๋‹ˆ์ง€๋งŒ, ๋งŒ์•ฝ undo/redo ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

MPxContext์˜ doPress(), doDrag(), doRelease() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๋Š”๋ฐ,

๋ณดํ†ต์˜ ๊ฒฝ์šฐ doRelease()๊ฐ€ ํ˜ธ์ถœ๋˜์—ˆ์„ ๋•Œ, ์ƒˆ๋กœ์šด MPxToolCommand๋ฅผ ๋งŒ๋“ค๊ณ ,

MPxToolCommand์˜ redoIt(), finalize() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ๋˜๋ฉด ์ž๋™์ ์œผ๋กœ undo/redo ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.


Context ์‹คํ–‰์‹œ ๊ฐ ํ•จ์ˆ˜๋“ค์˜ ์‹คํ–‰์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.


ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋กœ๋“œํ•˜๋ฉด..

MPxContextCommand::creator()

MPxContextCommand::MPxContextCommand()


setToolTo๋ฅผ ์‹คํ–‰ํ•˜๋ฉด..

MPxContextCommand::appendSyntax()

MPxContextCommand::makeObj()

MPxContext::MPxContext()

MPxConTextCommand::doEditFlags()

MPxContextCommand::doQueryFlags()

MPxContext::toolOnSetup()

MPxContext::getClassName()


๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์„ ํด๋ฆญ, ๋“œ๋ž˜๊ทธ๋ฅผ ํ•˜๋ฉด..

MPxContext::doPress()

MPxContext::doDrag()

โ€ฆ

MPxContext::doDrag()


๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์„ ๋–ผ๋ฉด..

MPxContext::doRelease()

MPxToolCommand::newSyntax(): ์ฒ˜์Œ ํ•œ ๋ฒˆ๋งŒ ํ˜ธ์ถœ๋จ

MPxToolCommand::creator()

MPxToolCommand::MPxToolCommand()

MPxToolCommand::redoIt()

MPxToolCommand::finalize()


undo๋ฅผ ์‹คํ–‰ํ•˜๋ฉด..

MPxToolCommand::undoIt()


redo๋ฅผ ์‹คํ–‰ํ•˜๋ฉด..

MPxToolCommand::redoIt()


Context๋ฅผ ๋น ์ ธ๋‚˜์˜ค๋ฉด..

MPxContext::toolOffCleanup()

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Implicit vs. Explicit  (0) 2015.08.21
Lagrangian vs. Eulerian  (0) 2015.08.20
std::pair  (0) 2015.07.01
๋ฌด๊ฒŒ์ค‘์‹ฌ์ขŒํ‘œ Barycentric Coordinates  (0) 2015.06.26
ํƒ„์  ํŠธ ๊ณต๊ฐ„ Tangent Space  (0) 2015.06.23