# how to record the viewpoint and viewvertical when using Manipulate Bookmarks?

I learnt from a relevant question that we can click on the plus sign of the Manipulate output, and choose "Add to Bookmarks" to store different set of values of controls, so that one can retrieve their combinations later. However, if the cell is reevaluated, these bookmarks will be lost. To handle this, one can click on the "Paste bookmarks" to get those different sets of controls values as a list, which can be added as options of the Manipulate[] block. In this way, these bookmarks are stored even if one reevaluate a certain block.

However, in my case, the Manipulate[] function involves Graphics3D[] output. Before I knew the Bookmark function, I would make several copies (cells) of the same Manipulate[] function, then adjust the controls and view of each Manipulate[] function individually, then use dynamic[] to get their view info and manually add them into the options of Graphics3[] for each Manipulate[].

However, if I use only one Manipulate[] block together with the Bookmark function, since the view info for each individual bookmark are different, I can't find an easy way to assign these view data. Hence, these info can't be maintained if I re-evaluate the Manipulate cell.

So is there anyway to cope with this issue?

• "Paste bookmarks" writes the book marks in a new cell. You could then edit this cell, e.g.: "bm= {...}" and add to the "Manipulate": "Bookmarks->bm" Oct 27 '21 at 8:07
• @DanielHuber, yes, that's what I'm already aware of; what I'm looking for is a way to also maintain the viewpoint and viewvertial of Graphics3D[] within the Manipulate[] Oct 27 '21 at 11:13
• maybe something like Manipulate[ Graphics3D[{Cylinder[]}, ViewPoint -> Dynamic[vp], PlotLabel -> Dynamic[vp]], {{vp, 1. {Pi, Pi/2, 2}}, None}]?
– kglr
Oct 27 '21 at 15:54
• @kglr, this does work, thanks! Oct 28 '21 at 8:35