forked from Open-Cascade-SAS/OCCT
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
GLTF Export - Edge and Vertex support Open-Cascade-SAS#243
Added functionality to export TopoDS_Vertex and TopoDS_Edge to GLTF format
- Loading branch information
mzernova
committed
Feb 2, 2025
1 parent
053e01e
commit 5bfd611
Showing
12 changed files
with
1,350 additions
and
471 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
// Copyright (c) 2025 OPEN CASCADE SAS | ||
// | ||
// This file is part of Open CASCADE Technology software library. | ||
// | ||
// This library is free software; you can redistribute it and/or modify it under | ||
// the terms of the GNU Lesser General Public License version 2.1 as published | ||
// by the Free Software Foundation, with special exception defined in the file | ||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT | ||
// distribution for complete text of the license and disclaimer of any warranty. | ||
// | ||
// Alternatively, this file may be used under the terms of Open CASCADE | ||
// commercial license or contractual agreement. | ||
|
||
#include <RWMesh_EdgeIterator.hxx> | ||
|
||
#include <BRep_Tool.hxx> | ||
#include <TopExp.hxx> | ||
#include <TopoDS.hxx> | ||
#include <XCAFDoc_ShapeTool.hxx> | ||
#include <XCAFPrs.hxx> | ||
|
||
// ======================================================================= | ||
// function : RWMesh_EdgeIterator | ||
// purpose : | ||
// ======================================================================= | ||
RWMesh_EdgeIterator::RWMesh_EdgeIterator(const TDF_Label& theLabel, | ||
const TopLoc_Location& theLocation, | ||
const Standard_Boolean theToMapColors, | ||
const XCAFPrs_Style& theStyle) | ||
: RWMesh_ShapeIterator(theLabel, theLocation, TopAbs_EDGE, theToMapColors, theStyle) | ||
{ | ||
Next(); | ||
} | ||
|
||
// ======================================================================= | ||
// function : RWMesh_EdgeIterator | ||
// purpose : | ||
// ======================================================================= | ||
RWMesh_EdgeIterator::RWMesh_EdgeIterator(const TopoDS_Shape& theShape, | ||
const XCAFPrs_Style& theStyle) | ||
: RWMesh_ShapeIterator(theShape, TopAbs_EDGE, theStyle) | ||
{ | ||
Next(); | ||
} | ||
|
||
// ======================================================================= | ||
// function : Next | ||
// purpose : | ||
// ======================================================================= | ||
void RWMesh_EdgeIterator::Next() | ||
{ | ||
for (; myIter.More(); myIter.Next()) | ||
{ | ||
myEdge = TopoDS::Edge(myIter.Current()); | ||
myPolygon3D = BRep_Tool::Polygon3D(myEdge, myLocation); | ||
myTrsf = myLocation.Transformation(); | ||
if (myPolygon3D.IsNull() || myPolygon3D->NbNodes() == 0) | ||
{ | ||
resetEdge(); | ||
continue; | ||
} | ||
|
||
initEdge(); | ||
myIter.Next(); | ||
return; | ||
} | ||
|
||
resetEdge(); | ||
} | ||
|
||
// ======================================================================= | ||
// function : initEdge | ||
// purpose : | ||
// ======================================================================= | ||
void RWMesh_EdgeIterator::initEdge() | ||
{ | ||
initShape(); | ||
} |
Oops, something went wrong.