KiCad PCB EDA Suite
|
#include <writer.h>
Public Member Functions | |
WRITER (const std::string &aFilename) | |
bool | Perform (const Handle(TDocStd_Document) &aDocument) |
const VECTOR3D & | GetCenter () const |
const Bnd_Box & | GetMeshBoundingBox () const |
Private Member Functions | |
void | writeMatrix (BIT_STREAM_WRITER &aBitStreamWriter, const std::vector< float > &aMat) |
std::shared_ptr< DATA_BLOCK > | getGroupNodeBlock (const std::string &aGroupNodeName, const PARENT_NODE *aParentNode) |
std::shared_ptr< DATA_BLOCK > | getModelNodeBlock (const std::string &aModelNodeName, const std::string &aParentNodeName, const std::string &aModelResourceName, const std::vector< float > &aMat) |
std::shared_ptr< DATA_BLOCK > | getShadingModifierBlock (const std::string &aShadingModName, const std::string &aShaderName) |
std::shared_ptr< DATA_BLOCK > | getNodeModifierChain (const std::string &aModifierChainName, const std::string &aModelNodeName, const std::string &aParentNodeName, const std::string &aModelResourceName, const std::string &aShaderName, const std::vector< float > &aMat) |
std::shared_ptr< DATA_BLOCK > | getHeaderBlock (uint32_t aDeclSize, uint32_t aContSize) |
std::shared_ptr< DATA_BLOCK > | getLitTextureShaderBlock (const std::string &aShaderName, const std::string &aMaterialName) |
std::shared_ptr< DATA_BLOCK > | getMaterialResourceBlock (const std::string &aMaterialName, const Graphic3d_Vec4 &aDiffuseColor, const Graphic3d_Vec3 &aSpecularColor) |
std::shared_ptr< DATA_BLOCK > | getModelResourceModifierChain (const std::string &aModifierChainName, const MESH *aMesh, const std::string &aMeshname) |
std::shared_ptr< DATA_BLOCK > | getMeshDeclarationBlock (const MESH *aMesh, const std::string &aMeshName) |
std::shared_ptr< DATA_BLOCK > | getMeshContinuationBlock (const MESH *aMesh, const std::string &aMeshName) |
std::shared_ptr< DATA_BLOCK > | getLightModifierChain (const std::string &aModifierChainName, const std::string &aLightResourceName) |
std::shared_ptr< DATA_BLOCK > | getLightNodeBlock (const std::string &aLightNodeName, const std::string &aLightResourceName) |
std::shared_ptr< DATA_BLOCK > | getLightResourceBlock (const std::string &aLightResourceName) |
std::shared_ptr< DATA_BLOCK > | getGroupNodeModifierChain (const std::string &aModifierChainName, const std::vector< GROUP_NODE > &aGroupNodes) |
uint32_t | writeDataBlock (std::shared_ptr< DATA_BLOCK > b, wxMemoryOutputStream &aStream) |
void | generateMeshesByAssembly (const Handle(TDocStd_Document) &doc) |
void | collectGeometryRecursive (const TDF_Label &label, const Handle(XCAFDoc_ShapeTool) &shapeTool, const Handle(XCAFDoc_ColorTool) &colorTool, const Handle(XCAFDoc_VisMaterialTool) &visMatTool, const gp_Trsf &cumulativeTransform, const std::string &baseName, std::unordered_map< Graphic3d_Vec4, MESH * > &meshesByColor) |
void | getMeshName (const TDF_Label &label, Handle(XCAFDoc_ShapeTool) shapeTool, MESH *mesh) |
Private Attributes | |
std::string | m_filename |
VECTOR3D | m_center |
Bnd_Box | m_meshBoundingBox |
std::map< std::string, int > | m_meshDedupMap |
const uint32_t | m_contextBaseShadingID = 1 |
bool | m_includeNormals |
std::vector< std::unique_ptr< MESH > > | m_meshes |
std::vector< GROUP_NODE > | m_groupNodes |
WRITER::WRITER | ( | const std::string & | aFilename | ) |
Definition at line 524 of file writer.cpp.
References m_center, m_filename, m_includeNormals, m_meshBoundingBox, and m_meshDedupMap.
|
private |
Definition at line 289 of file writer.cpp.
References collectGeometryRecursive(), U3D::MESH::coordIndices, U3D::MESH::coords, Handle(), location, m_includeNormals, m_meshBoundingBox, m_meshes, U3D::MESH::normalIndices, and U3D::MESH::normals.
Referenced by collectGeometryRecursive(), and generateMeshesByAssembly().
|
private |
Definition at line 434 of file writer.cpp.
References _, BOARD, collectGeometryRecursive(), KICAD3D_INFO::GetID(), getMeshName(), Handle(), m_groupNodes, m_meshDedupMap, m_meshes, U3D::PARENT_NODE::mat, MODEL_PARENT_BOARD_NAME, MODEL_PARENT_COMPONENTS_NAME, U3D::GROUP_NODE::name, U3D::PARENT_NODE::name, and U3D::GROUP_NODE::parentNodes.
Referenced by Perform().
|
inline |
Definition at line 209 of file writer.h.
References m_center.
Referenced by STEP_PCB_MODEL::WritePDF().
|
private |
Definition at line 541 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::GetDataBlock(), U3D::BLOCK_TYPES::GROUP_NODE, U3D::PARENT_NODE::mat, U3D::PARENT_NODE::name, writeMatrix(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by getGroupNodeModifierChain().
|
private |
Definition at line 627 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::AlignTo4Byte(), U3D::BIT_STREAM_WRITER::GetDataBlock(), getGroupNodeBlock(), U3D::BLOCK_TYPES::MODIFIER_CHAIN, U3D::BIT_STREAM_WRITER::WriteDataBlock(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by Perform().
|
private |
Definition at line 674 of file writer.cpp.
References U3D::HEADER_PROFILE_FLAGS::DEFINED_UNITS, U3D::BLOCK_TYPES::FILE_HEADER, U3D::BIT_STREAM_WRITER::GetDataBlock(), U3D::BIT_STREAM_WRITER::WriteF64(), U3D::BIT_STREAM_WRITER::WriteU16(), U3D::BIT_STREAM_WRITER::WriteU32(), and U3D::BIT_STREAM_WRITER::WriteU64().
Referenced by Perform().
|
private |
Definition at line 882 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::AlignTo4Byte(), U3D::BIT_STREAM_WRITER::GetDataBlock(), getLightNodeBlock(), U3D::BLOCK_TYPES::MODIFIER_CHAIN, U3D::BIT_STREAM_WRITER::WriteDataBlock(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
|
private |
Definition at line 901 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::GetDataBlock(), U3D::BLOCK_TYPES::LIGHT_NODE, writeMatrix(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by getLightModifierChain().
|
private |
Definition at line 918 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::GetDataBlock(), U3D::BLOCK_TYPES::LIGHT_RESOURCE, U3D::BIT_STREAM_WRITER::WriteF32(), U3D::BIT_STREAM_WRITER::WriteString(), U3D::BIT_STREAM_WRITER::WriteU32(), and U3D::BIT_STREAM_WRITER::WriteU8().
|
private |
Definition at line 694 of file writer.cpp.
References ALPHA_BLEND, ALWAYS, U3D::BIT_STREAM_WRITER::GetDataBlock(), LIT_TEXTURE_SHADER_ATTRIBUTES::LIGHTING_ENABLED, U3D::BLOCK_TYPES::LIT_TEXTURE_SHADER, U3D::BIT_STREAM_WRITER::WriteF32(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by Perform().
|
private |
Definition at line 718 of file writer.cpp.
References MATERIAL_ATTRIBUTES::DIFFUSE, U3D::BIT_STREAM_WRITER::GetDataBlock(), U3D::BLOCK_TYPES::MATERIAL_RESOURCE, MATERIAL_ATTRIBUTES::OPACITY, MATERIAL_ATTRIBUTES::REFLECTIVITY, MATERIAL_ATTRIBUTES::SPECULAR, U3D::BIT_STREAM_WRITER::WriteF32(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by Perform().
|
inline |
Definition at line 210 of file writer.h.
References m_meshBoundingBox.
Referenced by STEP_PCB_MODEL::WritePDF().
|
private |
Definition at line 811 of file writer.cpp.
References U3D::MESH::coordIndices, U3D::MESH::coords, U3D::MESH::diffuse_colors, U3D::MESH::diffuseColorIndices, U3D::BIT_STREAM_WRITER::GetDataBlock(), m_contextBaseShadingID, U3D::BLOCK_TYPES::MESH_CONTINUATION, U3D::MESH::normalIndices, U3D::MESH::normals, U3D::MESH::specular_colors, U3D::MESH::specularColorIndices, U3D::CONSTANTS::StaticFull, U3D::BIT_STREAM_WRITER::WriteCompressedU32(), U3D::BIT_STREAM_WRITER::WriteF32(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by Perform().
|
private |
Definition at line 751 of file writer.cpp.
References U3D::MESH::coordIndices, U3D::MESH::coords, U3D::MESH::diffuse_colors, U3D::BIT_STREAM_WRITER::GetDataBlock(), U3D::BLOCK_TYPES::MESH_DECLARATION, U3D::MESH::normals, U3D::MESH::specular_colors, U3D::BIT_STREAM_WRITER::WriteF32(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by getModelResourceModifierChain().
|
private |
Definition at line 249 of file writer.cpp.
References KICAD3D_INFO::GetID(), Handle(), m_meshDedupMap, and U3D::MESH::name.
Referenced by generateMeshesByAssembly().
|
private |
Definition at line 562 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::GetDataBlock(), U3D::BLOCK_TYPES::MODEL_NODE, writeMatrix(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by getNodeModifierChain().
|
private |
Definition at line 606 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::AlignTo4Byte(), U3D::BIT_STREAM_WRITER::GetDataBlock(), getMeshDeclarationBlock(), U3D::BLOCK_TYPES::MODIFIER_CHAIN, U3D::BIT_STREAM_WRITER::WriteDataBlock(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by Perform().
|
private |
Definition at line 650 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::AlignTo4Byte(), U3D::BIT_STREAM_WRITER::GetDataBlock(), getModelNodeBlock(), getShadingModifierBlock(), U3D::BLOCK_TYPES::MODIFIER_CHAIN, U3D::BIT_STREAM_WRITER::WriteDataBlock(), U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by Perform().
|
private |
Definition at line 587 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::GetDataBlock(), SHADING_ATTRIBUTES::GLYPH, SHADING_ATTRIBUTES::LINE, SHADING_ATTRIBUTES::MESH, SHADING_ATTRIBUTES::POINT, U3D::BLOCK_TYPES::SHADING_MODIFIER, U3D::BIT_STREAM_WRITER::WriteString(), and U3D::BIT_STREAM_WRITER::WriteU32().
Referenced by getNodeModifierChain().
bool WRITER::Perform | ( | const Handle(TDocStd_Document) & | aDocument | ) |
Definition at line 967 of file writer.cpp.
References _, generateMeshesByAssembly(), getGroupNodeModifierChain(), getHeaderBlock(), getLitTextureShaderBlock(), getMaterialResourceBlock(), getMeshContinuationBlock(), getModelResourceModifierChain(), getNodeModifierChain(), m_center, m_filename, m_groupNodes, m_meshBoundingBox, m_meshDedupMap, m_meshes, MODEL_PARENT_BOARD_NAME, MODEL_PARENT_COMPONENTS_NAME, TRACE_MASK, and writeDataBlock().
Referenced by STEP_PCB_MODEL::WritePDF(), and STEP_PCB_MODEL::WriteU3D().
|
private |
Definition at line 940 of file writer.cpp.
Referenced by Perform().
|
private |
Definition at line 534 of file writer.cpp.
References U3D::BIT_STREAM_WRITER::WriteF32().
Referenced by getGroupNodeBlock(), getLightNodeBlock(), and getModelNodeBlock().
|
private |
Definition at line 282 of file writer.h.
Referenced by GetCenter(), Perform(), and WRITER().
|
private |
Definition at line 285 of file writer.h.
Referenced by getMeshContinuationBlock().
|
private |
|
private |
Definition at line 288 of file writer.h.
Referenced by generateMeshesByAssembly(), and Perform().
|
private |
Definition at line 286 of file writer.h.
Referenced by collectGeometryRecursive(), and WRITER().
|
private |
Definition at line 283 of file writer.h.
Referenced by collectGeometryRecursive(), GetMeshBoundingBox(), Perform(), and WRITER().
|
private |
Definition at line 284 of file writer.h.
Referenced by generateMeshesByAssembly(), getMeshName(), Perform(), and WRITER().
|
private |
Definition at line 287 of file writer.h.
Referenced by collectGeometryRecursive(), generateMeshesByAssembly(), and Perform().