Developer documentation | Axl-2.5.1

axlFieldWritersFactory.cpp
Go to the documentation of this file.
1 /* axlFieldWritersFactory.cpp ---
2  *
3  * Author: Anais Ducoffe
4  * Copyright (C) 2013 - Anais Ducoffe, Inria.
5  */
6 
7 
8 /* Commentary:
9  *
10  */
11 
12 /* Change log:
13  *
14  */
15 
16 #include "axlFieldWritersFactory.h"
17 
18 //all field reader types
27 #include "axlFieldDiscreteWriter.h"
28 
29 
30 // /////////////////////////////////////////////////////////////////
31 //
32 // /////////////////////////////////////////////////////////////////
33 
34 axlFieldWritersInterface::axlFieldWritersInterface(QWidget *parent) : QFrame(parent)
35 {
37 }
38 
40 {
41 
42 }
43 
45 {
47 }
48 
50 {
52 }
53 
54 // /////////////////////////////////////////////////////////////////
55 //
56 // /////////////////////////////////////////////////////////////////
57 
58 class axlFieldWritersFactoryPrivate
59 {
60 public:
62 };
63 
65 {
66  if(!s_instance)
68 
69  return s_instance;
70 }
71 
72 bool axlFieldWritersFactory::registerFieldWriters(const QString& interface_name, axlFieldWritersCreator func)
73 {
74  if(!d->creators.contains(interface_name))
75  d->creators.insert(interface_name, func);
76 
77  return true;
78 }
79 
80 
82 {
83 
84  d->creators.insert("axlFieldSpatialCoordinates", createaxlFieldSpatialCoordinatesWriter);
85  d->creators.insert("axlFieldSpatialPointDistance", createaxlFieldSpatialPointDistanceWriter);
86  d->creators.insert("axlFieldParametricCurveTangentVector", createaxlFieldParametricCurveTangentVectorWriter);
87  d->creators.insert("axlFieldParametricSurfaceTangentVector", createaxlFieldParametricSurfaceTangentVectorWriter);
88  d->creators.insert("axlFieldParametricNormalVector", createaxlFieldParametricSurfaceNormalVectorWriter);
89  d->creators.insert("axlFieldParametricCurve", createaxlFieldParametricCurveWriter);
90  d->creators.insert("axlFieldParametricSurface", createaxlFieldParametricSurfaceWriter);
91  d->creators.insert("axlFieldParametricVolume", createaxlFieldParametricVolumeWriter);
92  d->creators.insert("axlFieldDiscrete", createaxlFieldDiscreteWriter);
93 
94 }
95 
96 dtkAbstractDataWriter *axlFieldWritersFactory::create(const QString& interface_name)
97 {
98  if(!d->creators.contains(interface_name))
99  return NULL;
100 
101  return d->creators[interface_name]();
102 
103 }
104 
105 axlFieldWritersFactory::axlFieldWritersFactory(void) : QObject(), d(new axlFieldWritersFactoryPrivate)
106 {
107  initialize();
108 
109 }
110 
111 axlFieldWritersFactory::~axlFieldWritersFactory(void)
112 {
113  delete d;
114 
115  d = NULL;
116 }
117 
dtkAbstractDataWriter * createaxlFieldDiscreteWriter(void)
axlFieldWritersFactory * m_actorFactorySingleton
axlFieldWritersInterface(QWidget *parent=0)
dtkAbstractDataWriter * createaxlFieldParametricCurveTangentVectorWriter(void)
static axlFieldWritersFactory * instance(void)
dtkAbstractDataWriter * createaxlFieldParametricSurfaceTangentVectorWriter(void)
static axlFieldWritersFactory * s_instance
void setActorFactorySingleton(axlFieldWritersFactory *actorFactorySingleton)
bool registerFieldWriters(const QString &interface_name, axlFieldWritersCreator func)
QHash< QString, axlFieldWritersCreator > axlFieldWritersCreatorHash
dtkAbstractDataWriter * createaxlFieldParametricSurfaceNormalVectorWriter(void)
dtkAbstractDataWriter * create(const QString &interface_name)
dtkAbstractDataWriter * createaxlFieldSpatialPointDistanceWriter(void)
dtkAbstractDataWriter * createaxlFieldParametricCurveWriter(void)
dtkAbstractDataWriter * createaxlFieldParametricSurfaceWriter(void)
axlFieldWritersFactory * actorFactorySingleton(void)
dtkAbstractDataWriter * createaxlFieldParametricVolumeWriter(void)
dtkAbstractDataWriter * createaxlFieldSpatialCoordinatesWriter(void)