(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 13.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] NotebookDataLength[ 470217, 9341] NotebookOptionsPosition[ 317632, 6440] NotebookOutlinePosition[ 460477, 9136] CellTagsIndexPosition[ 458668, 9086] WindowTitle->MultiPerspectiveEmbeddingViewer | Definition Notebook WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["MultiPerspectiveEmbeddingViewer", "Title", CellTags->{"Name", "TemplateCell", "Title"}, CellID->721242295], Cell["Visualize a MultiPerspectiveEmbedding", "Text", CellTags->{"Description", "TemplateCell"}, CellID->17933495], Cell[CellGroupData[{ Cell[TextData[{ "Definition", Cell[BoxData[ PaneSelectorBox[{True-> TemplateBox[{"Function", Cell[ BoxData[ FrameBox[ Cell[ "Define your function using the name you gave in the Title line \ above. You can add input cells and extra code to define additional input \ cases or prerequisites. All definitions, including dependencies, will be \ included in the generated resource function.\n\nThis section should be \ evaluated before creating the Examples section below.", "MoreInfoText"], Background -> GrayLevel[0.95], FrameMargins -> 20, FrameStyle -> GrayLevel[0.9], RoundingRadius -> 5, ImageSize -> { Scaled[0.65], Automatic}]], "MoreInfoText", Deletable -> True, CellTags -> {"SectionMoreInfoFunction"}, CellMargins -> {{66, 66}, {15, 15}}]}, "MoreInfoOpenerButtonTemplate"]}, Dynamic[ CurrentValue[ EvaluationNotebook[], {TaggingRules, "ResourceCreateNotebook"}]], ImageSize->Automatic]]] }], "Section", Editable->False, Deletable->False, TaggingRules->{"TemplateGroupName" -> "Function"}, DefaultNewCellStyle->"Input", CellTags->{"Definition", "Function", "TemplateCellGroup"}, CellID->72845326], Cell[BoxData[{ RowBox[{"normalVectorOrthonormalBasis", "//", "ClearAll"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"normalVectorOrthonormalBasis", "[", RowBox[{"n_", "/;", RowBox[{ RowBox[{"Dimensions", "[", "n", "]"}], "===", RowBox[{"{", "3", "}"}]}]}], "]"}], ":=", RowBox[{"With", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{"i", "=", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"n", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "\[Equal]", RowBox[{"n", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "==", "0"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"Normalize", "@", RowBox[{"{", RowBox[{ RowBox[{"-", RowBox[{ "n", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], ",", RowBox[{ "n", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "0"}], "}"}]}]}], "]"}]}], "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"i", ",", RowBox[{ RowBox[{"RotationTransform", "[", RowBox[{ RowBox[{"90", "\[Degree]"}], ",", "n"}], "]"}], "[", "i", "]"}]}], "}"}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{"MultiPerspectiveEmbeddingViewer", "//", "ClearAll"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"Options", "[", "MultiPerspectiveEmbeddingViewer", "]"}], "=", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"\"\\"", "\[Rule]", "Automatic"}], ",", "\[IndentingNewLine]", RowBox[{"\"\\"", "\[Rule]", "3"}], ",", "\[IndentingNewLine]", RowBox[{"\"\\"", "\[Rule]", RowBox[{"{", RowBox[{"0.01", ",", "25"}], "}"}]}]}], "\[IndentingNewLine]", "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"MultiPerspectiveEmbeddingViewer", "::", "badDisplayFunction"}], "=", "\"\