// ================================================== // 台座となる座標系を生成する処理 // ================================================== void initializeCoordinate(){ // レンダラーのIDを取得(配置の際の引数に必要) int renderer = getRenderer(); // 波モデルを配置する座標系(波座標系)を生成して配置 waveCoordinate = newCoordinate(); mountCoordinate(waveCoordinate, renderer); // 波モデルの中心がワールド座標系の中心に来るよう移動 moveCoordinate(waveCoordinate, -(X_MAX+X_MIN)/2, -(Y_MAX+Y_MIN)/2, 0.0); // 波源Aの座標系を生成し、波座標系上の波源の位置に配置 sourceCoordinateA = newCoordinate(); setCoordinateOrigin(sourceCoordinateA, xA, yA, 0.0); mountCoordinate(sourceCoordinateA, renderer, waveCoordinate); // 波源Bの座標系を生成し、波座標系上の波源の位置に配置 sourceCoordinateB = newCoordinate(); setCoordinateOrigin(sourceCoordinateB, xB, yB, 0.0); mountCoordinate(sourceCoordinateB, renderer, waveCoordinate); } // ================================================== // モデルを生成する処理 // ================================================== void initializeModel(){ // レンダラーのIDを取得(配置の際の引数に必要) int renderer = getRenderer(); // 四角形グリッド形式で波のモデル(波モデル)を生成して配置 waveModel = newModel(waveVertex, QUADRANGLE_GRID); // 生成 setModelColor(waveModel, 0, 0, 255, 255); // 色設定 setModelCull(waveModel, false, false); // 裏面カリング(描画省略)を無効化 mountModel(waveModel, renderer, waveCoordinate); // 配置 // 波源Aを表す球モデル(赤色)を、波源Aの座標系原点に配置 int sourceModelA = newSphereModel(0.2, 0.2, 0.2, 10, 8); // 生成 setModelColor(sourceModelA, 255, 0, 0, 255); // 色設定 mountModel(sourceModelA, renderer, sourceCoordinateA); // 配置 // 波源Bを表す球モデル(緑色)を、波源Bの座標系原点に配置 int sourceModelB = newSphereModel(0.2, 0.2, 0.2, 10, 8); // 生成 setModelColor(sourceModelB, 0, 255, 0, 255); // 色設定 mountModel(sourceModelB, renderer, sourceCoordinateB); // 配置 }