DATAKIT API  V2025.2
jtw.h
Go to the documentation of this file.
1 #ifndef _JTW_H
2 #define _JTW_H
3 
8 {
9 public:
10  enum breptype
11  {
12  nobrep = 0,
13  xtbrep = 1,
14  };
16  {
18  overwritecolor = 1
19  };
21  {
22  version80 = 80,
23  version90 = 90,
24  version91 = 91,
25  version92 = 92,
26  version93 = 93,
27  version94 = 94,
28  version95 = 95,
29  version100 = 100,
30  version101 = 101,
31  version102 = 102,
32  version103 = 103,
33  version104 = 104,
34  version105 = 105,
35  version106 = 106,
36  version107 = 107,
37  version108 = 108,
38  version109 = 109,
39  version1010 = 1010
40  };
41  enum unit
42  {
45  meters = 2,
46  inches = 3,
47  feet = 4,
48  yards = 5,
52  mils = 9,
53  miles = 10
54  };
55 private:
56  void* vdata;
57  Dtk_Jtw_Interface(const Dtk_Jtw_Interface&) {} // uncopiable
58  Dtk_Jtw_Interface& operator=(const Dtk_Jtw_Interface&) { return *this; } // uncopiable
59  Dtk_string m_filename;
60 public:
67  Dtk_Jtw_Interface(const Dtk_string& inFileWritten, Dtk_ErrorStatus& outErr, breptype inBrep = nobrep,
68  writeversion inVersion = version95, unit inUnit = millimeters);
71 
72 // TreeControl
73 
81  Dtk_ErrorStatus OpenInstance(const Dtk_string& inName, const Dtk_transfo& inTrans = Dtk_transfo(), const Dtk_string& inExternfile = Dtk_string());
91  Dtk_ErrorStatus OpenInstance(const Dtk_string& inName, Dtk_Int64 inIdpart, const Dtk_transfo& inTrans = Dtk_transfo(), const Dtk_string& inExternfile = Dtk_string());
121  Dtk_bool ExistIdPart(Dtk_Int64 inIdpart) const;
122 
123 // Geometry
124 
132  Dtk_ErrorStatus AddBody(const Dtk_BodyPtr& inToWrite, const Dtk_tab<Dtk_Float32>& makelods = Dtk_tab<Dtk_Float32>(), Dtk_Float32 inLossytol = 0);
137  Dtk_ErrorStatus AddMesh(const Dtk_MeshPtr& inToWrite, Dtk_Float32 inLossytol = 0);
146 
147 // PMI
152  Dtk_ErrorStatus AddPMI(const Dtk_FdtPtr& inPMI, Dtk_Int64 inIdpmi = -1);
157  Dtk_ErrorStatus AddModelView(const Dtk_ModelDisplayPtr& inModelview, Dtk_Int64 inIdmodelview = -1);
162  Dtk_ErrorStatus AddAxisSystem(const Dtk_AxisSystemPtr& inAxisSystem, Dtk_Int64 inIdaxis = -1);
168  Dtk_ErrorStatus AddReferenceGeometry(const Dtk_BodyPtr& inRefgeom, Dtk_Int64 inIdrefgeom = -1);
169 
170 // connectors
171 
188  Dtk_ErrorStatus ConnectPMI_Geom(Dtk_Int64 inIdfdt, Dtk_Int64 inGeomid, type_detk inTypegeom, const Dtk_tab<Dtk_Int64>& inRoute = Dtk_tab<Dtk_Int64>(), Dtk_ID inBodyID = 0);
202  Dtk_ErrorStatus ConnectModelView_Instance(Dtk_Int64 inIdmodelview, const Dtk_tab<Dtk_Int64>& inRoute, int inHide = 0, Dtk_ID inBodyID = 0, const Dtk_transfo& inExplode = Dtk_transfo());
209  Dtk_ErrorStatus AddOverrideColor(const Dtk_RGB& inRgb, const Dtk_tab<Dtk_Int64>& inRoute, Dtk_ID inBodyID = 0);
216  Dtk_ErrorStatus AddOverrideColor(const Dtk_LightMapPtr& inLightmap, const Dtk_tab<Dtk_Int64>& inRoute, Dtk_ID inBodyID = 0);
217 };
218 
219 
220 
221 
222 
223 
224 
225 
226 // deprecated
227 
228 #define JTW_BREP_NONE 0
229 #define JTW_BREP_XT 1
230 #define JTW_COLOR_DEFAULT 0
231 #define JTW_COLOR_OVERWRITE 1
232 #define JTW_VERSION_8_0 80
233 #define JTW_VERSION_9_5 95
234 #define JTW_UNIT_MILLIMETERS 0
235 #define JTW_UNIT_CENTIMETERS 1
236 #define JTW_UNIT_METERS 2
237 #define JTW_UNIT_INCHES 3
238 #define JTW_UNIT_FEET 4
239 #define JTW_UNIT_YARDS 5
240 #define JTW_UNIT_MICROMETERS 6
241 #define JTW_UNIT_DECIMETERS 7
242 #define JTW_UNIT_KILOMETERS 8
243 #define JTW_UNIT_MILS 9
244 #define JTW_UNIT_MILES 10
245 Dtk_ErrorStatus jtw_InitWrite(Dtk_string inFileWritten, Dtk_string inLogFile, Licence_dtk inLicFct = NULL,
246  int inExptype = 0, int inBreptype = JTW_BREP_XT,
247  int inVersion = JTW_VERSION_9_5, int inUnit = JTW_UNIT_MILLIMETERS);
248 Dtk_ErrorStatus jtw_InitChild(const Dtk_string& inName, Dtk_Int64 inIdpart, Dtk_bool& outWasAlreadyInstancied,
249  const Dtk_transfo& inTrans = Dtk_transfo(), const Dtk_RGB& inRgb = Dtk_RGB(),
250  const Dtk_string& inNewsubfile = Dtk_string(),
251  int inColorstrategy = JTW_COLOR_DEFAULT, int inVisibility = 1, Dtk_Int64 inInstanceID = -1);
253 Dtk_ErrorStatus jtw_AddMesh(const Dtk_MeshPtr& inMesh, Dtk_Float32 inLossytol = 0);
254 Dtk_ErrorStatus jtw_AddBody(const Dtk_BodyPtr& inBody, Dtk_Float32 inLossytol = 0);
255 Dtk_ErrorStatus jtw_AddBodyMultiLOD(const Dtk_BodyPtr& inBody, const Dtk_tab<Dtk_Float32>& inLodDatas, Dtk_Float32 inLossytol = 0);
256 Dtk_ErrorStatus jtw_AddFdt(const Dtk_FdtPtr& inFdt, Dtk_Int64 inIdfdt = -1);
264 Dtk_ErrorStatus jtw_ConnectFdt_Geom(Dtk_Int64 inIdfdt, Dtk_Int64 inGeomid, type_detk inTypegeom, const Dtk_tab<Dtk_Int64>& inRoute = Dtk_tab<Dtk_Int64>(), Dtk_ID inBodyID = 0);
266  const Dtk_tab<Dtk_Int64>& inRoute = Dtk_tab<Dtk_Int64>(), int inHide = 0, Dtk_ID inBodyID = 0,
267  const Dtk_transfo& inExplode = Dtk_transfo());
269 
270 #endif
271 
Dtk_Jtw_Interface::version104
@ version104
Definition: jtw.h:33
Dtk_Jtw_Interface::breptype
breptype
Definition: jtw.h:11
Dtk_Jtw_Interface::version102
@ version102
Definition: jtw.h:31
jtw_AddBody
Dtk_ErrorStatus jtw_AddBody(const Dtk_BodyPtr &inBody, Dtk_Float32 inLossytol=0)
Dtk_ID
uint32_t Dtk_ID
Definition: define.h:689
Dtk_transfo
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
jtw_ConnectFdt_ModelView
Dtk_ErrorStatus jtw_ConnectFdt_ModelView(Dtk_Int64 inIdfdt, Dtk_Int64 inIdModelView, const Dtk_tab< Dtk_Int64 > &inRoute=Dtk_tab< Dtk_Int64 >())
Dtk_Jtw_Interface::OpenInstance
Dtk_ErrorStatus OpenInstance(const Dtk_string &inName, const Dtk_transfo &inTrans=Dtk_transfo(), const Dtk_string &inExternfile=Dtk_string())
Open a new Instance for the assembly writing.
jtw_ConnectModelView_Instance
Dtk_ErrorStatus jtw_ConnectModelView_Instance(Dtk_Int64 inIdModelView, const Dtk_tab< Dtk_Int64 > &inRoute=Dtk_tab< Dtk_Int64 >(), int inHide=0, Dtk_ID inBodyID=0, const Dtk_transfo &inExplode=Dtk_transfo())
jtw_AddFdt
Dtk_ErrorStatus jtw_AddFdt(const Dtk_FdtPtr &inFdt, Dtk_Int64 inIdfdt=-1)
Dtk_Float32
float Dtk_Float32
Definition: define.h:700
Dtk_Jtw_Interface::version94
@ version94
Definition: jtw.h:27
Dtk_Jtw_Interface::version105
@ version105
Definition: jtw.h:34
Dtk_Jtw_Interface::version100
@ version100
Definition: jtw.h:29
jtw_ConnectFdt_Fdt
Dtk_ErrorStatus jtw_ConnectFdt_Fdt(Dtk_Int64 inIdfdt, Dtk_Int64 inIdfdt2, const Dtk_tab< Dtk_Int64 > &inRoute=Dtk_tab< Dtk_Int64 >())
Dtk_Jtw_Interface::LastInstance_SetInstanceColor
Dtk_ErrorStatus LastInstance_SetInstanceColor(const Dtk_RGB &inRgb, colorstrategy inColorstrategy=keepsubcolor)
Set a Color to previously opened instance.
Dtk_Jtw_Interface::writeversion
writeversion
Definition: jtw.h:21
Dtk_Jtw_Interface::ConnectModelView_Instance
Dtk_ErrorStatus ConnectModelView_Instance(Dtk_Int64 inIdmodelview, const Dtk_tab< Dtk_Int64 > &inRoute, int inHide=0, Dtk_ID inBodyID=0, const Dtk_transfo &inExplode=Dtk_transfo())
Connect a ModelView on an Instance, for part representation restriction in a modelview.
jtw_InitChild
Dtk_ErrorStatus jtw_InitChild(const Dtk_string &inName, Dtk_Int64 inIdpart, Dtk_bool &outWasAlreadyInstancied, const Dtk_transfo &inTrans=Dtk_transfo(), const Dtk_RGB &inRgb=Dtk_RGB(), const Dtk_string &inNewsubfile=Dtk_string(), int inColorstrategy=0, int inVisibility=1, Dtk_Int64 inInstanceID=-1)
Dtk_Jtw_Interface::feet
@ feet
Definition: jtw.h:47
jtw_AddLayerInfosSet
Dtk_ErrorStatus jtw_AddLayerInfosSet(const Dtk_LayerInfosSetPtr &inToWrite)
jtw_EndWrite
Dtk_ErrorStatus jtw_EndWrite()
Dtk_string
This is a high level string class.
Definition: dtk_string.hpp:58
Dtk_Jtw_Interface::colorstrategy
colorstrategy
Definition: jtw.h:16
Dtk_Jtw_Interface::keepsubcolor
@ keepsubcolor
Definition: jtw.h:17
Dtk_Jtw_Interface::meters
@ meters
Definition: jtw.h:45
Dtk_Jtw_Interface::kilometers
@ kilometers
Definition: jtw.h:51
Dtk_Jtw_Interface::ConnectPMI_Geom
Dtk_ErrorStatus ConnectPMI_Geom(Dtk_Int64 inIdfdt, Dtk_Int64 inGeomid, type_detk inTypegeom, const Dtk_tab< Dtk_Int64 > &inRoute=Dtk_tab< Dtk_Int64 >(), Dtk_ID inBodyID=0)
Connect a PMI on a body face/edge/vertex.
Dtk_Jtw_Interface::CloseLastInstance
Dtk_ErrorStatus CloseLastInstance()
Close the last opened node.
Dtk_Jtw_Interface::version1010
@ version1010
Definition: jtw.h:39
JTW_VERSION_9_5
#define JTW_VERSION_9_5
Definition: jtw.h:233
Dtk_bool
char Dtk_bool
Definition: define.h:725
Dtk_Jtw_Interface::version109
@ version109
Definition: jtw.h:38
Dtk_Jtw_Interface::version90
@ version90
Definition: jtw.h:23
jtw_ConnectFdt_Geom
Dtk_ErrorStatus jtw_ConnectFdt_Geom(Dtk_Int64 inIdfdt, Dtk_Int64 inGeomid, type_detk inTypegeom, const Dtk_tab< Dtk_Int64 > &inRoute=Dtk_tab< Dtk_Int64 >(), Dtk_ID inBodyID=0)
JTW_COLOR_DEFAULT
#define JTW_COLOR_DEFAULT
Definition: jtw.h:230
Dtk_Jtw_Interface::xtbrep
@ xtbrep
Definition: jtw.h:13
Dtk_Jtw_Interface::unit
unit
Definition: jtw.h:42
jtw_CloseChild
Dtk_ErrorStatus jtw_CloseChild()
Dtk_Jtw_Interface::ExistIdPart
Dtk_bool ExistIdPart(Dtk_Int64 inIdpart) const
Ask the writer if a part already exist.
Dtk_Jtw_Interface::centimeters
@ centimeters
Definition: jtw.h:44
Dtk_Jtw_Interface::version95
@ version95
Definition: jtw.h:28
Dtk_Jtw_Interface::AddMetaData
Dtk_ErrorStatus AddMetaData(const Dtk_MetaDataPtr &inToWrite)
Add a Metdata into the current node.
Dtk_Int64
int64_t Dtk_Int64
Definition: define.h:692
Dtk_Jtw_Interface::~Dtk_Jtw_Interface
~Dtk_Jtw_Interface()
Destructor, finalise the process.
Dtk_Jtw_Interface::nobrep
@ nobrep
Definition: jtw.h:12
Dtk_Jtw_Interface::AddOverrideColor
Dtk_ErrorStatus AddOverrideColor(const Dtk_RGB &inRgb, const Dtk_tab< Dtk_Int64 > &inRoute, Dtk_ID inBodyID=0)
Set an override color for a specific instance.
jtw_AddBodyMultiLOD
Dtk_ErrorStatus jtw_AddBodyMultiLOD(const Dtk_BodyPtr &inBody, const Dtk_tab< Dtk_Float32 > &inLodDatas, Dtk_Float32 inLossytol=0)
Dtk_Jtw_Interface::version106
@ version106
Definition: jtw.h:35
jtw_AddAxisSystem
Dtk_ErrorStatus jtw_AddAxisSystem(const Dtk_AxisSystemPtr &inToWrite, Dtk_Int64 idaxis=-1)
Dtk_ErrorStatus
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
Dtk_Jtw_Interface::version107
@ version107
Definition: jtw.h:36
Dtk_Jtw_Interface::AddPMI
Dtk_ErrorStatus AddPMI(const Dtk_FdtPtr &inPMI, Dtk_Int64 inIdpmi=-1)
Add a fdt into the current node.
Dtk_Jtw_Interface::AddAxisSystem
Dtk_ErrorStatus AddAxisSystem(const Dtk_AxisSystemPtr &inAxisSystem, Dtk_Int64 inIdaxis=-1)
Add an axis system into the current node.
Dtk_Jtw_Interface::decimeters
@ decimeters
Definition: jtw.h:50
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
Dtk_Jtw_Interface::inches
@ inches
Definition: jtw.h:46
Dtk_Jtw_Interface::version91
@ version91
Definition: jtw.h:24
JTW_UNIT_MILLIMETERS
#define JTW_UNIT_MILLIMETERS
Definition: jtw.h:234
Dtk_Jtw_Interface::version80
@ version80
Definition: jtw.h:22
jtw_AddMesh
Dtk_ErrorStatus jtw_AddMesh(const Dtk_MeshPtr &inMesh, Dtk_Float32 inLossytol=0)
Dtk_Jtw_Interface::version92
@ version92
Definition: jtw.h:25
type_detk
type_detk
Definition: define.h:32
Dtk_Jtw_Interface::yards
@ yards
Definition: jtw.h:48
Dtk_Jtw_Interface::LastInstance_SetInvisible
Dtk_ErrorStatus LastInstance_SetInvisible()
Set previously opened instance as invisible.
Dtk_Jtw_Interface::AddModelView
Dtk_ErrorStatus AddModelView(const Dtk_ModelDisplayPtr &inModelview, Dtk_Int64 inIdmodelview=-1)
Add a modelView into the current node.
jtw_AddReferenceGeometry
Dtk_ErrorStatus jtw_AddReferenceGeometry(const Dtk_BodyPtr &inToWrite, Dtk_Int64 idref=-1)
Dtk_Jtw_Interface::micrometers
@ micrometers
Definition: jtw.h:49
Dtk_Jtw_Interface::version93
@ version93
Definition: jtw.h:26
Dtk_Jtw_Interface::version108
@ version108
Definition: jtw.h:37
JTW_BREP_XT
#define JTW_BREP_XT
Definition: jtw.h:229
Dtk_tab
This is a high level array class.
Definition: util_stl_dtk.hpp:85
jtw_AddMetaData
Dtk_ErrorStatus jtw_AddMetaData(const Dtk_MetaDataPtr &inToWrite)
Dtk_Jtw_Interface::millimeters
@ millimeters
Definition: jtw.h:43
Dtk_Jtw_Interface::miles
@ miles
Definition: jtw.h:53
Dtk_Jtw_Interface::version101
@ version101
Definition: jtw.h:30
Dtk_Jtw_Interface::LastInstance_SetInstanceID
Dtk_ErrorStatus LastInstance_SetInstanceID(Dtk_Int64 inInstanceID)
Set an instance ID to previously opened instance.
Dtk_Jtw_Interface::Dtk_Jtw_Interface
Dtk_Jtw_Interface(const Dtk_string &inFileWritten, Dtk_ErrorStatus &outErr, breptype inBrep=nobrep, writeversion inVersion=version95, unit inUnit=millimeters)
Constructor, initialize the Jt Writer
Dtk_Jtw_Interface
This is Jt Interface class used to write Jt files.
Definition: jtw.h:8
Dtk_Jtw_Interface::AddMesh
Dtk_ErrorStatus AddMesh(const Dtk_MeshPtr &inToWrite, Dtk_Float32 inLossytol=0)
Add a mesh into the current node.
jtw_InitWrite
Dtk_ErrorStatus jtw_InitWrite(Dtk_string inFileWritten, Dtk_string inLogFile, Licence_dtk inLicFct=NULL, int inExptype=0, int inBreptype=1, int inVersion=95, int inUnit=0)
Dtk_Jtw_Interface::OpenInstance
Dtk_ErrorStatus OpenInstance(const Dtk_string &inName, Dtk_Int64 inIdpart, const Dtk_transfo &inTrans=Dtk_transfo(), const Dtk_string &inExternfile=Dtk_string())
Open a new Instance for the assembly writing.
Dtk_RGB
Definition: dtk_rgb.hpp:7
Dtk_Jtw_Interface::ConnectPMI_ModelView
Dtk_ErrorStatus ConnectPMI_ModelView(Dtk_Int64 inIdpmi, Dtk_Int64 inIdModelView, const Dtk_tab< Dtk_Int64 > &inRoute=Dtk_tab< Dtk_Int64 >())
Connect a PMI on a ModelView.
Dtk_Jtw_Interface::ConnectPMI_PMI
Dtk_ErrorStatus ConnectPMI_PMI(Dtk_Int64 inIdpmifrom, Dtk_Int64 inIdpmito, const Dtk_tab< Dtk_Int64 > &inRoute=Dtk_tab< Dtk_Int64 >())
Connect a PMI on another PMI.
Dtk_Jtw_Interface::AddLayerInfosSet
Dtk_ErrorStatus AddLayerInfosSet(const Dtk_LayerInfosSetPtr &inToWrite)
Add a Layer informations.
Dtk_Jtw_Interface::AddReferenceGeometry
Dtk_ErrorStatus AddReferenceGeometry(const Dtk_BodyPtr &inRefgeom, Dtk_Int64 inIdrefgeom=-1)
Add a reference geometry into the current node.
Licence_dtk
char *(* Licence_dtk)(char *)
Definition: str_def.h:71
jtw_AddModelView
Dtk_ErrorStatus jtw_AddModelView(const Dtk_ModelDisplayPtr &inMdl, Dtk_Int64 inIdModelView=-1)
Dtk_Jtw_Interface::overwritecolor
@ overwritecolor
Definition: jtw.h:18
Dtk_Jtw_Interface::AddBody
Dtk_ErrorStatus AddBody(const Dtk_BodyPtr &inToWrite, const Dtk_tab< Dtk_Float32 > &makelods=Dtk_tab< Dtk_Float32 >(), Dtk_Float32 inLossytol=0)
Add a body into the current node.
Dtk_Jtw_Interface::mils
@ mils
Definition: jtw.h:52
Dtk_Jtw_Interface::AddOverrideColor
Dtk_ErrorStatus AddOverrideColor(const Dtk_LightMapPtr &inLightmap, const Dtk_tab< Dtk_Int64 > &inRoute, Dtk_ID inBodyID=0)
Set a Lightmap for a specific instance.
Dtk_Jtw_Interface::LastInstance_SetInstanceColor
Dtk_ErrorStatus LastInstance_SetInstanceColor(const Dtk_LightMapPtr &inLightmap, colorstrategy inColorstrategy=keepsubcolor)
Set a Lightmap to previously opened instance. A lightmap is more complete that Dtk_RGB,...
Dtk_Jtw_Interface::version103
@ version103
Definition: jtw.h:32