framework2
77 строк · 2.1 Кб
1//
2// ofxFBXSrcNurbsCurve.cpp
3// ConnectionsWall-Nick
4//
5// Created by Nick Hardeman on 7/11/19.
6//
7
8#include "ofxFBXSrcNurbsCurve.h"9
10using namespace ofxFBXSource;11
12//--------------------------------------------------------------
13NurbsCurve::NurbsCurve() {14
15}
16
17//--------------------------------------------------------------
18NurbsCurve::~NurbsCurve() {19
20}
21
22//--------------------------------------------------------------
23void NurbsCurve::setup( FbxNode* aNode ) {24ofxFBXSource::Node::setup( aNode );25setFBXCurve( aNode->GetNurbsCurve() );26}
27
28//--------------------------------------------------------------
29void NurbsCurve::setFBXCurve( FbxNurbsCurve* aNurbsCurve ) {30if(aNurbsCurve != NULL ) {31FbxLine * line = aNurbsCurve->TessellateCurve();32if( line ){33mPolyline.clear();34for(int k = 0; k < line->GetIndexArraySize(); k++){35FbxVector4 pt = line->GetControlPointAt(line->GetPointIndexAt(k));36mPolyline.addVertex(glm::vec3(pt.mData[0],pt.mData[1],pt.mData[2]));37}38}39}40}
41
42//--------------------------------------------------------------
43//void NurbsCurve::draw() {
44// if(mPolyline.size()) {
45// transformGL(); {
46// mPolyline.draw();
47// } restoreTransformGL();
48// }
49//}
50
51//--------------------------------------------------------------
52void NurbsCurve::configurePolyline( ofPolyline& apoly ) {53apoly = mPolyline;54}
55
56//--------------------------------------------------------------
57//ofPolyline NurbsCurve::getGlobalPolyline() {
58// glm::mat4 gmat = getGlobalTransformMatrix();
59// // transform points into global space //
60// ofPolyline tpoly = getPolyline();
61//
62// for( int i = 0; i < tpoly.size(); i++ ) {
63// auto& mp = tpoly[i];
64// mp = gmat * glm::vec4(mp, 1.0);
65// }
66// return tpoly;
67//}
68//
69////--------------------------------------------------------------
70//ofPolyline NurbsCurve::getGlobalPolylineAroundPosition() {
71// glm::vec3 gpos = getGlobalPosition();
72// auto tpoly = getGlobalPolyline();
73// for( auto& tv : tpoly.getVertices() ) {
74// tv -= gpos;
75// }
76// return tpoly;
77//}
78