1 // Modified 27/12/98 : FMN ; PERF: OPTIMISATION LOADER (LOPTIM)
4 #include <Image_Image.hxx>
5 #include <AlienImage_XAlienImage.hxx>
6 #include <OSD_Process.hxx>
7 #include <OSD_File.hxx>
8 #include <ImageUtility_XWUD.ixx>
12 static Handle(AlienImage_XAlienImage) XAlienImage = new AlienImage_XAlienImage();
14 static Handle(AlienImage_XAlienImage)& _XAlienImage() {
15 static Handle(AlienImage_XAlienImage) XAlienImage = new AlienImage_XAlienImage();
18 #define XAlienImage _XAlienImage()
21 void ImageUtility_XWUD::XWUD(
22 const Handle(AlienImage_AlienUserImage)& aAlienImage,
23 const Standard_CString aName,
24 const Standard_CString xwudOptions )
27 if ( aAlienImage->IsKind(STANDARD_TYPE(AlienImage_XAlienImage) ) ) {
28 Handle(AlienImage_XAlienImage) aXImage =
29 Handle(AlienImage_XAlienImage)::DownCast(aAlienImage) ;
31 aXImage->SetName( TCollection_AsciiString( aName ) ) ;
33 XWUD( aXImage, xwudOptions ) ;
36 XWUD( aAlienImage->ToImage(), aName, xwudOptions ) ;
40 void ImageUtility_XWUD::XWUD( const Handle(Image_Image)& aImage,
41 const Standard_CString aName,
42 const Standard_CString xwudOptions )
44 { XAlienImage->Clear() ;
45 XAlienImage->FromImage( aImage ) ;
47 XAlienImage->SetName( TCollection_AsciiString( aName ) ) ;
49 XWUD( XAlienImage, xwudOptions ) ;
52 void ImageUtility_XWUD::XWUD(
53 const Handle(AlienImage_XAlienImage)& aXImage,
54 const Standard_CString xwudOptions )
57 OSD_File File = OSD_File::BuildTemporary() ;
61 TCollection_AsciiString Name ;
65 Path.SystemName( Name ) ;
67 cout << "BuildTemporaryFile :" << Name << endl << flush ;
70 aXImage->Write( File ) ;
74 XWUD( File, xwudOptions ) ;
78 void ImageUtility_XWUD::XWUD( const OSD_File& File,
79 const Standard_CString xwudOptions )
82 TCollection_AsciiString s, Name ;
88 Path.SystemName( Name, OSD_Default ) ;
90 XWUD( Name.ToCString(), xwudOptions ) ;
93 void ImageUtility_XWUD::XWUD( const Standard_CString aName,
94 const Standard_CString xwudOptions )
97 TCollection_AsciiString s;
100 s = TCollection_AsciiString("xwud ")
101 + TCollection_AsciiString(xwudOptions)
102 + TCollection_AsciiString(" -in ")
104 + TCollection_AsciiString( "&" );