1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2000-2006 by the OpenSG Forum *
9 * contact: David Kabala (djkabala@gmail.com) *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
37 \*---------------------------------------------------------------------------*/
39 //---------------------------------------------------------------------------
41 //---------------------------------------------------------------------------
46 #include "OSGConfig.h"
48 #include "OSGBoostPathAttachment.h"
50 #include <boost/filesystem/operations.hpp>
54 // Documentation for this class is emitted in the
55 // OSGBoostPathAttachmentBase.cpp file.
56 // To modify it, please change the .fcd file (OSGBoostPathAttachment.fcd) and
57 // regenerate the base file.
59 /***************************************************************************\
61 \***************************************************************************/
64 /***************************************************************************\
66 \***************************************************************************/
68 void BoostPathAttachment::initMethod(InitPhase ePhase
)
70 Inherited::initMethod(ePhase
);
72 if(ePhase
== TypeObject::SystemPost
)
77 /***************************************************************************\
79 \***************************************************************************/
81 /*-------------------------------------------------------------------------*\
83 \*-------------------------------------------------------------------------*/
85 /*----------------------- constructors & destructors ----------------------*/
87 BoostPathAttachment::BoostPathAttachment(void) :
92 BoostPathAttachment::BoostPathAttachment(const BoostPathAttachment
&source
) :
97 BoostPathAttachment::~BoostPathAttachment(void)
101 /*----------------------------- class specific ----------------------------*/
103 void BoostPathAttachment::changed(ConstFieldMaskArg whichField
,
107 Inherited::changed(whichField
, origin
, details
);
110 void BoostPathAttachment::dump( UInt32
,
111 const BitVector
) const
113 SLOG
<< "Dump BoostPathAttachment NI" << std::endl
;
117 const BoostPath
*getBoostPath(const AttachmentContainer
*pContainer
)
119 if(pContainer
== NULL
)
122 // Get attachment pointer
124 pContainer
->findAttachment(
125 BoostPathAttachment::getClassType().getGroupId());
130 // Cast to name pointer
131 BoostPathAttachment
*pPathAttachment
=
132 dynamic_cast<BoostPathAttachment
*>(pAtt
);
134 if(pPathAttachment
== NULL
)
137 return &(pPathAttachment
->getPath());
140 void setBoostPath( AttachmentContainer
*pContainer
,
141 const BoostPath
&oPath
)
143 if(pContainer
== NULL
)
145 FFATAL(("setBoostPath: no container?!?\n"));
149 // Get attachment pointer
152 pContainer
->findAttachment(
153 BoostPathAttachment::getClassType().getGroupId());
157 pContainer
->subAttachment(pAtt
);
160 BoostPathAttachmentUnrecPtr pPathAttachment
= BoostPathAttachment::create();
162 pPathAttachment
->setPath(oPath
);
164 pContainer
->addAttachment(pPathAttachment
);