2024年4月28日发(作者:)

95 vtkSmartPointer::New();

96 fillHolesFilter->SetInputData(input);

97 fillHolesFilter->Update();

98

99 vtkSmartPointer normals =

100 vtkSmartPointer::New();

101 normals->SetInputConnection(fillHolesFilter->GetOutputPort());

102 normals->ConsistencyOn(); //很重要,根据其他单元点的顺序调整补充点的顺序

103 normals->SplittingOff();

104 normals->Update();

105 /

106 double leftViewport[4] = { 0.0, 0.0, 0.5, 1.0 };

107 double rightViewport[4] = { 0.5, 0.0, 1.0, 1.0 };

108

109 vtkSmartPointer originalMapper =

110 vtkSmartPointer::New();

111 originalMapper->SetInputData(input);

112 vtkSmartPointer backfaceProp =

113 vtkSmartPointer::New();

114 backfaceProp->SetDiffuseColor(0.89, 0.81, 0.34);

115 vtkSmartPointer originalActor =

116 vtkSmartPointer::New();

117 originalActor->SetMapper(originalMapper);

118 originalActor->SetBackfaceProperty(backfaceProp);

119 originalActor->GetProperty()->SetDiffuseColor(1.0, 0.3882, 0.2784);

120

121 vtkSmartPointer edgeMapper =

122 vtkSmartPointer::New();

123 edgeMapper->SetInputData(featureEdges->GetOutput());

124 vtkSmartPointer edgeActor =

125 vtkSmartPointer::New();

126 edgeActor->SetMapper(edgeMapper);

127 edgeActor->GetProperty()->SetEdgeColor(0., 0., 1.0);

128 edgeActor->GetProperty()->SetEdgeVisibility(1);

129 edgeActor->GetProperty()->SetLineWidth(5);

130

131 vtkSmartPointer filledMapper =

132 vtkSmartPointer::New();

133 filledMapper->SetInputData(normals->GetOutput());

134 vtkSmartPointer filledActor =

135 vtkSmartPointer::New();

136 filledActor->SetMapper(filledMapper);

137 filledActor->GetProperty()->SetDiffuseColor(1.0, 0.3882, 0.2784);

138 ///

139 vtkSmartPointer leftRenderer =

140 vtkSmartPointer::New();

141 leftRenderer->SetViewport(leftViewport);

142 leftRenderer->AddActor(originalActor);

143 leftRenderer->AddActor(edgeActor);

144 leftRenderer->SetBackground(1.0, 1.0, 1.0);

145

146 vtkSmartPointer rightRenderer =

147 vtkSmartPointer::New();

148 rightRenderer->SetViewport(rightViewport);

149 rightRenderer->AddActor(filledActor);

150 rightRenderer->SetBackground(0, 0, 0);

151

152 vtkSmartPointer renderWindow =

153 vtkSmartPointer::New();