DATAKIT API  V2025.2
CatiaV5 Write Sample
//start_of_maincatiav5write
//This sample show you how to write layer data - Layers Names and Layer Filters -
{
//Keep in mind that layer data can only be set into CATPart context.
//We will add 9 layers to the layer info set so we have to allocate the correct size
//we use a layer Idx to correctly handle the layers count
Dtk_Size_t LayerIdx = 0;
//1st layer - 888 -
Dtk_Size_t Layer888Idx = LayerIdx++; layerInfoSet->SetLayerID( Layer888Idx, 888 ); layerInfoSet->SetLayerName( Layer888Idx, L"My First Layer" );
//2nd layer - 111 -
Dtk_Size_t Layer111Idx = LayerIdx++; layerInfoSet->SetLayerID( Layer111Idx, 111 ); layerInfoSet->SetLayerName( Layer111Idx, L"My Second Layer" );
//3rd layer - 987 -
Dtk_Size_t Layer987Idx = LayerIdx++; layerInfoSet->SetLayerID( Layer987Idx, 987 ); layerInfoSet->SetLayerName( Layer987Idx, L"My Third Layer" );
//4th layer - 4 -
Dtk_Size_t Layer4Idx = LayerIdx++; layerInfoSet->SetLayerID( Layer4Idx, 4 );
//5th layer - 5 -
Dtk_Size_t Layer5Idx = LayerIdx++; layerInfoSet->SetLayerID( Layer5Idx, 5 );
//6th layer - 6 -
Dtk_Size_t Layer6Idx = LayerIdx++; layerInfoSet->SetLayerID( Layer6Idx, 6 );
//7th layer - 10 -
Dtk_Size_t Layer10Idx = LayerIdx++; layerInfoSet->SetLayerID( Layer10Idx, 10 );
//8th layer - 11 -
Dtk_Size_t Layer11Idx = LayerIdx++; layerInfoSet->SetLayerID( Layer11Idx, 11 );
//9th layer - 12 -
Dtk_Size_t Layer12Idx = LayerIdx++; layerInfoSet->SetLayerID( Layer12Idx, 12 );
// 2 layer filters :
//The first one gathers layers 4 - 5 - 6
Dtk_LayerFilterInfosPtr filter4_5_6 = layerInfoSet->CreateLayerFilterInfos( "FILTER_4-5-6", "MyDescription", DTK_FALSE, DTK_FALSE );
Dtk_tab<Dtk_Size_t> layers4_5_6;
layers4_5_6.push_back( Layer4Idx ); layers4_5_6.push_back( Layer5Idx ); layers4_5_6.push_back( Layer6Idx );
filter4_5_6->SelectLayers( layers4_5_6 );
//The second one gathers layers 10 - 11 - 12
Dtk_LayerFilterInfosPtr filter10_11_12 = layerInfoSet->CreateLayerFilterInfos( "FILTER_10-11-12" );
Dtk_tab<Dtk_Size_t> layers10_11_12;
layers10_11_12.push_back( Layer10Idx ); layers10_11_12.push_back( Layer11Idx ); layers10_11_12.push_back( Layer12Idx );
filter10_11_12->SelectLayers( layers10_11_12 );
//We send layer data to the writer
return catiav5w::SetLayerData( layerInfoSet );
}
//This sample show you how to write a body with an unbounded surface and wireframe entity.
{
// We construct a body with a solid
// We construct a body with an Open Shell
// We construct a body with Wireframe
// We construct a body with a Point
// We construct a body with an Infinite Plane
// We construct a body with an Infinite Line / Axis
// We construct a mesh
Dtk_UUID PartUUID;
//You init the Part writer
err = catiav5w::InitPart( inOutputFile, inReferenceName, PartUUID );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// We create a new group of entities with a name (you must create at least one group)
// This sample make a surfacic group use to construct a solid
Dtk_InfoPtr MyCurveSetInfo = Dtk_Info::create();
MyCurveSetInfo->SetName( L"MyCurveSet" );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// Close the group of entities
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
Dtk_InfoPtr MyOpenShellInfo = Dtk_Info::create();
MyOpenShellInfo->SetName( L"MyOpenShell" );
MyOpenShellInfo->SetLayer( 123 );
MyOpenShellInfo->SetColor( Dtk_RGB( 255, 255, 0 ) );
MyOpenShellInfo->SetBlankedStatus( DTK_TRUE );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
Dtk_InfoPtr& body_openshellInfo = body_openshell->info();
if( body_openshellInfo.IsNULL() )
{
body_openshellInfo = Dtk_Info::create();
}
body_openshellInfo->SetColor( Dtk_RGB( 0, 255, 0 ) );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// Close the group of entities
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// We create a solid group with a name
Dtk_InfoPtr MySolidInfo = Dtk_Info::create();
MySolidInfo->SetName( L"My Solid" );
MySolidInfo->SetLayer( 12 );
MySolidInfo->SetColor( Dtk_RGB( 255, 0, 255 ) );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// And we write body in the catiav5 file
Dtk_InfoPtr& body_solidInfo = body_solid->info();
if( body_solidInfo.IsNULL() )
{
body_solidInfo = Dtk_Info::create();
}
body_solidInfo->SetColor( Dtk_RGB( 255, 0, 0 ) );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// Close the group of entities
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
Dtk_InfoPtr MyOpenShellForMeshInfo = Dtk_Info::create();
MyOpenShellForMeshInfo->SetName( L"MyOpenShellForMesh" );
err = catiav5w::CreateNode( catiav5w::NodeTypeGeometricSet, MyOpenShellForMeshInfo );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// Close the group of entities
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
Dtk_InfoPtr MyOpenShellForPlaneInfo = Dtk_Info::create();
MyOpenShellForPlaneInfo->SetName( L"MyOpenShellForPlane" );
err = catiav5w::CreateNode( catiav5w::NodeTypeGeometricSet, MyOpenShellForPlaneInfo );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// Close the group of entities
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
Dtk_InfoPtr MyOpenShellForInifiniteLineInfo = Dtk_Info::create();
MyOpenShellForInifiniteLineInfo->SetName( L"MyOpenShellForInifiniteLine" );
err = catiav5w::CreateNode( catiav5w::NodeTypeGeometricSet, MyOpenShellForInifiniteLineInfo );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// Close the group of entities
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
//Now we will create an AxisSystem
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
//we write it now
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
//We create a default Named View - Camera -
//For that we firstly create a camera
Dtk_pnt( 200, 100, 100 ), //Origin Point
Dtk_pnt( 0, 100, 100 ), //Target Point
100., 100., //SemiWidth / SemiHeight
Dtk_dir( 0, 1, 0 ) ); //Up Vector - can be reprocessed by CatiaV5 if needed -
//We create the model display from the camera
//We don't put any clipping entity - not used by V5 write -
//The 3rd parameter set the Named View as the default one - used at the V5 file opening -
//We don't need any name because the default Named View name is hardcoded
//Finally we write the NamedView
err = catiav5w::WriteNamedView( NamedView );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
//Now we create another named view
Cam = Dtk_Camera::Create( Dtk_pnt( 100, 100, 100 ), Dtk_pnt( 0, 0, 0 ), 100., 100., Dtk_dir( 0, 1, 0 ) );
//Not set as default => will appear in the 'Named Views' Dialog Box into Catia V5
NamedView = Dtk_ModelDisplay::Create( Cam, NULL, DTK_FALSE );
NamedView->info() = Dtk_Info::create();
//We put the Named view name
NamedView->info()->SetName( L"MyNamedView" );
//Finally we write the NamedView
err = catiav5w::WriteNamedView( NamedView );
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
//Now we write layer data - Layers Names and Layer Filters -
err = WriteLayerData();
if( err != dtkNoError )
{
std::cout << "error : " << dtkTypeError( err ) << std::endl;
return err;
}
// Close the current part
return err;
}
Dtk_ErrorStatus ProcessAsm( const Dtk_string &inResultDirectory )
{
Dtk_string outputDirectory;
outputDirectory = inResultDirectory + "CatiaV5/";
outputDirectory.FixPathSeparator();
Dtk_string CATPartFileName = outputDirectory + L"V5_sample.CATPart";
Dtk_string V5FileName = inResultDirectory + L"CatiaV5/9.CATPart";
Dtk_string CGRFileName = inResultDirectory + L"CGR/Engine.cgr";
Dtk_string V4ModelFileName = inResultDirectory + L"CatiaV4/EngineComponent.model";
Dtk_string SubProductFileName = outputDirectory + L"SubProduct.CATProduct";
Dtk_string RootProductFileName = outputDirectory + L"RootProduct.CATProduct";
CATPartFileName.FixPathSeparator();
V5FileName.FixPathSeparator();
CGRFileName.FixPathSeparator();
V4ModelFileName.FixPathSeparator();
SubProductFileName.FixPathSeparator();
RootProductFileName.FixPathSeparator();
Dtk_transfo TransformationMatrix;
//The ProcessPart is an user implemented function to create a part
err = ProcessPart( CATPartFileName, L"testPart" );
//Reference creation to external files - V4 / CGR / existing v5 file -
Dtk_ID PartID, V5ID, V4ID, CgrID;
{
//We create Document References to the CATPart file we create
err = catiav5w::CreatePartDocId( CATPartFileName, L"PartFile", PartID );
// to an existing CATPart file
err = catiav5w::CreatePartDocId( V5FileName, L"V5File", V5ID );
//...and to a CGR file
err = catiav5w::CreateCGRDocId( CGRFileName, "CGRFile", CgrID );
//...and finally to a CATIA V4 '.model' file
err = catiav5w::CreateV4ModelDocId( V4ModelFileName, "V4File", V4ID );
}
//We create the SubProduct
Dtk_ID SubProductID, VirtualSubComponent1ID, VirtualSubComponent2ID, PartInstanceID, VirtualSubComponent1_Instance1ID;
Dtk_ID PartInstanceID2, CGRInstanceID, V4InstanceID, V5InstanceID, VirtualComponent1_Instance1ID;
{
//we init a CATProduct context...
err = catiav5w::InitProduct( SubProductFileName, "SubProduct" );
//we start a virtual component prototype
err = catiav5w::InitVirtualComponent( "VirtualSubComponent1" );
TransformationMatrix.setOrigin( 0, 0, 150 );
err = catiav5w::AddInstance( PartID, L"PartInstance", TransformationMatrix, PartInstanceID );
//we end the virtual component prototype
err = catiav5w::EndVirtualComponent( VirtualSubComponent1ID );
//we start another virtual component prototype
err = catiav5w::InitVirtualComponent( "VirtualComponent1" );
//we add the sub component instance...
TransformationMatrix.setOrigin( 0.0, 0.0, 0.0 );
err = catiav5w::AddVirtualComponentInstance( VirtualSubComponent1ID, L"VirtualSubComponent1_Instance1", TransformationMatrix, VirtualSubComponent1_Instance1ID );
//we close the virtual component prototype
err = catiav5w::EndVirtualComponent( VirtualSubComponent2ID );
//we insert the created Part instance...
TransformationMatrix.setOrigin( 0.0, 0.0, 0.0 );
err = catiav5w::AddInstance( PartID, L"PartInstance", TransformationMatrix, PartInstanceID2 );
//...a CGR instance
TransformationMatrix.setOrigin( 0.0, 500.0, 0.0 );
err = catiav5w::AddInstance( CgrID, L"CGRInstance", TransformationMatrix, CGRInstanceID );
//...and a V4 instance
TransformationMatrix.setOrigin( 0.0, -500.0, 0.0 );
err = catiav5w::AddInstance( V4ID, L"V4Instance", TransformationMatrix, V4InstanceID );
//...and an existing V5 instance
TransformationMatrix.setOrigin( 0.0, -1000.0, 0.0 );
err = catiav5w::AddInstance( V5ID, L"V5Instance", TransformationMatrix, V5InstanceID );
//...and the main component instance
TransformationMatrix.setOrigin( 0.0, 1000.0, 0.0 );
err = catiav5w::AddVirtualComponentInstance( VirtualSubComponent2ID, L"VirtualComponent1_Instance1", TransformationMatrix, VirtualComponent1_Instance1ID );
//we close the CATProduct context and retrieve the resulting DocID
err = catiav5w::EndProduct( SubProductID );
}
//Now we create the RootProduct
Dtk_ID RootProductID, PartInstance2ID, SubProductInstance1ID, SubProductInstance2ID;
{
//we create another CATProduct context
err = catiav5w::InitProduct( RootProductFileName, "RootProduct" );
//and we insert another time the a part instance - multinstancing management -
TransformationMatrix.setOrigin( 0.0, 0.0, 50.0 );
err = catiav5w::AddInstance( PartID, L"PartInstance2", TransformationMatrix, PartInstance2ID );
//and two instances to the first CATProduct file
TransformationMatrix.setOrigin( 1000.0, 0.0, 0.0 );
err = catiav5w::AddInstance( SubProductID, L"SubProductInstance1", TransformationMatrix, SubProductInstance1ID );
TransformationMatrix.setOrigin( -1000.0, 0.0, 0.0 );
err = catiav5w::AddInstance( SubProductID, L"SubProductInstance2", TransformationMatrix, SubProductInstance2ID );
//Now we create an instance PathID to handle override
//We want to override SubProductInstance2/VirtualComponent1_Instance1/VirtualSubComponent1_Instance1/PartInstance
{
Path1.push_back( SubProductInstance2ID );
Path1.push_back( VirtualComponent1_Instance1ID );
Path1.push_back( VirtualSubComponent1_Instance1ID );
Path1.push_back( PartInstanceID );
//We override Blanked status and color
}
{
Path2.push_back( SubProductInstance1ID );
Path2.push_back( CGRInstanceID );
//We override Color and Alpha
}
//finally we close the second CATProduct...
err = catiav5w::EndProduct( RootProductID );
}
cout << "=> " << RootProductFileName.c_str() << endl << "CatiaV5 Write end" << endl;
return err;
}
int CatiaV5WriteSample( const Dtk_string &inResultDirectory )
{
// First we initialize writing with name of files and protection fonction
//First you have to initialize the CATIA V5 writer
Dtk_string outputDirectory;
cout << endl << "----------------------------------------------" << endl;
cout << "CatiaV5 Write start" << endl;
// Choosing output directory and file name
outputDirectory = inResultDirectory + L"CatiaV5/";
outputDirectory.FixPathSeparator();
outputDirectory.mkdir();
Dtk_ErrorStatus st = options.SetFileRelease( 19 );
if( st != dtkNoError )
{
cout << "error : " << dtkTypeError( st ).c_str() << endl;
return st;
}
st = catiav5w::InitWrite( outputDirectory + L"V5W_LogFile.log", NULL, options );
if( st != dtkNoError )
{
cout << "error : " << dtkTypeError( st ).c_str() << endl;
return st;
}
ProcessAsm( inResultDirectory );
//...and the Main writter
return dtkNoError;
}
//end_of_maincatiav5write
sampleWriter::CreateAxis
Dtk_BodyPtr CreateAxis()
Definition: testcreatecube.cpp:1492
Dtk_ModelDisplay::Create
static Dtk_ModelDisplayPtr Create(const Dtk_CameraPtr &inCamera, const Dtk_EntityPtr &inClippingEntity, const Dtk_bool inIsActivated)
Full featured constructor.
ProcessAsm
Dtk_ErrorStatus ProcessAsm(const Dtk_string &inResultDirectory)
Definition: testlibcatiav5write.cpp:350
Dtk_ID
uint32_t Dtk_ID
Definition: define.h:689
Dtk_transfo
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
catiav5w::InitVirtualComponent
Dtk_ErrorStatus InitVirtualComponent(const Dtk_string &inReferenceName, const catiav5w::FileDescription &inFileDescription=catiav5w::FileDescription())
Initialize a virtual component during CATProduct process.
catiav5w::OverrideInstanceAlphaWithPathID
Dtk_ErrorStatus OverrideInstanceAlphaWithPathID(const PathID &inInstancePathId, const Dtk_UChar8 inInstanceAlpha)
Override the Alpha of an instance in a Sub Product.
catiav5w::AddVirtualComponentInstance
Dtk_ErrorStatus AddVirtualComponentInstance(const Dtk_ID &inDocId, const Dtk_string &inInstanceName, const Dtk_transfo &inTransfo, Dtk_ID &outInstanceId)
Add an instance to a DocID into the Current (Sub/Root) CATProduct.
Dtk_Info::SetName
Dtk_ErrorStatus SetName(Dtk_string inName)
catiav5w::WriteOptions
This class provides several options to tunes CatiaV5 Writter. It must be provided to catiav5w::InitWr...
Definition: catiav5w.hpp:41
Dtk_transfo::setOrigin
void setOrigin(const Dtk_pnt &O)
Set a new O center point.
catiav5w::NodeTypeGeometricSet
@ NodeTypeGeometricSet
Definition: catiav5w.hpp:428
DTK_TRUE
#define DTK_TRUE
Definition: define.h:727
ProcessPart
Dtk_ErrorStatus ProcessPart(const Dtk_string &inOutputFile, const Dtk_string &inReferenceName)
Definition: testlibcatiav5write.cpp:70
sampleWriter::CreateInfinitePlane
Dtk_BodyPtr CreateInfinitePlane()
Definition: testcreatecube.cpp:1435
Dtk_string
This is a high level string class.
Definition: dtk_string.hpp:58
Dtk_Size_t
size_t Dtk_Size_t
Definition: define.h:712
catiav5w::WriteEntity
Dtk_ErrorStatus WriteEntity(const Dtk_EntityPtr &inEntity)
Write the entity provided in parameter.
Dtk_UUID
Definition: dtk_uuid.hpp:8
sampleWriter::CreateAxisSystem
Dtk_AxisSystemPtr CreateAxisSystem()
Definition: testcreatecube.cpp:1465
DTK_FALSE
#define DTK_FALSE
Definition: define.h:728
catiav5w::OverrideInstanceColorWithPathID
Dtk_ErrorStatus OverrideInstanceColorWithPathID(const PathID &inInstancePathId, const Dtk_RGB &inInstanceColor)
Override the Color of an instance in a Sub Product.
catiav5w::CreateNode
Dtk_ErrorStatus CreateNode(const NodeType &inNodeType, const Dtk_string &inNodeName=Dtk_string())
Create a node in the Specification Tree.
catiav5w::InitProduct
Dtk_ErrorStatus InitProduct(const Dtk_string &inFileName, const Dtk_string &inReferenceName, const catiav5w::FileDescription &inFileDescription=catiav5w::FileDescription())
Initialize a sub Product during CATProduct process.
Dtk_Info::SetBlankedStatus
Dtk_ErrorStatus SetBlankedStatus(const Dtk_Int32 &inBlankedStatus)
catiav5w::CreateCGRDocId
Dtk_ErrorStatus CreateCGRDocId(const Dtk_string &inCGRFileName, const Dtk_string &inCGRName, Dtk_ID &outDocId)
Create a CGR Reference and DocID related to a given CGR File.
catiav5w::inReferenceName
const Dtk_string & inReferenceName
Definition: catiav5w.hpp:456
catiav5w::InitPart
Dtk_ErrorStatus InitPart(const Dtk_string &inOutputFile, const Dtk_string &inReferenceName, Dtk_UUID &outPartUUID, const catiav5w::FileDescription &inFileDescription=catiav5w::FileDescription())
Initialize the part
sampleWriter::CreatePoint
Dtk_BodyPtr CreatePoint()
Definition: testcreatecube.cpp:1407
catiav5w::NodeTypePartBody
@ NodeTypePartBody
Definition: catiav5w.hpp:429
catiav5w::EndVirtualComponent
Dtk_ErrorStatus EndVirtualComponent(Dtk_ID &outDocId)
End - and write - the virtual component initialized by catiav5w::InitVirtualComponent.
Dtk_SmartPtr< Dtk_Entity >::DtkDynamicCast
static Dtk_SmartPtr< Dtk_Entity > DtkDynamicCast(const Dtk_SmartPtr< T2 > &p)
Definition: util_ptr_dtk.hpp:101
catiav5w::AddInstance
Dtk_ErrorStatus AddInstance(const Dtk_ID &inDocId, const Dtk_string &inInstanceName, const Dtk_transfo &inTransfo, Dtk_ID &outInstanceId)
Add an instance to a DocID into the Current (Sub/Root) CATProduct.
Dtk_ErrorStatus
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
Dtk_SmartPtr::IsNULL
Dtk_bool IsNULL() const
Definition: util_ptr_dtk.hpp:118
catiav5w::CreateV4ModelDocId
Dtk_ErrorStatus CreateV4ModelDocId(const Dtk_string &inV4ModelFileName, const Dtk_string &inV4ModelName, Dtk_ID &outDocId)
Create a V4 Model Reference and DocID related to a given V4 Model File.
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
dtkTypeError
Dtk_string dtkTypeError(Dtk_Int32 errNumero)
catiav5w::EndWrite
Dtk_ErrorStatus EndWrite()
Free the Catia V5 Writer
catiav5w::WriteOptions::SetFileRelease
Dtk_ErrorStatus SetFileRelease(const Dtk_UInt32 inRelease)
Sets the release for the written files.
Dtk_string::c_str
const char * c_str() const
Retrieve the ASCII conversion string.
catiav5w::CreatePartDocId
Dtk_ErrorStatus CreatePartDocId(const Dtk_string &inPartFileName, const Dtk_string &inPartName, Dtk_ID &outDocId)
Create a Part Reference and DocID related to a given CATPart.
sampleWriter::CreateMeshCylinder
Dtk_MeshPtr CreateMeshCylinder(int nbpoints)
Mesh Cylinder sample.
Definition: testcreatemesh.cpp:337
Dtk_string::mkdir
int mkdir() const
File Utility : Create a Directory.
Dtk_Info::SetLayer
Dtk_ErrorStatus SetLayer(const Dtk_Int32 &inLayer)
Dtk_pnt
This is a mathematical point class.
Definition: dtk_pnt.hpp:22
Dtk_string::FixPathSeparator
void FixPathSeparator()
File Utility : Fixes path separator consistency. It lets you replace the '\' or '/' by the OS needed ...
Dtk_Camera::Create
static Dtk_CameraPtr Create()
Base constructor.
Dtk_tab< Dtk_Size_t >
CatiaV5WriteSample
int CatiaV5WriteSample(const Dtk_string &inResultDirectory)
Definition: testlibcatiav5write.cpp:483
sampleWriter::CreateCube
Dtk_BodyPtr CreateCube()
Definition: testcreatecube.cpp:1249
catiav5w::EndProduct
Dtk_ErrorStatus EndProduct(Dtk_ID &outDocId)
Write effectively the Sub Product initialized by catiav5w::InitProduct.
catiav5w::CloseCurrentNode
Dtk_ErrorStatus CloseCurrentNode()
close the current node previously created by catiav5w::CreateNode.
catiav5w::SetLayerData
Dtk_ErrorStatus SetLayerData(const Dtk_LayerInfosSetPtr &inLayerDataSet)
Set Layer and LayerFilter Data in a CATPart context.
sampleWriter::CreateCurves
Dtk_BodyPtr CreateCurves()
Definition: testcreatecube.cpp:1292
catiav5w::WriteNamedView
Dtk_ErrorStatus WriteNamedView(const Dtk_ModelDisplayPtr &inNamedView)
Write the given ModelDisplay as NamedView - V5 camera -.
catiav5w::EndPart
Dtk_ErrorStatus EndPart()
Free data allocated by catiav5w::InitPart
Dtk_LayerInfosSet::Create
static Dtk_LayerInfosSetPtr Create(const Dtk_Size_t inNumLayers)
Base constructor.
dtkNoError
@ dtkNoError
Definition: error_dtk.hpp:140
Dtk_tab::push_back
void push_back(const T &x)
Inserts an element at the end of the array.
Definition: util_stl_dtk.hpp:417
catiav5w::InitWrite
Dtk_ErrorStatus InitWrite(const Dtk_string &inLogFile, Licence_dtk inLicFct, const WriteOptions &inOptions=WriteOptions())
Initialize the Catia V5 Writer
sampleWriter::CreateOpenShell
void CreateOpenShell(std::map< Dtk_ID, Dtk_EntityPtr > &outArrayTopo, const Dtk_BodyPtr &inDtkBody)
Definition: testcreatecube.cpp:1194
Dtk_RGB
Definition: dtk_rgb.hpp:7
Dtk_Info::SetColor
Dtk_ErrorStatus SetColor(const int &R, const int &G, const int &B)
Dtk_Info::create
static Dtk_SmartPtr< Dtk_Info > create()
WriteLayerData
Dtk_ErrorStatus WriteLayerData()
Definition: testlibcatiav5write.cpp:17
Dtk_dir
This is a mathematical direction class.
Definition: dtk_dir.hpp:15
catiav5w::OverrideBlankedStatusWithPathID
Dtk_ErrorStatus OverrideBlankedStatusWithPathID(const PathID &inInstancePathId, const Dtk_bool inBlankedStatus)
Override the Blanked Status of an instance in a Sub Product.