Annotation3D.vb
'' 
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' © MESCIUS inc. All rights reserved.
'' 
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Pdf.Annotations

'' このサンプルでは、Annotation3Dを使用してPDFにインタラクティブな3Dモデルを埋め込む方法を示します。
Public Class Annotation3D
    Public Function CreatePDF(ByVal stream As Stream) As Integer
        Dim doc = New GcPdfDocument()
        Dim page = doc.NewPage()

        Dim rc = Util.AddNote(
            "下の表示領域には、3Dモデルを含む Model3DAnnotation が配置されています。" &
            "このページが表示されると自動的に有効になりますが、Adobe Acrobat/Reader などの" &
            "3D表示機能をネイティブにサポートしたPDFリーダーでのみ、インタラクティブに操作・閲覧できます。", page)

        ' 3Dモデル(U3D形式)を読み込みます。
        Dim modelPath = Path.Combine("Resources", "3DModels", "plane64x64_base.u3d")
        Using modelStream = File.OpenRead(modelPath)
            ' ページが表示された際に有効になる、モデルを示す3D注釈を追加します。
            Dim m3d = New Model3DAnnotation With {
                .Stream = New Model3DStream(modelStream, Model3DStreamFormat.U3D),
                .ActivationCondition = Model3DActivationCondition.PageBecomesVisible,
                .DeactivationCondition = Model3DDeactivationCondition.PageBecomesInvisible,
                .Page = page,
                .Rect = New RectangleF(rc.X, rc.Bottom + 18, 72 * 5, 72 * 4)
            }

            doc.Save(stream)
        End Using

        Return doc.Pages.Count
    End Function
End Class