Blender V4.3
SceneExporter.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include <math.h>
12#include <stdio.h>
13#include <stdlib.h>
14
15#include "DNA_action_types.h"
16#include "DNA_anim_types.h"
17#include "DNA_armature_types.h"
20#include "DNA_curve_types.h"
21#include "DNA_image_types.h"
22#include "DNA_material_types.h"
23#include "DNA_mesh_types.h"
24#include "DNA_modifier_types.h"
25#include "DNA_object_types.h"
26#include "DNA_scene_types.h"
27#include "DNA_texture_types.h"
28#include "DNA_userdef_types.h"
29
30#include "BKE_constraint.h"
31#include "BKE_fcurve.hh"
32#include "BLI_fileops.h"
33#include "BLI_path_utils.hh"
34#include "ED_keyframing.hh"
35
36#include "COLLADASWAsset.h"
37#include "COLLADASWBaseInputElement.h"
38#include "COLLADASWBindMaterial.h"
39#include "COLLADASWColorOrTexture.h"
40#include "COLLADASWConstants.h"
41#include "COLLADASWEffectProfile.h"
42#include "COLLADASWImage.h"
43#include "COLLADASWInputList.h"
44#include "COLLADASWInstanceCamera.h"
45#include "COLLADASWInstanceController.h"
46#include "COLLADASWInstanceGeometry.h"
47#include "COLLADASWInstanceLight.h"
48#include "COLLADASWInstanceNode.h"
49#include "COLLADASWLibraryAnimations.h"
50#include "COLLADASWLibraryControllers.h"
51#include "COLLADASWLibraryEffects.h"
52#include "COLLADASWLibraryImages.h"
53#include "COLLADASWLibraryMaterials.h"
54#include "COLLADASWLibraryVisualScenes.h"
55#include "COLLADASWNode.h"
56#include "COLLADASWParamBase.h"
57#include "COLLADASWParamTemplate.h"
58#include "COLLADASWPrimitves.h"
59#include "COLLADASWSampler.h"
60#include "COLLADASWScene.h"
61#include "COLLADASWSource.h"
62#include "COLLADASWSurfaceInitOption.h"
63#include "COLLADASWTechnique.h"
64#include "COLLADASWTexture.h"
65#include "COLLADASWVertices.h"
66
67#include "ArmatureExporter.h"
68#include "ExportSettings.h"
69
70class SceneExporter : COLLADASW::LibraryVisualScenes,
71 protected TransformWriter,
72 protected InstanceWriter {
73 public:
74 SceneExporter(BlenderContext &blender_context,
75 COLLADASW::StreamWriter *sw,
77 BCExportSettings &export_settings)
78 : COLLADASW::LibraryVisualScenes(sw),
79 blender_context(blender_context),
80 arm_exporter(arm),
81 export_settings(export_settings)
82 {
83 }
84
85 void exportScene();
86
87 private:
88 BlenderContext &blender_context;
89 friend class ArmatureExporter;
90 ArmatureExporter *arm_exporter;
91 BCExportSettings &export_settings;
92
93 void exportHierarchy();
94 void writeNodeList(std::vector<Object *> &child_objects, Object *parent);
95 void writeNode(Object *ob);
96};
File and directory operations.
Object groups, one object can be in many groups at once.
Object is a sort of wrapper for general info.
SceneExporter(BlenderContext &blender_context, COLLADASW::StreamWriter *sw, ArmatureExporter *arm, BCExportSettings &export_settings)