summaryrefslogtreecommitdiff
path: root/src/Visual3d/Visual3d_View_Print.cxx
blob: 796ea68cf8c03dbf8f56d04ce48f0c96a36d7a01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// File         Visual3d_View_Print.cxx
// Created      March 2000
// Author       THA
// e-mail       t-hartl@muenchen.matra-dtv.fr

/************************************************************************/
/* Includes                                                             */
/************************************************************************/

#include <Visual3d_View.jxx>
#include <Visual3d_View.pxx>

/************************************************************************/
/* Print Methods                                                        */
/************************************************************************/

Standard_Boolean Visual3d_View::Print
  (const Aspect_Handle    hPrintDC, 
   const Standard_Boolean showBackground,
   const Standard_CString filename,
   const Aspect_PrintAlgo printAlgorithm,
   const Standard_Real    theScaleFactor) const
{
  return Print (MyViewManager->UnderLayer (),
                MyViewManager->OverLayer (),
                hPrintDC, showBackground,
                filename, printAlgorithm, 
                theScaleFactor);
}

Standard_Boolean Visual3d_View::Print
  (const Handle(Visual3d_Layer)& AnUnderLayer,
   const Handle(Visual3d_Layer)& AnOverLayer,
   const Aspect_Handle           hPrintDC,
   const Standard_Boolean        showBackground,
   const Standard_CString        aFilename,
   const Aspect_PrintAlgo        printAlgorithm,
   const Standard_Real           theScaleFactor) const
{
  if (IsDeleted ()) return Standard_False;

  if ((! IsDefined ()) || (! IsActive ())) return Standard_False;

  if (! MyWindow->IsMapped ()) return Standard_False;

  Aspect_CLayer2d OverCLayer;
  Aspect_CLayer2d UnderCLayer;

  OverCLayer.ptrLayer = UnderCLayer.ptrLayer = NULL;
  if (! AnOverLayer.IsNull ()) OverCLayer = AnOverLayer->CLayer ();
  if (! AnUnderLayer.IsNull ()) UnderCLayer = AnUnderLayer->CLayer ();

  return MyGraphicDriver->Print (MyCView, UnderCLayer, OverCLayer,
                                 hPrintDC, showBackground, aFilename,
                                 printAlgorithm, theScaleFactor);
}