DATAKIT API  V2025.1
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  };
38  enum unit
39  {
42  meters = 2,
43  inches = 3,
44  feet = 4,
45  yards = 5,
49  mils = 9,
50  miles = 10
51  };
52 private:
53  void* vdata;
54  Dtk_Jtw_Interface(const Dtk_Jtw_Interface&) {} // uncopiable
55  Dtk_Jtw_Interface& operator=(const Dtk_Jtw_Interface&) { return *this; } // uncopiable
56  Dtk_string m_filename;
57 public:
64  Dtk_Jtw_Interface(const Dtk_string& inFileWritten, Dtk_ErrorStatus& outErr, breptype inBrep = nobrep,
65  writeversion inVersion = version95, unit inUnit = millimeters);
68 
69 // TreeControl
70 
78  Dtk_ErrorStatus OpenInstance(const Dtk_string& inName, const Dtk_transfo& inTrans = Dtk_transfo(), const Dtk_string& inExternfile = Dtk_string());
88  Dtk_ErrorStatus OpenInstance(const Dtk_string& inName, Dtk_Int64 inIdpart, const Dtk_transfo& inTrans = Dtk_transfo(), const Dtk_string& inExternfile = Dtk_string());
118  Dtk_bool ExistIdPart(Dtk_Int64 inIdpart) const;
119 
120 // Geometry
121 
129  Dtk_ErrorStatus AddBody(const Dtk_BodyPtr& inToWrite, const Dtk_tab<Dtk_Float32>& makelods = Dtk_tab<Dtk_Float32>(), Dtk_Float32 inLossytol = 0);
134  Dtk_ErrorStatus AddMesh(const Dtk_MeshPtr& inToWrite, Dtk_Float32 inLossytol = 0);
143 
144 // PMI
149  Dtk_ErrorStatus AddPMI(const Dtk_FdtPtr& inPMI, Dtk_Int64 inIdpmi = -1);
154  Dtk_ErrorStatus AddModelView(const Dtk_ModelDisplayPtr& inModelview, Dtk_Int64 inIdmodelview = -1);
159  Dtk_ErrorStatus AddAxisSystem(const Dtk_AxisSystemPtr& inAxisSystem, Dtk_Int64 inIdaxis = -1);
165  Dtk_ErrorStatus AddReferenceGeometry(const Dtk_BodyPtr& inRefgeom, Dtk_Int64 inIdrefgeom = -1);
166 
167 // connectors
168 
185  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);
199  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());
206  Dtk_ErrorStatus AddOverrideColor(const Dtk_RGB& inRgb, const Dtk_tab<Dtk_Int64>& inRoute, Dtk_ID inBodyID = 0);
213  Dtk_ErrorStatus AddOverrideColor(const Dtk_LightMapPtr& inLightmap, const Dtk_tab<Dtk_Int64>& inRoute, Dtk_ID inBodyID = 0);
214 };
215 
216 
217 
218 
219 
220 
221 
222 
223 // deprecated
224 
225 #define JTW_BREP_NONE 0
226 #define JTW_BREP_XT 1
227 #define JTW_COLOR_DEFAULT 0
228 #define JTW_COLOR_OVERWRITE 1
229 #define JTW_VERSION_8_0 80
230 #define JTW_VERSION_9_5 95
231 #define JTW_UNIT_MILLIMETERS 0
232 #define JTW_UNIT_CENTIMETERS 1
233 #define JTW_UNIT_METERS 2
234 #define JTW_UNIT_INCHES 3
235 #define JTW_UNIT_FEET 4
236 #define JTW_UNIT_YARDS 5
237 #define JTW_UNIT_MICROMETERS 6
238 #define JTW_UNIT_DECIMETERS 7
239 #define JTW_UNIT_KILOMETERS 8
240 #define JTW_UNIT_MILS 9
241 #define JTW_UNIT_MILES 10
242 Dtk_ErrorStatus jtw_InitWrite(Dtk_string inFileWritten, Dtk_string inLogFile, Licence_dtk inLicFct = NULL,
243  int inExptype = 0, int inBreptype = JTW_BREP_XT,
244  int inVersion = JTW_VERSION_9_5, int inUnit = JTW_UNIT_MILLIMETERS);
245 Dtk_ErrorStatus jtw_InitChild(const Dtk_string& inName, Dtk_Int64 inIdpart, Dtk_bool& outWasAlreadyInstancied,
246  const Dtk_transfo& inTrans = Dtk_transfo(), const Dtk_RGB& inRgb = Dtk_RGB(),
247  const Dtk_string& inNewsubfile = Dtk_string(),
248  int inColorstrategy = JTW_COLOR_DEFAULT, int inVisibility = 1, Dtk_Int64 inInstanceID = -1);
250 Dtk_ErrorStatus jtw_AddMesh(const Dtk_MeshPtr& inMesh, Dtk_Float32 inLossytol = 0);
251 Dtk_ErrorStatus jtw_AddBody(const Dtk_BodyPtr& inBody, Dtk_Float32 inLossytol = 0);
252 Dtk_ErrorStatus jtw_AddBodyMultiLOD(const Dtk_BodyPtr& inBody, const Dtk_tab<Dtk_Float32>& inLodDatas, Dtk_Float32 inLossytol = 0);
253 Dtk_ErrorStatus jtw_AddFdt(const Dtk_FdtPtr& inFdt, Dtk_Int64 inIdfdt = -1);
261 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);
263  const Dtk_tab<Dtk_Int64>& inRoute = Dtk_tab<Dtk_Int64>(), int inHide = 0, Dtk_ID inBodyID = 0,
264  const Dtk_transfo& inExplode = Dtk_transfo());
266 
267 #endif
268 
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:44
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:42
Dtk_Jtw_Interface::kilometers
@ kilometers
Definition: jtw.h:48
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.
JTW_VERSION_9_5
#define JTW_VERSION_9_5
Definition: jtw.h:230
Dtk_bool
char Dtk_bool
Definition: define.h:725
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:227
Dtk_Jtw_Interface::xtbrep
@ xtbrep
Definition: jtw.h:13
Dtk_Jtw_Interface::unit
unit
Definition: jtw.h:39
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:41
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:47
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
Dtk_Jtw_Interface::inches
@ inches
Definition: jtw.h:43
Dtk_Jtw_Interface::version91
@ version91
Definition: jtw.h:24
JTW_UNIT_MILLIMETERS
#define JTW_UNIT_MILLIMETERS
Definition: jtw.h:231
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:45
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:46
Dtk_Jtw_Interface::version93
@ version93
Definition: jtw.h:26
JTW_BREP_XT
#define JTW_BREP_XT
Definition: jtw.h:226
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:40
Dtk_Jtw_Interface::miles
@ miles
Definition: jtw.h:50
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:49
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