DATAKIT SDK  V2026.4
testlibobjwrite.cpp File Reference

Functions

DtkErrorStatus ObjWriteSample (const Dtk_string &inResultDirectory)
 
DtkErrorStatus StandardObjSample (const Dtk_string &inResultDirectory)
 Entry point: writes a textured cube and a per-face colored cube mesh into a sample.obj file. More...
 

Function Documentation

◆ ObjWriteSample()

DtkErrorStatus ObjWriteSample ( const Dtk_string &  inResultDirectory)
78 {
79  std::cout << std::endl << "----------------------------------------------" << std::endl;
80  std::cout << "Obj Write start" << std::endl;
81  //Standard Obj Sample File Processing
82  DtkErrorStatus errorStatus = StandardObjSample( inResultDirectory );
83  std::cout << "Obj Write end" << std::endl;
84  return errorStatus;
85 }

◆ StandardObjSample()

DtkErrorStatus StandardObjSample ( const Dtk_string &  inResultDirectory)

Entry point: writes a textured cube and a per-face colored cube mesh into a sample.obj file.

16 {
17  Dtk_ErrorStatus errorStatus = dtkNoError;
18  DtkErrorStatus status;
19  Dtk_MeshPtr cubeMesh = NULL;
20  Dtk_MeshPtr texturedMesh = NULL;
21  Dtk_string outputFileName, outputDirectory;
22  Dtk_transfo transfo;
23  Dtk_dir dir( 5, 0, 0 );
24  transfo.addTranslate( dir );
25 
26  // Choosing output directory and file name
27  outputDirectory = inResultDirectory + L"Obj/";
28  outputDirectory.FixPathSeparator();
29  outputDirectory.mkdir();
30  outputFileName = outputDirectory + L"sample.obj";
31 
32  // Cube Sample
33  cubeMesh = sampleWriter::CreateMeshCube();
35 
36  // Cylinder Sample
37  texturedMesh = sampleWriter::CreateTexturedMeshCube( inResultDirectory + L"../InputFiles/Images/" );
38 
39  // First we initialize writing
40  Objw::WriteOptions options;
41  options.m_UseRender = DTK_TRUE;
42  status = Objw::InitWrite( outputFileName, Dtk_string( "testobjw.log" ), options );
43 
44  if( status != 0 )
45  {
47  std::cout << "error : " << dtkTypeError( status ).c_str() << std::endl;
48  return status;
49  }
50 
51  // Lets write a small part composed by one textured cube and one cube with colors
52 
53  // Let's name the textured cube
54  texturedMesh->info()->SetName( "TexturedCube" );
55 
56  // Let's write the textured cube
57  if( errorStatus == dtkNoError )
58  errorStatus = Objw::WriteEntity( Dtk_EntityPtr::DtkDynamicCast( texturedMesh ) );
59 
60  // Let's name the colored cube
61  cubeMesh->info()->SetName( "Cube" );
62  // We translate it before writing
63  cubeMesh->Transform( transfo );
64  // And finally write it
65  if( errorStatus == dtkNoError )
67 
68  // We finish process and free memory allocated for writing
69  if( errorStatus == dtkNoError )
70  errorStatus = Objw::EndWrite();
71 
72  std::cout << "=> " << outputFileName.c_str() << std::endl;
73 
74  return errorStatus;
75 }
Dtk_transfo
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
sampleWriter::CreateMeshCube
Dtk_MeshPtr CreateMeshCube()
Mesh Cube sample.
Definition: testcreatemesh.cpp:207
Objw::WriteEntity
Dtk_ErrorStatus WriteEntity(const Dtk_EntityPtr &inEntity, Dtk_transfo inMat=Dtk_transfo())
Write the entity provided in parameter in a node.
StandardObjSample
DtkErrorStatus StandardObjSample(const Dtk_string &inResultDirectory)
Entry point: writes a textured cube and a per-face colored cube mesh into a sample....
Definition: testlibobjwrite.cpp:15
DTK_TRUE
#define DTK_TRUE
Definition: define.h:726
Dtk_string
This is a high level string class.
Definition: dtk_string.hpp:53
Objw::WriteOptions::m_UseRender
bool m_UseRender
Use of Dtk_RGB or Dtk_RenderInfos.
Definition: objw.hpp:29
sampleWriter::FillFacesColors
void FillFacesColors(Dtk_MeshPtr &inoutCubeMesh)
Filling mesh faces with colors.
Definition: testcreatemesh.cpp:244
Objw::WriteOptions
This class provides several options to tune Obj Writer. It must be provided to Objw::InitWrite method...
Definition: objw.hpp:18
sampleWriter::CreateTexturedMeshCube
Dtk_MeshPtr CreateTexturedMeshCube(const Dtk_string &inImageDirectory)
Textured Mesh Cube sample.
Definition: testcreatemesh.cpp:272
Objw::InitWrite
DtkErrorStatus InitWrite(const Dtk_string &inOutputFile, const Dtk_string &inLogFile, WriteOptions &inOptions)
Initialize the Obj Writer
Dtk_SmartPtr< Dtk_Entity >::DtkDynamicCast
static Dtk_SmartPtr< Dtk_Entity > DtkDynamicCast(const Dtk_SmartPtr< T2 > &p)
Definition: util_ptr_dtk.hpp:101
Dtk_ErrorStatus
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
dtkTypeError
Dtk_string dtkTypeError(Dtk_Int32 errNumero)
Objw::EndWrite
DtkErrorStatus EndWrite()
Creation of the output file and free the Obj Writer
Dtk_string::c_str
const char * c_str() const
Retrieve the ASCII conversion string.
Dtk_string::mkdir
int mkdir() const
File Utility : Create a Directory.
Dtk_string::FixPathSeparator
void FixPathSeparator()
File Utility : Fixes path separator consistency. It lets you replace the '\' or '/' by the OS needed ...
Dtk_transfo::addTranslate
void addTranslate(const Dtk_dir &V)
Translate the Dtk_transfo.
dtkNoError
@ dtkNoError
Definition: error_dtk.hpp:151
Dtk_dir
This is a mathematical direction class.
Definition: dtk_dir.hpp:14