Loading files
f2929057eThis file is pinned to the selected release. Download the original to open it in your design tool.
// Created on: 1996-09-04
// Created by: Christian CAILLET
// Copyright (c) 1996-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _Transfer_FinderProcess_HeaderFile
#define _Transfer_FinderProcess_HeaderFile
#include <Transfer_ProcessForFinder.hxx>
#include <Interface_InterfaceModel.hxx>
class Interface_InterfaceModel;
class Transfer_TransientMapper;
class Transfer_Finder;
//! Adds specific features to the generic definition :
//! PrintTrace is adapted
class Transfer_FinderProcess : public Transfer_ProcessForFinder
{
public:
//! Sets FinderProcess at initial state, with an initial size
Standard_EXPORT Transfer_FinderProcess(const int nb = 10000);
//! Sets an InterfaceModel, which can be used during transfer
//! for instance if a context must be managed, it is in the Model
Standard_EXPORT void SetModel(const occ::handle<Interface_InterfaceModel>& model);
//! Returns the Model which can be used for context
Standard_EXPORT occ::handle<Interface_InterfaceModel> Model() const;
//! In the list of mapped items (between 1 and NbMapped),
//! searches for the first mapped item which follows <num0>
//! (not included) and which has an attribute named <name>
//! The considered Attributes are those brought by Finders,i.e.
//! by Input data.
//! While NextItemWithAttribute works on Result data (Binders)
//!
//! Hence, allows such an iteration
//!
//! for (num = FP->NextMappedWithAttribute(name,0);
//! num > 0;
//! num = FP->NextMappedWithAttribute(name,num) {
//! .. process mapped item <num>
//! }
Standard_EXPORT int NextMappedWithAttribute(const char* const name, const int num0) const;
//! Returns a TransientMapper for a given Transient Object
//! Either <obj> is already mapped, then its Mapper is returned
//! Or it is not, then a new one is created then returned, BUT
//! it is not mapped here (use Bind or FindElseBind to do this)
Standard_EXPORT occ::handle<Transfer_TransientMapper> TransientMapper(
const occ::handle<Standard_Transient>& obj) const;
//! Specific printing to trace a Finder (by its method ValueType)
Standard_EXPORT void PrintTrace(const occ::handle<Transfer_Finder>& start,
Standard_OStream& S) const override;
//! Prints statistics on a given output, according mode
Standard_EXPORT void PrintStats(const int mode, Standard_OStream& S) const;
DEFINE_STANDARD_RTTIEXT(Transfer_FinderProcess, Transfer_ProcessForFinder)
private:
occ::handle<Interface_InterfaceModel> themodel;
};
#endif // _Transfer_FinderProcess_HeaderFile