CString , tstring
typedef std::basic_string <TCHAR,std::char_traits<TCHAR>,std::allocator<TCHAR> > tstring ;
CString | tstring |
---|---|
Left (count) | substr (0,count) |
Mid (first) | substr (first) |
Mid (first,count) | substr (first,count) |
Right (count) | |
IsEmpty | empty |
Empty | clear |
vector 要素の削除
MSDN vector::erase
MFC の CArray::RemoveAt(index,count=1)
先頭要素の削除
v1.erase( v1.begin( ) );
[1] の削除
v1.erase( v1.begin( )+1 );
VC 6 getline
先日のキー入力の動作を c++ で書き直し.
while (_ftprintf(stderr,_T(“%s=”),_T(“入力?”)) ,
_fgetts(buf,sizeof(buf),stdin) != NULL) { … }
最初次の様にしたが,
while (std::terr << _T(“入力?=”) ,
std::getline(std::tin,buf))
buf に一つずれて入ってくる.
次の方法では OK.
while (std::terr << _T(“入力?=”) ,
std::tin.getline(&buf[0],buf.size()))
VC 6 の問題の様で,VC 7 以降では上の方法で動作する.
コンマ演算子
古いデバッグ用のコードを見ていたら,こんなのがあった.
while (_ftprintf(stderr,_T(“%s=”),_T(“入力してください”)) ,
_fgetts(buf,sizeof(buf),stdin) != NULL) { … }
最近あまりこの様なコードを書くことがなく忘れていた.
while の条件式の括弧の中に複数の文.コンマで区切られている.
for ではインクリメントなどの変化式で使う.
MSDN コンマ演算子: ,
次の様にすると,i には c が代入されるらしい.
i = ( b , c ) ;
括弧がないと b .
i = b , c ;
MSDN コンマ演算子 (,) (JavaScript)
JavaScript でも同じ様な動作なら,今やっている所で使えそう.
threejs requestAnimationFrame
使い方が間違ってた?
function three_start() {
init() ;
loop() ;
}
function loop() {
controls.update();
renderer.clear();
renderer.render( scene, camera );
requestAnimationFrame( loop );
}
正しくは loader / babylon
function init() {
// …
animate() ;
// …
}
function animate() {
requestAnimationFrame( animate );
render();
}
function render() {
controls.update();
renderer.render( scene, camera );
}
この方法でも,環境により CPU リソースが食われる.
一先ずここまで.
本当は,完全にロードが終わったタイミングが取れれば良いのだが…
threejs OrbitControls
以前(r58)調べた時,動作が変だったが…
var controls = new THREE.OrbitControls( Camera, Renderer.domElement );
controls.addEventListener( ‘change’, ThreeRender );
controls.target.set(w/2,d/2,h/4) ;
controls.update();
r84 では意図した動作になっている.
他にも幾つか動作を見直し中.
three.js OBJMTLLoader
以前調べた時と OBJMTLLoader の扱いが異なっているので,
サンプルの該当部分を抽出.
r58
var loader = new THREE.OBJMTLLoader();
loader.addEventListener( ‘load’, function ( event ) {
var object = event.content;
object.position.y = – 80;
scene.add( object );
});
loader.load( ‘obj/male02/male02.obj’, ‘obj/male02/male02_dds.mtl’ );
r66
var loader = new THREE.OBJMTLLoader();
loader.load( ‘obj/male02/male02.obj’, ‘obj/male02/male02_dds.mtl’, function ( object ) {
object.position.y = – 80;
scene.add( object );
} );
r84
var onProgress = function ( xhr ) {
if ( xhr.lengthComputable ) {
var percentComplete = xhr.loaded / xhr.total * 100;
console.log( Math.round(percentComplete, 2) + ‘% downloaded’ );
}
};
var onError = function ( xhr ) { };
THREE.Loader.Handlers.add( /\.dds$/i, new THREE.DDSLoader() );
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath( ‘obj/male02/’ );
mtlLoader.load( ‘male02_dds.mtl’, function( materials ) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials( materials );
objLoader.setPath( ‘obj/male02/’ );
objLoader.load( ‘male02.obj’, function ( object ) {
object.position.y = – 95;
scene.add( object );
}, onProgress, onError );
});
r74 から変更されていて,OBJMTLLoader が削除されたらしい.
https://github.com/mrdoob/three.js/releases?after=r75
Improved OBJLoader and MTLLoader and made OBJMTLLoader obsolete.
それで参考にさせてもらったのがここ.
http://stackoverflow.com/questions/35380403/how-to-use-objloader-and-mtlloader-in-three-js-r74-and-later
他にも,OBJLoader のデータのチェックが厳しくなったみたいで,
r84 OBJLoader.js 632 行目で
throw new Error( "Unexpected line: '" + line + "'" );
クラスによっては前からみたいだが,position が readonly .
position のメンバに対して代入すれば OK .
2023/08
https://dev.mish.work/wordpress/category/webgl/
https://itl.mish.work/_lib/js/i_lib/threejs/r131/c_3js_10.js
SceneJS
Cube.imo (0,0,0)-(1000,1000,1000) のデータに対して,
translate X:-500 , y:-500 , z:500
spinYaw で,回転.spinPitch は上下方向.
yaw , pitch で最初の位置(角度で単位は度?).
zoom が中心までの相対位置?
zoomSensitivity は拡大率.
yaw : 30 ,
pitch : -10 ,
zoom : 2500,
zoomSensitivity : 100 ,
spinYaw : 0.3 ,
cube_imo.html
yaw : 90 で右から.180 で後ろから.
pitch : -20 としているので,
translate の y は中心でなく高さの 30% の位置にしている.
どうも材質の指定(obj の mtl など)は,効いてないみたい.
script 内の type:”texture” , src: … で指定する?
B65/R 追加
dynabook B65/R 追加.
はじめに.pdf にある通り,次の作業.
リカバリーメディアの作成.
PC 引越ナビ.
Win 10 のメディアは付属していたが,Win 7 が入っている状態.
セットアップで 32 / 64 ビットの選択があり,
メモリが 4 G なので 32 を選択.
DVD-ROM ドライブのため,BRD-UT16WX を接続して作成.
DVR-R 4.7G メディアは 4 枚で,作成時間は 1 時間程度.
よく知らなかったが,
DVD-ROM ドライブでも DVD-R のメディアは読めるみたい.
旧 PC は TXE/68HE で,USB メモリと LAN ケーブルを使う方法で.
USB メモリは空きが 50 MB 程度のものを利用.
LAN は旧 PC の制限で 100 M bps みたい.
転送されたデータは 100 G 程度で,6 時間位かかった.
その後 Web に接続して,MSSE をインストール.
Win7 x86 に IIS
今回は Win7 環境で 3D データをダウンロード可能とするための設定.
「コントロールパネル」-「プログラムと機能」から
「Windows の機能の有効化または無効化」.
「インターネットインフォメーションサービス」にチェック.
localhost にアクセスすると,
ローカルから http://win7-mg-/ も可能.
他の PC から接続すると,
接続がタイムアウトしました
win7-mg- のサーバーからの応答が一定時間以内に返ってきませんでした。
このサイトが一時的に利用できなくなっていたり、サーバーの負荷が高すぎて接続できなくなっている可能性があります。しばらくしてから再度試してください。
他のサイトも表示できない場合、コンピューターのネットワーク接続を確認してください。
ファイアーウォールやプロキシでネットワークが保護されている場合、Firefox によるウェブアクセスが許可されているか確認してください。
他の PC からも可能にする場合は,ファイアウォールの設定が必要.
「IIS マネージャー」の「サイト」-「右クリック」で「Web サイトの追加…」.
サイト名や物理パスを指定して「OK」.
—————————
Web サイトの追加
—————————
バインド ‘*:80:’ は別のサイトに割り当てられています。このサイトに同じバインドを割り当てると、いずれか一方のサイトしか開始できなくなります。重複するバインドを追加しますか?
—————————
はい(Y) いいえ(N)
—————————
「バインド ‘*:80:’ は…」と出るがそのまま「はい」.
「Default Web Site」-「右クリック」-「バインドの編集…」.
「ポート」を「80」でない,「8000」などに.
状態が停止しているので「開始」を「クリック」.
まだファイルなどが存在しないので,localhost にアクセスすると,
他の PC からは,「403 – 許可されていません: アクセスが…」
最終的には「無効」にするが,「ディレクトリの参照」を「有効」に.
3D データを web に展開.
localhost/3D_Data/ を開くと,
localhost/3D_Data/three_js/ThreeIMO.htm を開くと,
動作はしているが,データが表示されない.
localhost/3D_Data/three_js/Cube.imo を開くと,
MIME マップの追加が必要で,
「MIME の種類」をどう指定するべきかは不明だが,
「application/IMO」として追加.
これらの幾つかの情報は TechNet にもある.
TechNet IIS での静的な Web サイトの構築
three.js obj
three.js の OBJMTLLoader で,imo を使用できそう.
var loader = new THREE.OBJMTLLoader();
loader.addEventListener('load', function (event) {
var object = event.content;
object.rotation.set(90 * Math.PI / 180, 0, 0);
Scene.add(object);
});
loader.load('Cube.imo');
imo は,OBJとMTL を拡張した個人的な形式です.
i3DV で表示可能です.
html style
今まで HTML の範囲としていたので次の様にしていたが,
static Xml_E img (c_tstring& src) {
Xml_E img_(HTM_img) ;
img_.AddAttribute(HTM_src,src) ;
return img_ ;
}
static Xml_E img_b (c_tstring& src) {
Xml_E img = HtmOut::img(src) ;
img.AddAttribute(HTM_border,_T("1")) ;
return img ;
}
static Xml_E img_b_at_w (c_tstring& src,c_tstring& name,c_tstring& width) {
Xml_E img = HtmOut::img_b(src) ;
img.AddAttribute(HTM_alt, name) ;
img.AddAttribute(HTM_title, name) ;
if (!width.empty()) {
img.AddAttribute(HTM_width, width) ;
}
return img ;
}
css を利用することにより,もう少し簡単にできそう.
ここの記述で,タブサイズを指定したが,
<code style=” -o-tab-size: 4 ; -moz-tab-size: 4 ; tab-size: 4 ;”>
Blogger では,記事を書いて「保存」すると” “(半角スペース)に置換えられてしまう.
css のコメントは,C 等の様に /* */ .
index.htm が開かれない
DS115j で,WordPress でない\\DS115j\web\以下の index.htm が開かれなくなった.
http://itl.mydns.jp/3D_Data/ の様な指定.
http://itl.mydns.jp/3D_Data/index.htm と指定すれば OK .
パーソナルWebサイトの方は OK みたい.
http://itl.mydns.jp/~…/
原因は,「Web Station」の「全般設定」で「Apache…」から「Nginx」に変更したため.
index.html を置くことで様子見.
DSM > ヘルプ > Web Station
DS115j 追加 – 9
ちょっと困ったことに.
DS115j で Antivirus Essential がスキャンを始めると,
WordPress のマルチサイトにしたためか遅くて使えない.
2017/01/31
今日は PC から \\DS115j\web などにもアクセスできないくらい遅くなってしまった.
昨日はここまで酷くなかったのに,…
DSM でアクセスするにも,表示されるまで時間がかかりすぎる.
5 分位かかってやっと起動.
リソースモニタなども起動できるが,正しく表示できない(タイムアウトになっている).
右上のメニューから「再起動」を選択してみた.…
20 分位待ってやっと再起動.
リソースモニタを見ると,昨日の 21:00 頃から CPU やディスクの読込が 100% に.
原因ははっきりしないが,マルチサイトを false に.
define(‘WP_ALLOW_MULTISITE’,false);
2017/02/02
Broken Link Checker が影響している?
チェックのタイミングを長く設定.
DS115j 追加 – 8
今日 WordPress の本を買ってきて,
\\DS115j\web\wordpress\wp-config.php に以下を追加してマルチサイトを有効に.
define(‘WP_ALLOW_MULTISITE’,true);
「ネットワークの設置」の時にローカル(ds115j)で開いてたためか,次の様に.
define(‘DOMAIN_CURRENT_SITE’, ‘ds115j’);
マルチサイトで動作する様にはなったが,
//its.mydns.jp/wordpress にアクセスすると //ds115j/wordpress となってしまう.
2017/01/23
ds115j から itl.mydns.jp に変更する方法がわからなかったので,
WordPress と MariaDB をアンインストール.
再度インストールして,http://itl.mydns.jp/…/network.php としてアクセス.
サイトネットワークの詳細 サブディレクトリインストール ディレクトリ内にインストール...、WordPressの...サブディレクトリを使用...。 サーバーアドレス サイトネットワークのインターネットアドレスは itl.mydns.jp になります。
wp-config.php の追加内容が次の様になった.
define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, false);
define(‘DOMAIN_CURRENT_SITE’, ‘itl.mydns.jp’);
define(‘PATH_CURRENT_SITE’, ‘/wordpress/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);
今度は意図した動作となった.
ただ,ローカルの //ds115j/wordpress/ とアクセスしても
//itl.mydns.jp/wordpress/ となってしまう.
Jetpack もうまく機能する様になった.
DS115j では動作が重い.
2017/01/24
AdSense に登録しようとしたら,itl.mydns.jp では不可.
iwao.synology.me なら OK ?
wp.config.php を define(‘DOMAIN_CURRENT_SITE’, ‘iwao.synology.me’); とすると,
Error establishing a database connection
対応方法がわからないので,もう一度 WordPress を入れ直し.
WordPress のインポートのエラー.
メディア “MFC 7.1 以降で「無効な引数が発生しました。」” 既に存在します。
メディア “Win 2000 に VCReDist がインストールできない” 既に存在します。
Fatal error: Maximum execution time of 60 seconds exceeded in
/volume1/web/wordpress/wp-includes/plugin.php on line 233
2014/03/15 以降の記事がうまく引き継がれてない.
もう一度,エクスポートから…
エクスポート範囲の日付指定で,2013/01 ~ 2017/01 までとして出力.
それをインポートすると,幾つかのエラーは出たが…
WordPress のインポート 投稿 “Outlook でのメール受信が” 既に存在します。 投稿 “SMT-i9100 入手” 既に存在します。 投稿 “Android 仮想マシン” 既に存在します。 投稿 “Android 開発環境” 既に存在します。 ... 投稿 “Win 10 IIS amf” 既に存在します。 メディア “Vedute_5_Err_Reading” 既に存在します。 メディア “Android_VirtualPC” 既に存在します。 メディア “Android_1_3_11” 既に存在します。 メディア “Android_1_3_03” 既に存在します。 ... メディア “jquery_treeview_red” 既に存在します。 メディア “jquery_treeview_source” 既に存在します。 メディア “jquery_treeview_js_404” 既に存在します。 メディア “ds115j_wordpress” 既に存在します。 メディア のインポートに失敗しました “adsence_head” メディア のインポートに失敗しました “adsence” すべて完了しました。 ではお楽しみください ! インポートしたユーザーのパスワードと権限を更新してください。
まだ細かな修正は必要と思うが,何とか取り込めたみたい.
DS115j 追加 – 7
「ホームネットワーク研究所」さんのここを参考にさせてもらってmydns.jp を取得.
「DOMAIN INFO」の「Hostname*,…(Hostname is not FQDN)」部分がよくわからなかったが,後からでも変更可能.
詳しくはわからないが,itl.mydns.jp でアクセスできるようになるまで少し時間がかかった.
BRD-UT16WX 追加
BRD-UT16WX を追加.
KYLIE HITS DVD EDITION の DVD を再生できることは確認.
BTF BD は,再生できてない.この環境(T5400)ではできないのか?
WD Cloud に WordPress
WD Cloud に WordPress を追加してみた.
http://wdcloud/wordpress/ でアクセスできる様ではあるが…
また,直接 \\WDCloud\wordpress\ は見えない.
今度は,DS115j に WordPress を追加.
http://121.108.xx.xx/wordpress/ でアクセス可能なことを確認.
Akismet をインストール.
iwaoalles.wordpress.com を移行.
Jetpack はうまく設定できていない.
jQuery.Treeview
「jQueryでエクスプローラ風メニューに!」を参考にやってみたが…
ソースを表示して,
その先を開くと,
jquery.treeview.js の指定が間違っていた.
http://121.108.xx.xx/~Iwao/T_treevw/